2013-06-29 11 views

cevap

20

Yakınlaştırma/uzaklaştırma yaparken işaretleyicilerin boyutunu değiştirmek için etkinliği işlemeniz gerekir. Harita yakınlaştırma veya uzaklaştırma bittikten zaman

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

zoomend olay

çağrılır. API here'a bakın.

Şimdi, bu işlevin içinde, işaretleyicilerin boyutunu değiştirmek için özel kodunuzu arayabilirsiniz. Örneğin, basit bir yaklaşım benimseyip harita yakınlaştırma düzeyinin boyutuna eşit bir daire işaretçisi boyutunu ayarlamak istediğinizi varsayalım. Harita veya uzaklaştırır Şimdi ne zaman bir 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); 
}); 

için API bakınız, işaretleyici boyutu değişecektir.

+2

'L.CircleMarker' öğesini' L.circle' olarak değiştirmek isteyebilirsiniz. Anladığım kadarıyla, 'L.CircleMarker', – Stophface

4

Çocuğun dairenin boyutlarını değiştirmemesiyle ilgili Stophace ile ilgili olarak bahsettiğimden emin değilim, ancak circleMakers'ı yeniden boyutlandırmak veya diğer stil seçeneklerini değiştirmek istiyorsanız, onaylı yanıtın eklenmesi ... yarıçapı ile birlikte ağırlık), aşağıdaki yaklaşımı kullanabilirsiniz: ... Eğer circleMarkers içeren her ne katman adıyla değiştirilecektir

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 ve tabii ki kesirler değiştirebilir senin ihtiyaçlarınızı karşılamak ister.

OP'nin okul projesi bittiğini tahmin ediyorum, ama umarım bu aynı soruya sahip olanlara yardımcı olur!

+0

oops 'e zum seviyesini değiştirmemesi gereken çevreler için kullanılıyor. – juliabulia245