2011-06-16 22 views
14

¿Cómo se puede crear un oyente para un marcador y obtener su latitud y longitud? Cuando creo un oyente para cada marcador de un evento de clic, puedo hacer cosas como alerta en el clic, pero ¿cómo puedo obtener las coordenadas del marcador, es decir, click -> this.getLat/getLng, etc. cuando se hace clic en?Obtener latitud y longitud de marcador (onclick)

Respuesta

27

Prueba esto:

marker = new google.maps.Marker({ 
      position: latlng, 
      map: map      
}); //end marker 

//Add listener 
google.maps.event.addListener(marker, "click", function (event) { 
        alert(this.position); 
}); //end addListener 
+1

this.position es indocumentado debe utilizar 'objeto de evento 'y trae el' event.latLng' con la función 'lat()' y 'lng()'. para mucho mejor –

+2

'this.position' se documenta como' this' se refiere al objeto 'Marker' en este contexto. 'position' es una propiedad en un marcador. También puede usar el objeto 'evento' en cuyo caso debe usar la propiedad 'latLng', pero recuerde que el 'latLng' devuelto será la posición del cursor en el momento del clic y no la posición de los marcadores. Según el nivel de precisión que desee, estas diferencias son importantes. –

+0

es maps.addListener (...) con google maps api v3 – Heraclitus

21

Como seguimiento a la excelente respuesta de Bryan Weaver, si quieres SAVE latitud y longitud por separado, debe utilizar lat() y lng(). la propiedad de posición no es una cadena regular. código

de Bryan se convertiría en:

marker = new google.maps.Marker({ 
      position: latlng, 
      map: map      
}); //end marker 

//Add listener 
google.maps.event.addListener(marker, "click", function (event) { 
    var latitude = this.position.lat(); 
    var longitude = this.position.lng(); 
    alert(this.position); 
}); //end addListener 

se puede aplicar lat() y lng() directamente en una variable (latLng)

var latitude = latLng.lat(); 
    var longitude = latLng.lng(); 
Cuestiones relacionadas