我正在使用谷歌地图API对地址进行地理编码,并且需要将街道地址、城市、州和邮政编码分别获取到不同的字段中。根据返回结果中的地址组件类型文档,这是我的代码:
var address = "";
var city = "";
var state = "";
var zip = "";
geocoder.geocode( { 'address': inputAddress}, function(results, status){
if (status==google.maps.GeocoderStatus.OK){
// loop through to get address, city, state, zip
$.each(results[0].address_components, function(){
switch(this.types[0]){
case "postal_code":
zip = this.short_name;
break;
case "street_address":
address = this.short_name;
break;
case "administrative_area_level_1":
state = this.short_name;
break;
case "locality":
city = this.short_name;
break;
}
});
} else{ alert("Invalid Address"); }
});
然而,当我输入地址时,“street_address”似乎没有被返回;相反,它以分开的字段返回,最常见的是“street_number”和“route”,偶尔还有其他字段(例如apt号的“subpremise”)。请参见文档中地理编码结果的示例。
如何获取一个包含与街道地址相关的任何字段的地址变量?对于文档中的示例,我想要“1600 Ampitheatre Parkway”。