2017-08-24 5 views
2

Ich habe eine Leaflet-Map, die ich auf Vollbildgröße verkleinere, wenn der Benutzer auf das bereitgestellte Icon klickt und es beim zweiten Klick auf Originalgröße komprimiert.Leaflet-Marker verliert Position nach InvalidateSize

Ich benutze die invalidateSize() Methode, nachdem die Größenänderung erfolgt ist, aber ich habe bemerkt, dass der Marker, den ich auf der Karte habe, seine Position verliert.

enter image description here


Das Problem war, dass ich Markerposition auf Klick wurde aktualisiert und ich denke, dass Sie auf die Resize-Taste verursacht Koordinaten der Marker auf falsche Position eingestellt werden. So funktioniert das Flugblatt gut. Ich habe es behoben, indem ich event.stopPropagation() auf dem Vergrößerungssymbol statt nur event.preventDefault() verwendet habe.

Antwort

0

try set timeout auf der Validierung

setTimeout(function(){map.invalidateSize()},500) 
+0

Kein Erfolg. Ich habe 250ms, 500ms und 1000ms probiert. Die Nadel ist gerade an einem anderen Ort gelandet. –

+0

versuchen Sie, den Marker zu entfernen, und zeichnen Sie erneut nach invalidateSize, zumindest lassen Sie mich den Code kennen – KEKUATAN

+0

Ich könnte das tun, aber für den Fall, dass es mehr Marker gibt, scheint es wie sehr schlechte Ansatz. Ich würde lieber richtige Lösung anstelle von Quickfix :) –

Verwandte Themen