Nov 062011
 

Un problema molto frequente è che spesso vogliamo inserire un marker a partire da un indirizzo e non dalle sue coordinate che quindi dovranno essere calcolate in modo automatico.

L’oggetto che si occupa della traduzione in coordinate del nostro indirizzo si chiama geocoder e lo inizializziamo nella funzione che crea la mappa:


geocoder = new google.maps.Geocoder();

Successivamente, a partire da un indirizzo, chiameremo una funzione che si occuperà di tradurre l’indirizzo in coordinate e piazzare una marker nelle coordinate individuate:


function codeAddress() {
 var address = document.getElementById(“address”).value;
 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
 });
 }
 else {alert(“Geocode non ha trovato la posizione per il seguente motivo: ” + status);}
 });
 }

La prima istruzione assegna alla variabile address l’indirizzo che in questo caso viene preso da un campo di input.

Successivamente richiediamo le coordinate; se l’operazione va a buon fine, cioè geocoderstatus è ok, le coordinate vengono restituite nell’array results (results[0].geometry.location)

in modo da centrare la mappa sulle nuove coordinate e aggiungere il marker. Se si verifica un errore comparirà un alert, volendo possiamo eliminare l’istruzione contenuta nell’else.

L’esempio completo

Sorry, the comment form is closed at this time.