2014-07-02 15 views
5

Ho un problema con la mia mappa di volantini. Ho alcuni indicatori sulla mia mappa e quando clicco su uno, il marcatore è centrato. Ora, quando clicco su un marker, non è solo centrato, ma voglio ingrandire il marker. Quando aggiungo questoIndicatore di zoom e centro al clic nell'opuscolo

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

a

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}); 
    }); 

mio codice la centratura in realtà non funziona perché ingrandisce ma non centra il marcatore. Ma tutti gli altri marcatori sono centrati se sono nel livello di zoom previsto (16). Cosa posso fare affinché la mappa ingrandisca il marker E il marker sia centrato anche se sono al di fuori del livello di zoom 16? Sono abbastanza nuovo per volantino e jquery ...

risposta

8

Invece di utilizzare setZoom e panTo, è possibile utilizzare il metodo singolo setView con zoomoption.

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

Naturalmente ... Grazie !! ;) – user3671746

+0

In effetti, questa soluzione funziona solo a volte. A seconda di quale livello di zoom sono, lo zoom non funziona sempre e centra il marker. Il marker è spesso fuori dalla vista (da qualche parte in basso) e il popup è aperto. Mi sto solo chiedendo perché .. – user3671746

+1

Quanto è grande il tuo popup? Per impostazione predefinita, la mappa esegue il pan del marker per adattarsi al popup all'interno della mappa. la soluzione è impostare 'autopan: false' in popup. – neogeomat

Problemi correlati