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

R geocode query error when address has hash

包含“#”(例如公寓号)的地址经常会给出不正确的定位结果,对于 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 地图进行试验,有时在地址中添加散列似乎会混淆查找,从而生成各种地理分散的结果。这并不总是发生,但根据我的经验经常发生。它很容易修复(地理编码时不需要公寓号码)但我想知道为什么会发生这种情况以及输入地址时是否还有其他注意事项。

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

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

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

相关部分是

Do not specify additional address elements such as business names, unit numbers, floor numbers, or suite numbers that are not included in the address as defined by the postal service of the country concerned. Doing so may result in responses with ZERO_RESULTS.

希望对您有所帮助!