我正在使用Google Maps API來反向查找地址,特別是國家,城市和郵政編碼。我遇到的問題是,使用地理編碼器輸入特定的經緯度時,您會根據地址詳細信息的準確性獲得一系列結果。例如,如果您點擊街道,地址詳細信息的準確性爲8,地址如下所示; 「街道,城市,國家代碼」或「街道,城市郵編,國家代碼」。如果你點擊另一個地點,你可以得到地址詳細信息的準確性5返回;城市郵編,國家代碼。Google Maps API反向查詢地址詳細信息準確性
我正在尋找的是城市,郵政編碼和國家。有沒有辦法強制Google地圖始終返回地址細節準確性5或將分解的元素返回到各個部分,即城市,郵政編碼和國家/地區。
這是我使用來獲取信息的代碼:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps JavaScript API Example: Reverse Geocoder</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAMkjr3Dq_jK6GSFYDFzaHTBRoJ0TBOI_XK4bTNi9dL2l04KlxphRNL_k0peOib9IHF6T2KwlVmOb6uQ" type="text/javascript"></script>
<script type="text/javascript">
var map;
var geocoder;
var address;
function initialize() {
var zoom = 10;
map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(40.730885, -73.997383), zoom);
map.setUIToDefault();
GEvent.addListener(map, "click", getAddress);
geocoder = new GClientGeocoder();
}
function getAddress(overlay, latlng) {
if (latlng != null) {
address = latlng;
geocoder.getLocations(latlng, showAddress);
}
}
function showAddress(response) {
map.clearOverlays();
if (!response || response.Status.code != 200) {
alert("Status Code:" + response.Status.code);
} else {
place = response.Placemark[0];
point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
marker = new GMarker(point);
map.addOverlay(marker);
var message = '<b>orig latlng:</b>' + response.name + '<br/>' +
'<b>latlng:</b>' + place.Point.coordinates[1] + "," + place.Point.coordinates[0] + '<br>' +
'<b>Status Code:</b>' + response.Status.code + '<br>' +
'<b>Status Request:</b>' + response.Status.request + '<br>' +
'<b>Address:</b>' + place.address + '<br>' +
'<b>Accuracy:</b>' + place.AddressDetails.Accuracy + '<br>' +
'<b>Country code:</b> ' + place.AddressDetails.Country.CountryNameCode;
marker.openInfoWindowHtml(message);
}
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width: 800px; height: 600px"></div>
</body>
</html>
任何幫助將不勝感激。我最後的手段是解析地址字符串,但它感覺像是過度殺傷。必須有一個更清潔的方式。
我目前在看的getLocations()方法也許解析JSON結果可能會產生我要找的字段。
Thanx。