我試圖對澳大利亞郵政編碼0821進行地理編碼,它不能可靠地識別北領地內存在的這個郵政編碼。 0820和0822工作正常。谷歌地圖地理編碼在澳大利亞郵政編碼0821只有
的我在做什麼 var gm = google.maps;
var gc = new gm.Geocoder();
var grq:google.maps.GeocoderRequest = {
address:s, region:"au"
};
var m = /[0-9]{4}/.exec(s);
if(m && m.length == 1)
grq.componentRestrictions = {
country:'au'/*, postalCode:m[1]*/
};
gc.geocode(grq,(results, status)=>{
if(status == gm.GeocoderStatus.OK) {
var latLng = results[0].geometry.location;
$.ajax({
url:`${apiUrl}near/${latLng.lat()},${latLng.lng()}`,
success: (response)=>this.parseResult(response,latLng)});
} else {
this.search.searchEnded();
console.warn("Gecode Failed",results,status);
alert('Unable to find location, try entering more specific search');
}
這個例子https://google-developers.appspot.com/maps/documentation/javascript/examples/full/geocoding-simple似乎也顯示出類似的問題,而不是不定位0821
爲例,說明它在布宜諾斯艾利斯白羊座(搜索「澳大利亞0821」或「0821澳大利亞),搜索'澳大利亞0822'的作品發現雖然。
我也嘗試使用postalCode限制,這使事情變得更糟。
如何可靠地對郵編進行地理編碼?
這個答案提供線索的解決方案,但並沒有解釋爲什麼OP不能「可靠的地理編碼產生後置」。 原因是GeoCode不知道給定的數字是指STREET NUMBER還是POSTCODE,除非將user3372176所示的過濾器添加到請求中。谷歌首先尋找街道號碼。編號較低的郵政編碼更可能與街道號碼匹配並指向WoopWoop中的地址 –