使用googleway进行地址地理编码:结果不一致

4
我正在尝试使用R中googleway包中的google_geocode函数在Google Maps上对地址进行地理编码。我使用从Google获取的密钥,允许我超过2500 /天的限制(并为此付费)。我遇到了不同类型的问题,主要是由于我使用的地址书写方式不同,但有一个问题我想在这里问一下:为什么有时候使用google_geocode查询没有结果,但如果我在http://www.google.com/maps/上输入相同的地址字符串,则会返回结果?
我的例子:
address="AVENDAÑO, 30-32 VITORIA-GASTEIZ 01008, ES"
# the address I want to geocode. Its format is "street, number, city postcode, country" in a single string.
google_geocode(address=address,key=mykey) # I write the right key as mykey.
# I get no results:
$results
list()
$status
[1] "ZERO_RESULTS"

但是,如果在谷歌地图中搜索完全相同的地址字符串,我会得到正确的位置(显示这是西班牙维多利亚的阿本达诺卡莱亚):

https://www.google.com/maps/place/Abenda%C3%B1o+Kalea,+30,+01008+Vitoria-Gasteiz,+Araba/@42.8451894,-2.6855022,17z/data=!3m1!4b1!4m5!3m4!1s0xd4fc213d775d83d:0xc2a5f2ffa8721c2a!8m2!3d42.8451855!4d-2.6833135

有人能解释一下可能发生了什么吗?也许来自Google Maps或Google Geocoding API的员工可以帮忙吗? 非常感谢。


我有同样的经历,但也不知道为什么会发生这种情况。 - DatamineR
你尝试过使用“places” API 吗?google_places(search_string = address, key = <your_key>)。Google 地图背后的数据和他们通过 API 公开发布的数据并不总是相同的。我不知道为什么。 - SymbolixAU
地点不够详细,无法满足我的需求,但你是对的(正如xomena在下面所建议的那样),问题是由于地图和API没有使用相同的数据。谢谢。 - Javier
2个回答

1

我认为这很可能是由于编码问题造成的。当我尝试使用带有“Ñ”字母的地址进行地理定位时,我也遇到了这种情况。以下方法对我有效:

string <- "AVENDAÑO, 30-32 VITORIA-GASTEIZ 01008, ES"
Encoding(string) <- "UTF-8"
google_geocode(string, key = key)

由于谷歌改变了其定价方案,现在您需要拥有 API 密钥。


1
请注意,谷歌将此街道识别为“ABENDAÑO,30-32 VITORIA-GASTEIZ 01008,ES”,因此B和V字母很重要。我知道在西班牙语中这是相同的音,但谷歌可能期望完全匹配。
根据文档:
“按照有关国家邮政服务使用的格式指定地址。”
来源:https://developers.google.com/maps/faq#geocoder_queryformatCorreos.es上,我可以看到官方街道名称为ABENDAÑO,如下图所示。

enter image description here

只需使用以下请求获取结果:

https://maps.googleapis.com/maps/api/geocode/json?address=ABENDA%C3%91O%2C%2030-32%20VITORIA-GASTEIZ%2001008%2C%20ES&key=YOUR_API_KEY

或者在地理编码器工具中同样的事情:

https://google-developers.appspot.com/maps/documentation/utils/geocoder/#q%3DABENDA%25D1O%252C%252030-32%2520VITORIA-GASTEIZ%252001008%252C%2520ES

我希望这可以帮到你!


谢谢您的回复,但我认为它可能没有抓住重点。当然,如果我能以规范化的方式编写我需要进行地理编码的所有地址,谷歌将会正确处理它们。但我的经验是,在某些情况下(Avendaño/Abendaño 只是一个例子),尽管谷歌地图正确重新解释了不精确的地址并提供了答案,但 API 却没有返回“ZERO_RESULTS”。 - Javier
你应该明白,Google Maps网站和Google Maps API是由Google的不同团队管理的不同产品。不能保证它们完全相同。 - xomena
是的,看起来是这样。我之前不知道它们之间的区别。非常感谢。 - Javier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接