嗨,我正在使用谷歌的自动完成搜索位置搜索框。它工作正常。但是我有一个奇怪的问题,关于我得到的 JSON 格式
//geolocation
var input = document.getElementById('searchTextField');
var options = {
};
var autocomplete = new google.maps.places.Autocomplete(input,options);
//autocomplete.bindTo('bounds', map);
google.maps.event.addListener(autocomplete, 'place_changed', function() {
$("#results").html('');
var place = autocomplete.getPlace();
$("#results").append('<p> Latitude and Longtidute : '+place.geometry.location +'</p>');
$("#results").append('<p> Address : '+place.formatted_address +'</p>');
//extracting useful part
$.each(place.address_components, function() {
if(this.types[0]=="route"){
$("#results").append('<p> route : '+this.long_name +'</p>');
}
if(this.types[0]=="locality"){
$("#results").append('<p> locality : '+this.long_name +'</p>');
}
if(this.types[0]=="administrative_area_level_2"){
$("#results").append('<p> administrative area 2 : '+this.long_name +'</p>');
}
if(this.types[0]=="administrative_area_level_1"){
$("#results").append('<p> administrative area 1 : '+this.long_name +'</p>');
}
if(this.types[0]=="country"){
$("#results").append('<p> country : '+this.long_name +'</p>');
}
});
$("#results").append('<p> Places Name : '+place.name+'</p>');
var searchAddressComponents = place.address_components;
$.each(searchAddressComponents, function(){
if(this.types[0]=="postal_code"){
searchCountry=this.short_name;
}
});
});
现在如您所见,我明确使用 long_name 来捕获 long_name,即如果我得到加拿大,我想将它作为加拿大而不是 CA。但不幸的是,这里它在 long_name 和 short_name 中都为我提供了 CA。但非常奇怪的是,如果我直接在 Web 浏览器中键入 API 请求,它只会给我全名作为加拿大……可能是我的代码中缺少一些选项。
我附上了“多伦多公寓,Capreol Court,多伦多,安大略省,加拿大”代码给出的一些结果
经纬度 : (43.640368, -79.39589699999999)
地址 : 17 Capreol Court, Toronto, ON, Canada
路线 : Capreol Court
地点:多伦多
行政区1:开
国家 : CA
地名 : 多伦多公寓
(注意和 CA)
它给了我
"results" : [
{
"address_components" : [
{
"long_name" : "Capreol Court",
"short_name" : "Capreol Ct",
"types" : [ "route" ]
},
{
"long_name" : "CityPlace",
"short_name" : "CityPlace",
"types" : [ "neighborhood", "political" ]
},
{
"long_name" : "Old Toronto",
"short_name" : "Old Toronto",
"types" : [ "sublocality", "political" ]
},
{
"long_name" : "Toronto",
"short_name" : "Toronto",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Toronto Division",
"short_name" : "Toronto Division",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Ontario",
"short_name" : "ON",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Canada",
"short_name" : "CA",
"types" : [ "country", "political" ]
},
{
"long_name" : "M5V",
"short_name" : "M5V",
"types" : [ "postal_code_prefix", "postal_code" ]
}
],
你能检查一下吗...