包含“#
”的地址(例如公寓号码)经常会给出错误的位置结果,包括ggmap :: geocode和谷歌地图,所以这不是严格意义上的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
如果您直接尝试谷歌地图,有时在地址中添加哈希似乎会混淆查找,从而产生各种地理上分散的结果。这并不总是发生,但根据我的经验经常发生。它很容易修复(地理编码时不需要公寓号码),但我想知道为什么会发生这种情况,以及是否有其他关于输入地址的注意事项。
答案 0 :(得分:2)
Google提供了有关地理编码API中地址格式的建议。特别是他们建议不要在请求中指定其他元素,如公寓号或楼层号。
您可以在Google地图常见问题解答中查看完整的推荐列表:
https://developers.google.com/maps/faq#geocoder_queryformat
相关部分是
请勿指定其他地址元素,例如商家名称,单位编号,楼层编号或未包含在相关国家邮政服务定义的地址中的套件编号。这样做可能会导致ZERO_RESULTS响应。
我希望这有帮助!