Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps 使用谷歌地图API进行地理编码-准确性和局限性_Google Maps_Geolocation_Geocode - Fatal编程技术网

Google maps 使用谷歌地图API进行地理编码-准确性和局限性

Google maps 使用谷歌地图API进行地理编码-准确性和局限性,google-maps,geolocation,geocode,Google Maps,Geolocation,Geocode,使用GoogleMapsAPI很容易找到特定的街道地址并返回纬度和经度。例如 但是,键入特定位置(例如公园)的名称似乎会导致问题。通常这些都没有具体的街道号码(至少不容易找到)。尽管Cadigal Reserve的地址与上述链接中的地址相同,但如果我将其作为查询字符串的一部分输入并删除街道编号,结果将变得毫无用处: 直接在maps.google.com中键入此项很容易找到公园本身(当然,您可以通过查看URL找到纬度/经度) 没有任何方法可以使用谷歌地图API对公园位置进行这样的地理编码吗?重要的

使用GoogleMapsAPI很容易找到特定的街道地址并返回纬度和经度。例如

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

直接在maps.google.com中键入此项很容易找到公园本身(当然,您可以通过查看URL找到纬度/经度)


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

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

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

然而,在api的V3中删除了AFAIK GeocodeCache

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

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

最后,您还应该浏览一下文档,因为它很好地处理了这里的一些问题