Google Maps API - 浏览器始终询问位置

时间:2015-03-09 15:26:08

标签: javascript angularjs google-maps google-maps-api-3 geolocation

我们正在使用AngularJS和Google Maps API实施网站。 用户可以输入关键字,然后重定向到新页面,其中包含带有多个标记的地图(表示结果)。 在此结果页面上,浏览器始终询问用户位置。当用户选择"拒绝"时,地图会跳转到0,0位置(海中某处)。

  1. 是否可以阻止浏览器位置检查?
  2. 如果没有,是否有可以捕获的事件,所以我可以更改地图跳转到的位置?
  3. Airbnb.com也使用Google地图,浏览器从不询问用户位置。

    有任何建议吗?

1 个答案:

答案 0 :(得分:4)

  

是否可以阻止浏览器位置检查?

不,出于明显的安全原因,无法从JavaScript禁用此检查。但是,用户可以记住"允许从Chrome访问位置的选择。

  

如果没有,是否有可以捕获的事件,所以我可以更改地图跳转到的位置?

您可以执行navigator.geolocation.getCurrentPosition(showPosition,showError);之类的操作 function showError(error) { switch (error.code) { case error.PERMISSION_DENIED: x.innerHTML = "User denied the request for Geolocation." break; case error.POSITION_UNAVAILABLE: x.innerHTML = "Location information is unavailable." break; case error.TIMEOUT: x.innerHTML = "The request to get user location timed out." break; case error.UNKNOWN_ERROR: x.innerHTML = "An unknown error occurred." break; } }

编辑:对于AirBnB事物,可以通过IP地址使用另一种类型的地理定位,这不需要任何许可,但缺乏精确性。有关按IP地理位置的详细信息,请参阅此thread