当我尝试在进行地理编码时使用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
以外,我还没有看到此失败的原因。因此,尽管我可以选择解决此问题,但我也感到困惑,为什么它不起作用。
答案 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®ion=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的进一步通知。