谷歌地图API自动完成功能转到错误的地址

时间:2018-07-13 16:14:40

标签: google-maps autocomplete

我输入了我知道存在于google api自动完成中的地址:

642新南威尔士州2145大西部公路峡谷之间

map example link

-自动完成功能可以识别它,但是...

我得到的结果不正确:

642 Great Western Hwy,澳大利亚新南威尔士州2776,福克布里奇

对于其他类似地址, 有解决方法吗?
我研究了Autocomplete.getPlaces() 而且似乎找不到解决方法。

-我什至研究了AutocompleteServices对象(其中自动完成功能提供了正确的预测-但不在官方的 address_components 中。)

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

这是Google方面的持续性问题,几天前已在Google问题跟踪器中报告。您可以在这里找到它:

Locality/postal_code in Place Details does not align with Place Autocomplete description.

Google正在研究它,希望他们能尽快找到解决方案。我建议给该错误加注星标,以添加您的投票并订阅来自Google的通知。

同时,我能想到的独特解决方法是使用自动完成预测中的格式化字符串,并使用Geocoding API服务来解决它,而不是使用位置ID来获取位置详细信息。

例如,您执行自动完成请求

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=642%20Great%20Western%20Hwy%20Girraween%20NSW%202145&key=YOUR_API_KEY

它在响应JSON中返回以下值:

“描述”:“ 642 Great Western Hwy,Girraween NSW 2145,澳大利亚” “ place_id”:“ EjQ2NDIgR3JlYXQgV2VzdGVybiBId3ksIEdpcnJhd2VlbiBOU1cgMjE0NSwgQXVzdHJhbGlhIjESLwoUChIJ1Ww4J998BfCWtCSCtSc> B

如果您使用地点ID来获取详细信息,它将解析为错误的地址

https://maps.googleapis.com/maps/api/place/details/json?placeid=EjQ2NDIgR3JlYXQgV2VzdGVybiBId3ksIEdpcnJhd2VlbiBOU1cgMjE0NSwgQXVzdHJhbGlhIjESLwoUChIJ1Ww4O998EmsRmSCZE6S6OVMQggUqFAoSCdtIcBNscBJrESbra3OWkCBW&key=YOUR_API_KEY

但是,如果对描述中的文本使用地理编码,则会得到正确的地址:

https://maps.googleapis.com/maps/api/geocode/json?address=642%20Great%20Western%20Hwy%20Girraween%20NSW%202145&key=YOUR_API_KEY

您还可以在Geocoder工具中看到此内容:

https://google-developers.appspot.com/maps/documentation/utils/geocoder/#q%3D642%2520Great%2520Western%2520Hwy%2520Girraween%2520NSW%25202145

我希望这会有所帮助!