从地理编码器中的响应中获取country_code

时间:2011-07-16 18:23:47

标签: google-maps-api-3 geocoding

从地理编码器服务中读取响应结果,我得到的国家/地区代码不在同一个地方。如何使用简单的JavaScript代码从DOM获取国家/地区代码而不使用外部JSON库?

var latlng = new google.maps.LatLng(iplat, iplong);
    if (geocoder) {
        geocoder.geocode({'latLng': latlng},function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            if (results[1]) {
                country_code=results[1].address_components[0].short_name;
            }
        } 
        else 
        {
          alert("Geocoder failed due to: " + status);
        }
    });
}

2 个答案:

答案 0 :(得分:3)

        geocoder.geocode({'latLng': latlng}, function(results, status){
            if (status == google.maps.GeocoderStatus.OK){
                if (results[1]) {
                    for (var i=0; i<results[0].address_components.length; i++) {
                    for (var b=0;b<results[0].address_components[i].types.length;b++) {

                    if (results[0].address_components[i].types[b] == "country") {
                        //this is the object you are looking for
                        country= results[0].address_components[i];  
                        break;
                    }
                    }
                    }
                     //alert(country.short_name);
                }
            }
        });

答案 1 :(得分:2)

address_components数组的每个元素本身都是一个包含types元素的数组,该元素也是一个数组。您希望找到address_components的元素,其中types数组包含值“country”作为其元素之一。如果不清楚我写的是什么,请参阅http://code.google.com/apis/maps/documentation/geocoding/处的示例JSON响应。