2014-07-02 5 views
5

Mam problem z moją mapą ulotek. Na mojej mapie znajdują się znaczniki, a po kliknięciu znacznik jest wyśrodkowany. Teraz chcę, aby po kliknięciu na jeden znacznik nie był tylko wyśrodkowany, ale chciałbym powiększyć znacznik. Kiedy dodać tenZnacznik powiększenia i środka na kliknięciu w ulotce

map.setZoom((16), {animate: true}); 

do

map.on('popupopen', function(centerMarker) { 
     var cM = map.project(centerMarker.popup._latlng); 
     cM.y -= centerMarker.popup._container.clientHeight/2 
     map.setZoom((16), {animate: true}); 
     map.panTo(map.unproject(cM),{animate: true}); 
    }); 

mojego kodu centrowanie naprawdę nie działa, ponieważ powiększa ale nie wyśrodkować znacznik. Ale wszystkie pozostałe znaczniki są wyśrodkowane, jeśli jestem w oczekiwanym poziomie powiększenia (16). Co mogę zrobić, aby mapa przybliżała się do znacznika ORAZ znacznik był również wyśrodkowany, jeśli znajduję się poza poziomem 16 powiększenia? Jestem całkiem nowy w kwestii ulotek i jquery ...

Odpowiedz

8

Zamiast używać setZoom i panTo, można użyć pojedynczej metody setView z opcją zoom.

+0

Oczywiście ... Dziękuję! ;) – user3671746

+0

W rzeczywistości to rozwiązanie działa tylko czasami. W zależności od tego, w jakim jestem poziomie powiększenia, zoom nie zawsze działa i centruje znacznik. Znacznik jest często poza widokiem (gdzieś na dole), a popup jest otwarty. Po prostu zastanawiam się, dlaczego ... – user3671746

+1

Jak duże jest twoje popup? Domyślnie mapa przesunie znacznik tak, aby pasował do wyskakującej mapy wewnętrznej. obejściem jest ustawienie 'autopan: false' w popup. – neogeomat

Powiązane problemy