首页 > 解决方案 > 如何使用谷歌 API 获取西班牙特定地址的地理编码?

问题描述

我正在尝试获取特定地址的地理编码,但是当我尝试使用西班牙地址时出现此特定错误,它向我显示Invalid request. One of the input parameters contains a non-UTF-8 string.,但在美国或印度等其他国家/地区工作正常。

我尝试使用其他西班牙地址,但它继续向我显示相同的错误我使用此 url 获取地理编码

https://maps.googleapis.com/maps/api/geocode/xml?address=hereputspainaddress&key=myapikey

也可以尝试通过区域和语言代码

https://maps.googleapis.com/maps/api/geocode/xml?address=hereputspainaddress&key=myapikey&language=es-co&region=ES

我需要有关如何根据添加的用户获取所有区域的地址并获取该特定地址的地理编码的帮助。

标签: google-mapsgoogle-maps-api-3google-api

解决方案


您应该在请求中发送地址字符串之前对其 进行 URL 编码。

我相信问题可能与您的地址中的 ñ 符号有关。如果您对其进行 URL 编码,它将被替换为%C3%B1.

如果我对地址进行 URL 编码,我可以获得响应

https://maps.googleapis.com/maps/api/geocode/json?address=Calle%20Aduana%2C%2029%2C%2028070%20MADRID%2C%20Espa%C3%B1a&key=MY_API_KEY

ChIJba0n1oYoQg0R5u5-y9jZ9sU在回复中获得地址为“Calle de la Aduana, 29, 28013 Madrid, Spain”的地点 ID。

您还可以在 Geocoder 工具中看到此结果:

https://google-developers.appspot.com/maps/documentation/utils/geocoder/#q%3DCalle%2520Aduana%252C%252029%252C%252028070%2520MADRID%252C%2520Espa%25F1a

我希望这有帮助!


推荐阅读