3 votos

¿Determinar si otro marcador (Punto o Polilínea) donde se arrastra el Punto del marcador en el Folleto?

Estoy intentando crear una interacción entre 2 marcadores con Leaflet, me gustaría poder arrastrar un marcador sobre otro

Ya sea entre un punto y una línea, o entre dos puntos.

He añadido el draggable:true al crear mis marcadores:

var marker = L.marker(latlng, {draggable: true}); 

Así que soy capaz de moverlo y coger el dragend evento.

Pero, ¿cómo puedo saber si hay otro marcador donde dragend ¿?

Supongo que podría intentar encontrar marcadores en una zona de radio desde donde suelto el marcador. Pero esto depende del nivel de zoom en el que me encuentre. Si estoy en el nivel de zoom 1, dos puntos están "cerca" si sólo hay 100 km entre ellos. Si estoy en el nivel de zoom 18, dos puntos están "cerca" si sólo hay 10 metros entre ellos...

Además, me encantaría poder arrastrar un marcador a una LineString entre 2 puntos. Por ejemplo:

Point A *-----------------* Point B
                ^
                |
                | Dragging Point C in the middle of the LineString
      Point C   *

Pero cuando estoy arrastrando el marcador del Punto C en la LineString no se dispara el onmouseover del evento LineString.

¿Cómo puedo saber si hay otro marcador (punto o polilínea) en el lugar donde he arrastrado un punto marcador?

3voto

ghybs Puntos 868

Probablemente le interese Folleto.Snap plugin:

Permite ajustar los marcadores arrastrables a polilíneas y otras capas

(desgraciadamente la demo online está rota, no sé exactamente por qué pero puedes descargar el repo, asegúrate de que el docs/index.html llama a los archivos Leaflet utilizando el http:// y ábrelo en tu navegador local, debería funcionar bien)

Proporciona algunos eventos que puede utilizar para ser notificado cuando su marcador se suelta sobre otro o sobre una LineString / Polyline.

Sin embargo, no sé si es compatible con Leaflet 1.x

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