2013-05-23 7 views
8

obecnie pracujemy nad projektem ulotkowym z użyciem map i mam mały problem.Jak mogę zapobiec przeciągnięciu mapy przez ulotkę, aby pasowała do wyskakujących znaczników?

Po dodaniu wielu znaczników (po jednym wyskakującym okienku) chcemy je wszystkie otworzyć.

Aby to zrobić, jestem przy użyciu następującej spokój kodu:

L.Map = L.Map.extend({ 
    openPopup: function(popup) { 
    //  this.closePopup(); 
    this._popup = popup; 

    return this.addLayer(popup).fire('popupopen', { 
     popup: this._popup 
    }); 
    } 
}); 

Na pageload wszystko działa zgodnie z oczekiwaniami.

Ale tu pojawia się scenariusz ustała

Po pageload użytkownik zooms in a niektóre markery są out of the “view area” użytkownika.

kilka sekund później strona ładuje się new position data (dla znaczników) using a rest interface.

Po przesłaniu danych pozycji, obecnie usuwam wszystkie znaczniki i odtwarzam je na przesyłanych pozycjach i otwiera je.

I to marker.openPopup() wyzwala, że ​​map moves, tak, że popup fits in the “view area” of the user.

Jak mogę prevent leaflet to drag the map w tym przypadku?

Odpowiedz

11

Wydaje mi się, że odwołujesz się do właściwości autoPan? Z API: Set it to false if you don't want the map to do panning animation to fit the opened popup.

http://leafletjs.com/reference.html#popup

Więc podczas tworzenia Popup, tylko przechodzą w opcji autoPan: false

+0

omg ... I zawsze myślał it'sa błąd, który był indukowany przez 'openAllPopUp' -Włamać się. Nigdy nie myślałem o prostej opcji w obiekcie popUp .. Dziękuję! – gies0r

Powiązane problemy