2013-04-08 12 views

Odpowiedz

13

Musisz zrobić to tak:

marker.dragging.disable(); // marker.dragging.enable(); 

Moja pierwsza próba zmienia tylko właściwości technicznych, ale nie the behavior.

+0

Niesamowite, szykowałem się do wyrywania włosów. – autonomy

+0

Dziękuję również. Zastanawiałem się, jak to zrobić, ponieważ potrzebuję również takiej funkcjonalności! :) –

+0

Nie działa teraz dla mnie. 'TypeError: [marker] .dragging jest niezdefiniowany' – mc0e

1

Zmotywowany przez @ mc0e problem dotyczący "niezdefiniowany". Oto przykład.

(na podstawie kodu z Leafletjs.com i Leafletjs quick start)

  1. Otwarte Wikimedia maps (która opiera się na ramach w pytaniu).
  2. Otwórz konsolę przeglądarka (Ctrl + j lub Ctrl + k) umieścić znacznik (trzeba będzie zdefiniować zmienną pierwszy). Użyj kodu-1.

Code-1 w konsoli:

var markerLondon = L.marker() 
    .setLatLng([51.5, -0.09]) 
    .bindPopup('Centre of London') 
    .addTo(map) 
    .openPopup(); 
  1. Teraz masz non-Draggable znacznik. Użyj Code-2, aby Marker był przeciągalny.

Code-2 w konsoli:

markerLondon.dragging.enable(); 

Dalsze czytanie: Marker API reference.

PS: Kiedy Wikimedia zacznie używać czegoś innego, możesz przetestować go za pomocą BigMap 2 (również w oparciu o ten sam framework), który został stworzony do tworzenia statycznych obrazów OpenStreetMap.

Powiązane problemy