【发布时间】:2018-10-22 10:58:03
【问题描述】:
包含“#”(例如公寓号码)的地址经常会给出不正确的位置结果,无论是使用 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
如果您直接使用 google 地图进行试验,有时将哈希添加到地址中似乎会混淆查找,从而生成各种地理上分散的结果。这并不总是发生,但根据我的经验,经常发生。它很容易修复(地理编码时不需要公寓号码),但我想知道为什么会发生这种情况,以及在输入地址时是否有其他注意事项。
【问题讨论】:
-
# 是 R 中的注释标记。也许
geocode函数也这样对待它。你从geocode('1200 Davis St', source='google', output='more')得到相同的结果吗? -
@user2554330 很好的建议,是的,这似乎给出了同样的错误结果。刚才的实验我发现如果您在 Google 地图中键入“1200 Davis St #3”,则将自动完成切换从本地结果映射到邮政编码以整数开头的结果,在本例中为“3”。但是加利福尼亚地址 zip 以“9”开头。因此,您可能是对的,地理编码和地图中的行为是由于不同的机制造成的。我认为必须探索地理编码功能才能确定它。
-
你能从你正在查找的字符串中去掉#字符吗?不确定这是否是您可以控制的数据
-
@camille 谢谢,是的,我就是这么做的。然而,我对为什么有必要感到困惑。
标签: r google-maps ggmap geocode