使用Google Maps API可以轻松查找特定街道地址并返回经度和纬度。例如,link。
但是,输入特定位置的名称(例如公园)似乎会导致问题。通常这些没有特定的街道号码(至少不容易找到)。尽管Cadigal Reserve位于与上述链接相同的地址,但如果我将其作为查询字符串的一部分输入并删除街道号码,结果将变得毫无用处:link
直接在maps.google.com中输入内容可轻松找到公园本身(当然,您可以通过查看网址找到纬度/经度)。
有没有办法使用Google Maps API对这样的公园位置进行地理编码?
答案 0 :(得分:1)
重要的是要了解地理编码不是一门精确的科学。如果您知道地址应该对特定位置进行地理编码,建议的做法是构建缓存并使用本地(客户端)地理编码。
在api的第2版中,您将构建自己的客户端缓存,其中包含通过扩展GeocodeCache预先计算的地理编码器响应。一旦定义了缓存,你就可以调用setCache()方法然后离开。这在这里有很多解释:
http://code.google.com/apis/maps/documentation/javascript/v2/services.html#Geocoding_Caching
然而,AFAIK GeocodeCache已被删除了api ...
因此,我建议实施您自己的客户端缓存策略,包括已知地址及其相应的坐标。当您的应用程序收到已知地址的地理编码请求时,响应将来自您的缓存(而不是Google的地理编码服务器)。
尽管如此,您仍然可以使用付费地理编码服务,理论上,该服务将具有更准确的数据集(以及对请求的更高限制等)。
最后,您还应该查看Geocoding Strategies文档,因为它可以很好地处理这里的一些问题。