2012-12-21 49 views
3

如果我只通過我的GeoCoding呼叫某個城市並聲明無法返回郵政編碼。任何想法爲什麼?爲什麼Google GeoCoding僅有時會返回郵政編碼?

這裏是我的電話:

var test = 'New York, NY'; 

var geocoder = new google.maps.Geocoder();   
geocoder.geocode({ 'address': test }, function (results, status) {   

if (status == google.maps.GeocoderStatus.OK) { 

    var lat = results[0].geometry.location.lat(); 
    var lng = results[0].geometry.location.lng(); 

    var result=results[0].address_components; 

    //console.log(result); 

    var postal = null; 
    var city = null; 
    var state = null; 
    var country = null; 

    for(var i=0;i<result.length;++i){ 
     if(result[i].types[0]=="postal_code"){ 
      postal = result[i].long_name; 
     } 
     if(result[i].types[0]=="administrative_area_level_1"){ 
      state = result[i].long_name; 
     } 
     if(result[i].types[0]=="locality"){ 
      city = result[i].long_name; 
     } 
     if(result[i].types[0]=="country"){ 
      country = result[i].long_name; 
     } 
    } 

    alert("POSTAL: " + postal); 
    alert("STATE: " + state); 
    alert("CITY: " + city); 
    alert("COUNTRY: " + country); 

} 
+1

一個城市可以有不止一個郵政編碼。谷歌應該如何決定哪一個給你?你有沒有檢查過那種情況下的結果? –

+0

[對官方USPS文件的快速查詢](http://smartystreets.com/?city=new+york&state=ny)顯示紐約州,紐約州匹配149個郵政編碼。像凱文說,你期望哪一個,沒有更具體的信息,像一個實際的地址? – Matt

+0

一個城市也有很多經緯度的組合,它決定一個返回。爲什麼不返回它返回的經緯度的拉鍊? – Danial

回答

1

如果你真的需要一個郵政編碼,你可以扔掉請求回反向地理編碼,應該給你一個郵政編碼有點代表性的城市:

if (!postal) { 
    geocoder.geocode({ 'location': results[0].geometry.location }, function (results, status) {   
    if (status == google.maps.GeocoderStatus.OK) { 

     var result=results[0].address_components; 

     for(var i=0;i<result.length;++i){ 
     if(result[i].types[0]=="postal_code"){ 
      postal = result[i].long_name; 
     } 
     } 
     alert("POSTAL: " + postal); 
    } 
}); 
} else alert("POSTAL: " + postal); 

example

相關問題