gpt4 book ai didi

javascript - 谷歌地图地理编码服务

转载 作者:行者123 更新时间:2023-11-28 02:57:04 25 4
gpt4 key购买 nike

我正在使用谷歌地图 API 地理编码服务来获取位置的国家/地区名称、邮政编码等。

JSON 响应:

{
"name": "1600 Amphitheatre Parkway, Mountain View, CA, USA",
"Status": {
"code": 200,
"request": "geocode"
},
"Placemark": [
{
"address": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
"AddressDetails": {
"Country": {
"CountryNameCode": "US",
"AdministrativeArea": {
"AdministrativeAreaName": "CA",
"SubAdministrativeArea": {
"SubAdministrativeAreaName": "Santa Clara",
"Locality": {
"LocalityName": "Mountain View",
"Thoroughfare": {
"ThoroughfareName": "1600 Amphitheatre Pkwy"
},
"PostalCode": {
"PostalCodeNumber": "94043"
}
}
}
}
},
"Accuracy": 8
},
"Point": {
"coordinates": [-122.083739, 37.423021, 0]
}
}
]
}

问题是 - 有时(尽管检查了未定义)我收到一个错误,指出国家/地区未定义。

var country = document.getElementById("id_country");
if(place.AddressDetails.Country.CountryNameCode != undefined){
country.value = place.AddressDetails.Country.CountryNameCode;
}

另外,我如何访问 PostalCodeNumber?

place.AddressDetails.AdministrativeArea.SubAdministrativeArea.PostalCode.PostalCodeNumber

最佳答案

大多数时候,当我尝试以下代码时:

place.AddressDetails.AdministrativeArea. //etc.

我没有得到任何东西,我不知道如何解释它,但是我的队友编写了一个脚本来手动解析它,并且它对我们来说工作得很好(虽然代码很多)。您可以尝试并编辑它以获取其余缺失字段(您的邮政编码):

//[MARKEL]: Returns object type: obj.ad1, obj.ad2, obj.ad3, obj.state, obj.country
function ResolveGeoCode(point, returnCall) {
//[MARKEL]: initialize geocoder
geocoder = new GClientGeocoder();

geocoder.getLocations(point, function getAddress(response) {
//[MARKEL]: Create a object to call proxy location Set location variable to be global
//because it will be assigned in call-back function
var Location;

if (!response || response.Status.code != 200) {
//MARKEL: [TODO] => Set code here to alert that the address id invalid
}
else {
place = response.Placemark[0];
place = response.Placemark[0];
point = new GLatLng(place.Point.coordinates[1],
place.Point.coordinates[0]);

var len = place.address.toString().split(",").length;
var array = place.address.toString().split(",");
//alert(place.address);
//alert(len);
if (len >= 3) {
if (array[0].length > 2) {
Location = {
Street: array[0],
State: array[1],
Country: array[2]
};
}
else {
Location = {
Street: array[1],
State: "",
Country: array[2]
};
}
}
else if (len == 2) {
Location = {
Street: "",
State: array[0],
Country: array[1]
};

}

else if (len == 1) {
Location = {
Sreet: "",
State: "",
Country: array[0]
};
}
else {
//[MARKEL]: [TODO] => Place code here to indicate that the address is not valid.
}

}
returnCall(Location);
return Location;
});

}

关于javascript - 谷歌地图地理编码服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2350240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com