2013-10-29 46 views
1

只是尋找一種方法來控制geojson圖層的縮放級別像minZoom,maxZoom的tileLayers,任何想法?傳單控制幾何圖層按縮放級別

描述:geojson點層,不同類的點,說民族國會大廈,省議會大廈,部門,國會大廈,其他簡單的城鎮。 目標:在縮放級別4只顯示民族國會大廈(只有一個piont) 在縮放級別6 diplay所有24省capitols(你只會看到他們的一部分) 在縮放級別8顯示524部門capitols(你只會看到他們的一部分) 在縮放級別10顯示其餘的城鎮,相同的想法。

在此先感謝。 JC

回答

-1

單張有一個viewereset事件,當地圖更新(加載時,在縮放時)時觸發。 你可以這樣做:

map.on('viewreset', function() { 
    var zoom = this.getZoom(); 
    // show/hide layers based on zoom level 
}, map); 

一種方式來顯示/隱藏層是通過L.GeoJSON的setStyle()方法(使用displayvisibility屬性)。

+0

這是錯誤的或過時的。你可以做到這一點,但你需要使用不透明屬性 - 顯示和可見性不是有效的屬性 –

0

結賬Map events in the Leaflet Docs

您可以訂閱「zoomend」事件以及「zoomstart」和其他幾個人

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

在您的縮放處理函數,循環在你的圖層,並根據需要添加或刪除圖層。

function myZoomHandler() { 
    var currentZoom = map.getZoom(); 
    switch (currentZoom) { 
     case 4: 
     //show Capitols 
     break; 
     case 6: 
     //show Provinces 
     break; 
     default: 
     // etc 
     break; 
    } 
}