我知道 HTML5 进行地理定位的方式,但需要注意的是它必须提示用户许可。
navigator.geolocation.getCurrentPosition
当我想在主页上进行地理定位以根据位置提供定制内容时,这变得特别烦人:没有人喜欢每次访问您的网站时都会收到提示。
这个想法是使用外部服务基于 IP 地址或类似的东西进行地理定位,以获得对用户位置的不太准确的估计,并仅在该位置确实关闭时才向用户提供提示。对于我可以用于此目的的服务有什么好的建议吗?
我知道 Google 已经这样做了:当前位置。它会显示您当前的位置,而不会给您任何提示。有谁知道该怎么做吗?
MaxMind 数据库很好,但为此需要维护一个巨大的 IP 数据库。首选 API 或 Google 服务。
我目前使用从 Google Loader 返回的位置对象来估计位置,但它不如上面的 Google 搜索示例准确。
google.loader.ClientLocation.latitude
google.loader.ClientLocation.longitude
Google 的
current location
之所以有效,是因为您在给定浏览器上的某个时间点授予了 Google 访问您位置的权利。如果您打开任何新浏览器并执行相同的查询,您会发现它只能产生更通用的位置。
我自己一直在尝试寻找这个问题的答案,而您使用 Google 的加载程序走在正确的轨道上。问题在于,由于 HTML5 产品的可靠性和准确性,它或多或少已被弃用。
我很好奇您是否找到了解决方法。有些人可能会建议 maxmind,尽管我发现它与 google.loader 一样准确(甚至不准确)。
浏览器提示输入此类信息的原因是有道理的,我只是很惊讶除了使用 IP 之外没有某种解决方法/黑客。