仅提供邮政编码的Google Maps API查询提供了不正确的结果

时间:2018-09-25 14:52:42

标签: google-maps google-geocoder google-geocoding-api

我们使用Google Maps API,并且当用户输入5位数的邮政编码时,在大多数情况下结果都是正确的;会将输入视为邮政编码,并根据该位置返回结果。

引起我们注意的问题是,查询某些邮政编码(42025是我们的主要示例)不会返回预期结果(Benton,KY)。 API调用实际上返回“ status”:“ ZERO_RESULTS”。在maps.google.com上进行类似的搜索有时会产生肯定的结果,但前提是肯塔基州本顿市已经消耗了大部分视口。一种解决方法是在查询字符串中添加术语“ zip”。

我的调查显示,失败的结果似乎是使用5位数字的字符串,好像街道地址一样,什么都找不到。例如,对“ 42020”的查询最终显示的是华盛顿特区附近的某个地址。

有人遇到这个问题吗?有关如何解决此问题的任何建议?

1 个答案:

答案 0 :(得分:2)

我建议您在Geocoder请求中使用component filtering以获得邮政编码。

您的请求将被重写为

https://maps.googleapis.com/maps/api/geocode/json?components=postal_code%3A42025%7Ccountry%3AUS&key=YOUR_API_KEY

https://maps.googleapis.com/maps/api/geocode/json?components=postal_code%3A42020%7Ccountry%3AUS&key=YOUR_API_KEY

两个请求都将预期结果返回给我。您还可以在Geocoder工具中看到它:

https://google-developers.appspot.com/maps/documentation/utils/geocoder/#q%3D%26options%3Dtrue%26in_country%3DUS%26in_postal_code%3D42025

https://google-developers.appspot.com/maps/documentation/utils/geocoder/#q%3D%26options%3Dtrue%26in_country%3DUS%26in_postal_code%3D42020

我希望这会有所帮助!