4

我正在尝试使用 R 中 googleway 包中的 google_geocode 函数对 Google 地图上的地址进行地理编码。我正在使用从 Google 获得的密钥,该密钥允许我超过 2500/天的限制(并为此收费)。我有不同类型的问题,主要是由于我使用的地址的编写方式,但是我想在这里问一个问题:我有时用googe_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"

但是,如果在 Google 地图中搜索完全相同的地址字符串,我会得到正确的位置(表明这是西班牙维多利亚的 Abendaño Kalea):

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

谁能解释可能发生了什么?也许谷歌地图或谷歌地理编码 API 的一些工作人员可能会有所帮助?非常感谢,

4

2 回答 2

1

请注意,Google 将这条街道称为“ABENDAÑO, 30-32 VITORIA-GASTEIZ 01008, ES”,因此 B 和 V 字母很重要。我知道在西班牙语中这是相同的声音,但谷歌可能希望完全匹配。

根据文档:

根据有关国家邮政服务使用的格式指定地址。

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

Correos.es上,我可以看到官方街道名称是 ABENDAÑO,如下面的截图所示

在此处输入图像描述

因此,只需使用以下请求即可获得结果:

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

我希望这有帮助!

于 2018-04-10T16:26:49.723 回答
1

我认为这很可能是由于编码问题。我在尝试使用“Ñ”对地址进行地理定位时发生过这种情况。这样做对我有用:

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

由于谷歌现在改变了他们的定价方案,你需要一个 API 密钥。

于 2018-08-06T19:17:19.890 回答