2013-10-29 3 views
1

그냥 geojson 레이어를 제어하는 ​​방법을 찾고 있습니다 minZoom, tileLayers, 어떤 아이디어 maxZoom 같은 zoomlevel?리플릿 컨트롤 geojson 레이어

Descrition : geojson 포인트 레이어, 포인트 클래스의 다른 클래스는 국가의 국회 의사당, 지방 국회 의사당,학과, 국회 의사당, 간단한 마을의 나머지 말. 목표 : 확대/축소 수준 4에서만 표시 국가 수준 국회 의사당 (1 회만) 확대/축소 수준 6에서 24 개의 모든 지방 국회 의사당 (모두 일부만 볼 수 있음) 확대/축소 수준 8 디스플레이 524 개 국회 의사당 그들 중 일부를보십시오) 줌 레벨 10에서 은 나머지 마을들, 같은 생각을 나타냅니다. 사전에

감사합니다. JC

답변

-1

전단지에는지도가 업데이트 될 때 (로드시 확대/축소) 트리거되는 viewereset 이벤트가 있습니다. 당신은 같은 것을 할 수 있습니다 :/숨기기 레이어를 보여

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

한 가지 방법을 L.GeoJSON의 setStyle() 방법을 통해 (display 또는 visibility 속성을 사용).

+0

이것은 잘못되었거나 오래되었습니다. 이렇게 할 수는 있지만 opacity 속성을 사용해야합니다. 표시 및 가시성은 유효한 속성이 아닙니다. –

0

체크 아웃 Map events in the Leaflet Docs. 당신은 당신의 레이어를 통해 'zoomstart'와 몇 가지 다른 사용자의 줌 핸들러 함수에서

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

, 루프뿐만 아니라 'zoomend'이벤트에 가입하고 필요에 따라 레이어를 추가하거나 제거 할 수 있습니다

.

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