地址具有哈希时出现 R 地理编码查询错误



包含"#"(例如公寓号码(的地址经常给出不正确的位置结果,无论是使用ggmap::geocode还是使用Google地图,因此严格来说这不是R问题。在此示例中,在街道地址后添加"#3"会将位置结果从伊利诺伊州更改为加利福尼亚州:

> test <- geocode('1200 Davis St, Evanston, IL 60202', source='google', output='more')
> test[, c('lon', 'lat', 'administrative_area_level_1')]
lon      lat administrative_area_level_1
1 -87.68978 42.04627                    Illinois
> testhash <- geocode('1200 Davis St #3, Evanston, IL 60202', source='google', output='more')
> testhash[, c('lon', 'lat', 'administrative_area_level_1')]     
lon      lat administrative_area_level_1
1 -122.1692 37.72169                  California

如果您直接尝试使用谷歌地图,有时在地址中添加哈希值似乎会混淆查找,从而生成各种地理位置分散的结果。这并不总是发生,但根据我的经验,这种情况经常发生。它很容易修复(地理编码时不需要公寓号码(,但我想知道为什么会发生这种情况,以及输入地址是否有其他注意事项。

Google 提供了有关地理编码 API 中地址格式的建议。特别是,他们建议不要在请求中指定公寓号或楼层号等其他元素。

您可以在 Google 地图常见问题解答中查看完整的推荐列表:

https://developers.google.com/maps/faq#geocoder_queryformat

相关部分是

请勿指定未包含在相关国家/地区邮政服务定义的地址中的其他地址元素,例如公司名称、单元号、楼层号或套房号。这样做可能会导致响应ZERO_RESULTS。

我希望这有帮助!

最新更新