Обратный геокод на стороне клиента (Google Maps V3 API) - PullRequest
5 голосов
/ 02 июля 2011

Как сделать обратный геокод на стороне клиента с помощью API Карт Google V3? Прямой геокод от адреса к LatLng является прямым (код ниже), но как сделать то же самое для обратного геокода?

Обычный код геокода:

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
  });

1 Ответ

13 голосов
/ 02 июля 2011

Процесс точно такой же, с небольшим отличием в том, что вместо предоставления объекта адреса для функции геокодирования вы предоставляете объект LatLng

Код обратного геокода:

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);
  }
});

Пример прямо из Google

Надеюсь, это поможет.

...