2010-10-28 18 views
8

Ho questo codice che viene initated sul caricoGoogle Maps Geocode indefinito

// Display the map 

function map_it() { 
    var myLatlng = new google.maps.LatLng(13.005621, 77.577531); 
    var myOptions = { 
     zoom: zoomLevel, 
     center: myLatlng, 
     disableDefaultUI: true, 
     mapTypeId: google.maps.MapTypeId.ROADMAP, 
     navigationControl: true, 
     navigationControlOptions: { 
      style: google.maps.NavigationControlStyle.SMALL 
     } 
    } 
    map = new google.maps.Map(document.getElementById("map-it"), myOptions); 
    var marker = new google.maps.Marker({ 
     position: myLatlng, 
     map: map, 
     draggable: true 
    }); 
    google.maps.event.addListener(marker, 'dragend', function (event) { 
     document.getElementById('mapLat').value = marker.getPosition().lat(); 
     document.getElementById('mapLng').value = marker.getPosition().lng(); 
     geocodePosition(marker.getPosition()); 
    }); 
} 

function geocodePosition(pos) { 
    geocoder.geocode({ 
     latLng: pos 
    }, function (responses) { 
     if (responses && responses.length > 0) { 
      updateMarkerAddress(responses[0].formatted_address); 
      alert(responses[0].formatted_address); 
     } else { 
      updateMarkerAddress('Cannot determine address at this location.'); 
     } 
    }); 
} 

ottengo il seguente errore

geocoder is not defined 
http://localhost/bakasura1/js/modal.js 
Line 74 

risposta

34

Beh ... ehm ... quello che dice. Stai dicendo geocoder.geocode(...), ma in realtà non hai definito alcuna variabile chiamata geocoder. Hai dimenticato:

var geocoder= new google.maps.Geocoder(); 
+0

ouch: D capito: D grazie –

+0

Lo stesso stupido errore succede con me. Grazie – RredCat

+1

Questa era la risposta per questo caso specifico, ma dovrebbe essere aperta una nuova domanda duplicata solo perché questa soluzione non si applica? Ho questa riga all'inizio del codice e la mia funzione anonima che la chiama (che non viene eseguita prima della riga sopra, ma onclick) lo trova indefinito. Ho testato il geocoder con console.log all'interno di ogni funzione della catena di funzioni in cui si trova questo e NONE di loro può trovarlo. È come avere "var geocoder = ..." a livello di documento non era abbastanza. – sergio

4

Avete questa linea da qualche parte? Non lo vedo nel codice fornito.

geocoder = new google.maps.Geocoder(); 
1

anche assicurarsi di avere

<script src="https://maps.google.com/maps?file=api&amp;v=3&amp;sensor=false" 
    type="text/javascript"></script> 

prima di eseguire il codice JavaScript.

Questo è ciò che mi ha incasinato.

Problemi correlati