Jquery 为什么谷歌地理编码有时只返回邮政编码?

Jquery 为什么谷歌地理编码有时只返回邮政编码?,jquery,google-maps,google-maps-api-3,geocoding,Jquery,Google Maps,Google Maps Api 3,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 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);

}
var测试='newyork,NY';
var geocoder=new google.maps.geocoder();
geocoder.geocode({'address':test},函数(结果,状态){
如果(status==google.maps.GeocoderStatus.OK){
var lat=results[0]。geometry.location.lat();
var lng=results[0]。geometry.location.lng();
var result=results[0]。地址\u组件;
//控制台日志(结果);
var=null;
var city=null;
var state=null;
var country=null;

对于(var i=0;i如果您真的需要邮政编码,您可以将请求返回到反向地理编码程序,该程序将为您提供一个能够代表该城市的邮政编码:

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);


一个城市可以有多个邮政编码。谷歌应该如何决定给你哪一个邮政编码?你检查过这种情况下的结果吗?显示纽约州纽约市匹配149个邮政编码。正如凯文所说,如果没有更具体的信息,比如实际地址,你希望哪一个邮政编码?一个城市也有许多lat/lng组合,而且它有一些ow决定返回一个。为什么不返回其返回的lat/lng的zip?