2010-07-19 180 views
4

使用Google Maps API查找特定街道地址并返回经度和纬度很容易。例如,link使用Google Maps API进行地理编码 - 准确性和局限性

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

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

是否没有任何方式使用Google地图API来对这样的公园位置进行地理编码?

回答

1

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

在api的第2版中,您将构建自己的客户端缓存,其中包含通过扩展GeocodeCache预先计算的地理编码器响应。一旦定义了缓存,您就可以调用setCache()方法并远离您。这是相当多了说明:

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

然而,据我所知GeocodeCache在API的V3已移除...

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

失败的所有,你总是可以使用支付地理编码服务,理论上,将有一个更准确的数据集(以及对请求等的上限)。

最后,您还应该查看Geocoding Strategies文档,因为它可以很好地处理这里的一些问题。

相关问题