2013-06-29 13 views

risposta

20

Per modificare la dimensione dei marker quando si esegue lo zoom in/out, è necessario gestire l'evento.

map.on('zoomend', function() { }); 

Il zoomend evento sarà chiamato ogni volta che la mappa è terminato operazioni di zoom. Vedi l'API here.

Ora, all'interno di questa funzione, è possibile chiamare il proprio codice personalizzato per modificare la dimensione dei marker. Ad esempio, supponiamo di voler adottare un approccio semplice e impostare la dimensione di un indicatore di cerchio uguale alla dimensione del livello di zoom delle mappe. Vedere le API per un CircleMarker here

// Create some marker that will be resized on the map zooming 
var myMarker = new L.CircleMarker([10,10], { /* Options */ }); 

map.on('zoomend', function() { 
    var currentZoom = map.getZoom(); 
    myMarker.setRadius(currentZoom); 
}); 

Ora ogni volta che la mappa ingrandisce o si riduce, la dimensione del marcatore cambierà.

+2

Si potrebbe voler cambiare 'L.CircleMarker' in' L.circle'. Come ho capito, "L.CircleMarker" è usato per le cerchie che non dovrebbero cambiare le dimensioni dell'accodamento allo zoom – Stophface

4

Non sono sicuro di cosa si riferisca Stophace riguardo a circleMarkers che non modifica la dimensione, ma, aggiungendo alla risposta approvata ... se si desidera ridimensionare circleMakers o modificare qualsiasi altra opzione di stile (Trovo utile modificare la peso con raggio), è possibile utilizzare il seguente approccio:

map.on('zoomend', function() { 
     var currentZoom = map.getZoom(); 
     var myRadius = currentZoom*(1/2); //or whatever ratio you prefer 
     var myWeight = currentZoom*(1/5); //or whatever ratio you prefer 
      layername.setStyle({radius: myRadius, weight: setWeight}); 
    }); 

layerName sarà sostituito con il nome di qualsiasi livello si dispone che contiene circleMarkers ... e, naturalmente, è possibile modificare le frazioni al tuo simpatia per soddisfare le tue esigenze.

Immagino che il progetto scolastico dell'OP sia terminato, ma spero che questo aiuti gli altri che hanno la stessa domanda!

+0

oops ... inteso per postare questo come commento alla risposta originale ... per la prima volta overflower qui! – juliabulia245

Problemi correlati