如何使用Google的地理编码组件过滤功能按国家和州验证美国邮政编码?

时间:2019-01-06 06:35:05

标签: geocoding google-geocoding-api zipcode

我正在使用Google地理编码API进行组件过滤。

要在特定国家/地区验证邮政编码,我使用以下电话为例: https://maps.googleapis.com/maps/api/geocode/json?components=postal_code:94301|country:USA

我想添加另一个组件来指示状态。根据{{​​3}},我可以使用“ administrativeArea”来做到这一点。

我无法正常运行。 例如,调用邮政编码为94301且状态为“亚利桑那州”的API时,将不返回任何值,而状态为“加利福尼亚州”则应返回相关地址。

我尝试过: documentation

1 个答案:

答案 0 :(得分:0)

您在组件筛​​选中使用administrativeArea=Arizona。请注意,根据文档,Web服务应使用administrative_area=Arizona

https://developers.google.com/maps/documentation/geocoding/intro#ComponentFiltering

  

以下组件可能会影响结果,但不会强制执行:

     
      
  • route匹配路径的长名称或短名称。
  •   
  • 地点匹配地点和子地点类型。
  •   
  • administrative_area 匹配所有Administrative_area级别。
  •   

当我执行以下请求时

https://maps.googleapis.com/maps/api/geocode/json?components=administrative_area%3AArizona%7Cpostal_code%3A94301%7Ccountry%3AUS&key=MY_API_KEY

我得到答复

{
  "results":[    
  ],
  "status":"ZERO_RESULTS"
}

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

https://google-developers.appspot.com/maps/documentation/utils/geocoder/#in_administrative_area%3DArizona%26in_postal_code%3D94301%26in_country%3DUS%26options%3Dtrue

https://google-developers.appspot.com/maps/documentation/utils/geocoder/#q%3D%26in_country%3DUS%26in_administrative_area%3DCalifornia%26in_postal_code%3D94301

我希望这会有所帮助!