2010-10-13 12 views

Odpowiedz

85

Jest to całkiem dobry przykład na https://developers.google.com/maps/documentation/javascript/examples/geocoding-simple

Aby skrócić ją nieco:

geocoder = new google.maps.Geocoder(); 

function codeAddress() { 

    //In this case it gets the address from an element on the page, but obviously you could just pass it to the method instead 
    var address = document.getElementById('address').value; 

    geocoder.geocode({ 'address' : address }, function(results, status) { 
     if(status == google.maps.GeocoderStatus.OK) { 

      //In this case it creates a marker, but you can get the lat and lng from the location.LatLng 
      map.setCenter(results[0].geometry.location); 
      var marker = new google.maps.Marker({ 
       map  : map, 
       position: results[0].geometry.location 
      }); 
     } else { 
      alert('Geocode was not successful for the following reason: ' + status); 
     } 
    }); 
} 
+6

Nie żałujemy, że cała dokumentacja nie była tak dobra jak jQuery. Mam problemy z niektórymi dokumentami Google. – b729sefc

22

Nie sądzę location.LatLng działa, jednak to działa:

results[0].geometry.location.lat(), results[0].geometry.location.lng() 

Znaleziono go podczas eksplorowania kodu źródłowego Get Lat Lon.

+0

Dziękuję za to! – cpcdev

16

Jeśli trzeba to zrobić na backend można wykorzystać następującą strukturę URL:

https://maps.googleapis.com/maps/api/geocode/json?address=STREET_ADDRESS 

próbki kodu PHP przy użyciu curl:

$curl = curl_init(); 

curl_setopt($curl, CURLOPT_URL, 'https://maps.googleapis.com/maps/api/geocode/json?address=' . rawurlencode($address)); 

curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1); 

$json = curl_exec($curl); 

curl_close ($curl); 

Zobacz dodatkowe documentation więcej szczegółów.

Dokumenty zawierają przykładowe dane wyjściowe i pomogą w uzyskaniu własnego numeru API key, aby móc wysyłać żądania do interfejsu API Map Google Geokodującego.

+0

Czy wiesz, jaki jest limit dla tego. Mam na myśli, ile połączeń mogę wykonać w ciągu godziny lub dnia? –

+2

Limity bezpłatnego interfejsu API to 2500 żądań w ciągu 24 godzin, 5 żądań na sekundę ... zobacz https://developers.google.com/maps/documentation/geocoding/intro#Limits – farinspace

+1

Przyszedłem, szukając tego. Użytkownicy PHP mogą używać '$ arr = json_decode ($ json, true) ;, aby uzyskać dostęp do danych. –

Powiązane problemy