15 votos

Utilizando Leaflet Js, ¿es posible conocer la ubicación onclick de un Marcador (ignorar punto de anclaje)?

Tengo un objeto marcador que tiene una altura y una anchura determinadas, y aunque apunta a una sola coordenada, la representación visual del marcador abarca muchos píxeles. Cuando hago clic en la representación visual del marcador, me gustaría obtener las coordenadas subyacentes del mapa, pero en su lugar sólo tengo acceso a la única coordenada lat/lng asociada al marcador.

18voto

IvanSanchez Puntos 491

Por un lado: cada vez que Leaflet gestiona un evento de ratón (o táctil), puede acceder al evento DOM original en el archivo originalEvent del evento.

Por otro lado: Dado un evento DOM de ratón (o táctil), Leaflet puede traducir mágicamente su clientX y clientY en una instancia de L.LatLng utilizando map.mouseEventToLatLng() .

Combina estas dos cosas, y puedes tener algo como:

marker.on('click', function(ev){
  var latlng = map.mouseEventToLatLng(ev.originalEvent);
  console.log(latlng.lat + ', ' + latlng.lng);
});

Consulte la documentación de Leaflet para conocer los demás métodos de conversión, ya que pueden resultarle útiles.

12voto

Murtuza Vadharia Puntos 655

Siempre puede recuperar las coordenadas desde el mapa de objetos de Leaflet. Puede utilizar algo como esto:

map.on('click', function(e){
  var coord = e.latlng;
  var lat = coord.lat;
  var lng = coord.lng;
  console.log("You clicked the map at latitude: " + lat + " and longitude: " + lng);
  });

Aquí tienes un ejemplo de trabajo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X