4

使用 Google Maps API 很容易找到特定的街道地址并返回纬度和经度。例如,链接

但是,输入特定位置(例如公园)的名称似乎会导致问题。通常这些没有特定的门牌号(至少,不容易找到)。尽管 Cadigal Reserve 位于与上述链接相同的地址,但如果我将其作为查询字符串的一部分输入并删除街道号码,结果将变得毫无用处:link

将其直接输入 maps.google.com 很容易找到公园本身(当然,您可以通过查看 URL 找到纬度/经度)。

没有任何方法可以使用 Google Maps API 对这样的公园位置进行地理编码吗?

4

1 回答 1

1

重要的是要了解地理编码不是一门精确的科学。如果您知道应该对特定位置进行地理编码的地址,建议的做法是构建缓存并使用本地(客户端)地理编码。

在 api 的第 2 版中,您将构建自己的客户端缓存,其中包含通过扩展 GeocodeCache 预先计算的地理编码器响应。一旦定义了缓存,您将调用 setCache() 方法然后离开。这在这里解释得很清楚:

http://code.google.com/apis/maps/documentation/javascript/v2/services.html#Geocoding_Caching

但是,AFAIK GeocodeCache 已在 API 的 V3 中删除...

因此,我建议实施您自己的已知地址及其相应坐标的客户端缓存策略。当您的应用程序收到对已知地址的地理编码请求时,响应将来自您的缓存(而不是 Google 的地理编码服务器)。

如果失败了,您始终可以使用付费地理编码服务,理论上,该服务将拥有更准确的数据集(以及更高的请求限制等)。

最后,您还应该查看地理编码策略文档,因为它很好地处理了这里的一些问题。

于 2011-02-25T22:39:24.703 回答