【问题标题】:Google Maps API - Browser always asking for locationGoogle Maps API - 浏览器总是询问位置
【发布时间】:2015-05-10 19:53:20
【问题描述】:

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

  1. 是否可以阻止浏览器位置检查?
  2. 如果没有,是否有可以捕捉的事件,以便我可以更改地图跳转到的位置?

Airbnb.com 也使用谷歌地图,浏览器从不询问用户位置。

有什么建议吗?

【问题讨论】:

  • 这不是在 API 文档中的某个地方吗?
  • 我浏览了文档和其他帖子,但找不到解决方案。

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


【解决方案1】:

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

不,出于明显的安全原因,不可能从 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

【讨论】:

  • 感谢您的帮助!由于我们的页面在某种程度上类似于 airbnb,因此我们不需要用户位置,因为地图上的标记取决于搜索输入。通过 IP 地址使用地理定位听起来很有趣,但我不太清楚如何分别使用它,如何将它与谷歌地图结合使用。你以前试过这个吗?
  • 以前从未尝试过,但在此线程中有更多关于此的解释:stackoverflow.com/questions/4937517/… 但它似乎有点脏,你的情况真的需要吗?
  • 不,不是,我只是想摆脱浏览器位置检查,因为我不需要当前位置。
  • 等等,你不需要用户地理位置吗?我不明白你的意思
  • 好的,更清楚了,请在 jsfiddle 上做一个你的代码示例,这样我们就可以看到哪里有要求用户地理位置的东西,没有你的代码我不能做更多。干杯
猜你喜欢
  • 1970-01-01
  • 2015-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
  • 2018-04-19
  • 1970-01-01
相关资源
最近更新 更多