2010-10-28 19 views
8

tengo este código que se carga en initatedGoogle Maps Geocode Indefinido

// 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.'); 
     } 
    }); 
} 

me sale el siguiente error

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

Respuesta

34

Bueno ... eh ... lo que dice. Estás diciendo geocoder.geocode(...), pero en realidad no has definido ninguna variable llamada geocoder. Olvidó:

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

ouch: D lo tengo: D gracias –

+0

El mismo error estúpido me sucede. Gracias – RredCat

+1

Esta fue la respuesta para ESTE caso específico, pero ¿debería abrirse una nueva pregunta duplicada simplemente porque esta solución no se aplica? Tengo esa línea al principio del código, y mi función anónima que lo llama (que no se ejecuta antes de la línea anterior, pero hace clic) lo encuentra indefinido. Probé el geocodificador con console.log dentro de cada función en la cadena de funciones en que se encuentra, y NINGUNO de ellas puede encontrarlo. Es como tener "var geocoder = ..." a nivel de documento no fue suficiente. – sergio

4

¿Tiene esta línea en alguna parte? No lo veo en el código proporcionado.

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

También asegúrese de que tiene

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

antes de ejecutar el código JavaScript.

Eso es lo que me fastidió.