获取用户邮政编码与谷歌地理定位API, W3C地理定位和谷歌反向地理编码



我被要求创建一个JavaScript解决方案来获取用户的地址(主要是邮政编码)。我们需要很高的精确度。

我决定使用以下解决方案,该解决方案使用Google Maps API for Business。我已经模拟了一个工作的例子,它工作得很好。你认为这在野外会可靠和准确吗?

解决方案:

如果(移动/平板电脑)使用浏览器的W3C地理定位API(返回)纬度/经度+精度。W3C地理定位API: http://dev.opera.com/articles/view/how-to-use-the-w3c-geolocation-api/

如果(桌面机/IE8/IE7)使用谷歌地理定位API(返回)纬度/经度+精度。https://developers.google.com/maps/documentation/business/geolocation/

获取最高精度的结果

如果(准确性差)询问用户的邮政编码

(else)使用最高精度的结果,并通过谷歌反向地理编码API(返回)用户地址与邮政编码运行。https://developers.google.com/maps/documentation/geocoding/ReverseGeocoding

如果不了解您的用例,判断准确性有点困难,特别是对于桌面设备,有很多用例(例如:vpn,公司网络等),其中地理定位地址将与用户的实际地址大不相同。对于商店定位器的默认视图来说已经足够好了,但对于许多其他东西来说可能还不够好。

如果你决定继续这样做,主要的问题是谷歌地理定位API的免费版本被限制为每天100个查询:

https://developers.google.com/maps/documentation/business/geolocation/usage_limits

您将需要购买Maps for Business许可证以获得更多配额,或者如果您计划在Google地图之外使用结果

我们已经运行了几个原型,发现这种方法很好。除了谷歌地理定位API的糟糕准确性。看起来很结实。W3C地理位置弹出窗口的可用性存在一个问题。一些桌面用户忽略了这个