var geocoder = new google.maps.Geocoder();
geocoder.geocode({'latLng': foundLoc}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
var loc = getCityState(results);
}
}
});
function getCityState(results)
{
var citystateArray = results[1].formatted_address.split(",",2);
var city = citystateArray[0];
var state = citystateArray[1].substring(1, 3);
return (city + ', ' + state)
}
這就是我現在使用的方式,而且這項工作大約90%的時間都適用。其他時候,formatted_address
包含一個城鎮和一個城市以及州,其他時間只是城鎮和城市,其他時間您可以夢想的一切。從Google地圖請求中解析城市/州
我還沒有找到總是從Google Maps API結果中獲取城市/州的一致方式。你們有沒有一個人?謝謝。
,谷歌使用它們的頁面上一例中的一個響應示例:
{
"status": "OK",
"results": [ {
"types": [ "street_address" ],
"formatted_address": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
"address_components": [ {
"long_name": "1600",
"short_name": "1600",
"types": [ "street_number" ]
}, {
"long_name": "Amphitheatre Pkwy",
"short_name": "Amphitheatre Pkwy",
"types": [ "route" ]
}, {
"long_name": "Mountain View",
"short_name": "Mountain View",
"types": [ "locality", "political" ]
}, {
"long_name": "California",
"short_name": "CA",
"types": [ "administrative_area_level_1", "political" ]
}, {
"long_name": "United States",
"short_name": "US",
"types": [ "country", "political" ]
}, {
"long_name": "94043",
"short_name": "94043",
"types": [ "postal_code" ]
} ],
"geometry": {
"location": {
"lat": 37.4219720,
"lng": -122.0841430
},
"location_type": "ROOFTOP",
"viewport": {
"southwest": {
"lat": 37.4188244,
"lng": -122.0872906
},
"northeast": {
"lat": 37.4251196,
"lng": -122.0809954
}
}
}
} ]
}
有時,這些字段沒有值,有時他們做的。
您能否提供幾種不同類型的響應 - 也許可以構建一個可靠的正則表達式。 – Sampson
添加了一個恰好具有完整值的響應示例 – slandau
您可以顯示一些您可能會收到的'formatted_address'的其他示例嗎? – Sampson