2011-07-02 104 views
5

您如何使用Google Maps V3 API在客戶端進行逆向地理編碼?從地址到LatLng的前向地理編碼是直接的(下面的代碼),但是您如何做同樣的反向地理編碼?客戶端逆向地理編碼(Google Maps V3 API)

師範大學地理編碼代碼:

geocoder = new google.maps.Geocoder(); 
geocoder.geocode({ 'address': address}, function(results, status) { 
    if (status == google.maps.GeocoderStatus.OK) { 
    map.setCenter(results[0].geometry.location); 
    var marker = new google.maps.Marker({ 
    map: map, 
    position: results[0].geometry.location 
    }); 

回答

13

的過程是完全一樣的,與而不是提供一個地址對象的地理編碼功能,您提供的經緯度對象

反向地理編碼代碼的微小差別:

var input = document.getElementById("latlng").value; 
var latlngStr = input.split(",",2); 
var lat = parseFloat(latlngStr[0]); 
var lng = parseFloat(latlngStr[1]); 
var latlng = new google.maps.LatLng(lat, lng); 

geocoder.geocode({'latLng': latlng}, function(results, status) { 
    if (status == google.maps.GeocoderStatus.OK) { 
    if (results[1]) { 
     map.setZoom(11); 
     marker = new google.maps.Marker({ 
      position: latlng, 
      map: map 
     }); 
     infowindow.setContent(results[1].formatted_address); 
     infowindow.open(map, marker); 
    } else { 
     alert("No results found"); 
    } 
    } else { 
    alert("Geocoder failed due to: " + status); 
    } 
}); 

Example directly from Google

希望有所幫助。

+0

您是否知道反向地理編碼請求是否有助於2500 /天的正常地理編碼限制? – Nyxynyxx

+0

我幾乎可以肯定它的確如此。這與使用不同參數的方法調用相同。只要確保你正在從客戶端進行地理編碼,你應該沒問題。 – Khepri

+0

太好了,謝謝! – Nyxynyxx

相關問題