Google Maps Geocode问题:某些编码的网址失败

时间:2014-02-13 03:49:46

标签: php google-maps encoding urlencode google-geocoder

我正在尝试从地址获取Lat / Lon以获取位置列表。它适用于大多数地址,但某些地址失败并返回零结果。

以此地址为例:1045 Mono Way, Sonora, CA 95370

如您所见,这是Google地图上的有效地址 - 没有任何问题。

在ping Geocoder Api时,我使用urlencode()对地址进行编码。这是编码地址:1045%20Mono%20Way%2C%20Sonora%2C%20CA%2095370

这是我访问的链接: https://maps.googleapis.com/maps/api/geocode/xml?address=1045%20Mono%20Way%2C%20Sonora%2C%20CA%2095370&sensor=false

如您所见,结果为零。

现在,如果您将地址的第一部分(1045)更改为任何其他数字(例如1044),您将获得有效的结果。

我迷路了。

需要帮助。

请;)

BTW,我正在使用此回复来获取API中的lat / lon:Google Maps - converting address to latitude & longitude - PHP backend?

1 个答案:

答案 0 :(得分:2)

我敢打赌那个地址不存在。地址由当地政府提供,通常在一系列与一段街道相对应的数字中提供。尝试奇数不起作用的事实(1045,1047,1049)但偶数数字(1044,1046,1048)表明道路一侧的地址不存在。或者至少不在城市或县提供的数据集中。

理想的解决方案是API调用的“模糊”参数,它将返回类似于其Maps站点的位置。但由于我们无法重写第三方API,我建议检查“ZERO_RESULTS”响应,然后根据需要使用街道名称重新提交请求。

此外,您可以在没有API密钥的情况下进行地理编码搜索,因此您可能希望将其保留在您的问题之外!