使用componentRestrictions时的特定地理编码错误

时间:2019-01-10 04:56:01

标签: google-geocoding-api

当我尝试在进行地理编码时使用componentRestrictions时:

geocoder.geocode({
  address: address,
  componentRestrictions: {
    country: 'AU',
  },
}
对于:

address = 'Sydney 2000'(区分大小写) 我得到:

{
   "results" : [],
   "status" : "ZERO_RESULTS"
}
而“ address ='sydney 2000'” 给我悉尼的正常结果对象

(也基本上以“墨尔本3000”的格式在澳大利亚其他所有首府城市工作)

如果我使用区域:

geocoder.geocode({
  address: address,
  region: 'AU'
}
使用`address ='Sydney 2000'`(区分大小写)再次给我悉尼的常规结果对象

Sydney 2000以外,我还没有看到此失败的原因。因此,尽管我可以选择解决此问题,但我也感到困惑,为什么它不起作用。

1 个答案:

答案 0 :(得分:0)

您遇到的问题似乎是Google问题跟踪器中报告的已知问题

4-digit postal codes are hard to geocode (AT, AU, BE, CH, DK, NZ, SI)

根据Google的工程师

  

我们正在调查一个系统性问题,该问题似乎使在Geocoding API中很难找到4位数字的邮政编码。

     

为获得最佳结果,建议的请求格式是针对所需国家/地区使用组件过滤和区域偏向:

     

https://maps.googleapis.com/maps/api/geocode/json?skip_auth&components=postal_code:2725|country:AU&region=AU

     

尤其是在澳大利亚,如果在实施中可行,则添加Administrative_area:过滤器有助于处理2000-2020年范围内的大多数邮政编码。   (考虑到邮政编码2001-2005和2012-2014根本不在Google地图中)

     

https://maps.googleapis.com/maps/api/geocode/json?&components=country:AU|administrative_area:NSW|postal_code:2006

     

在其他国家/地区,如#10所述,尽可能添加位置过滤器也会有所帮助。

     

我们将在此保持您的职位。

我建议阅读所有错误的消息并给错误加注星标,以便订阅Google的进一步通知。