javascript
  • leaflet
  • layer
  • wms
  • 2017-10-02 20 views 0 likes 
    0

    전단지로 신청서를 작성 중입니다. 기본적으로, 여러 개의 WMS 레이어를 추가 한 다음 Timed 루프를 사용하여 순환시킵니다. 이것은 코드입니다 (아직 초안이며 테스트하지 않았습니다). "showLayer(i)"에 대한 함수가 누락되었습니다. 코드 layer (혼란 이름!)에서 이후지도상의 WMS 레이어 반복하기

    var osmUrl = 'http://{s}.tile.osm.org/{z}/{x}/{y}.png', 
          osm = new L.TileLayer(osmUrl, {maxZoom: 18}), 
          mymap = new L.Map('map', {layers: [osm], center: new L.LatLng(41.69906, 12.39258), zoom: 5, maxZoom:8}); 
    
        var optionsArray =['opt1', 'opt2', ...]; 
        var layer = new Array(myoptionsArray.length); 
    
        for (i = 0; i < myoptionsArray.length; i++) { 
         l = L.tileLayer.wms(url, {optionsArray[i]}); 
         layer.push = l 
         l.addTo(mymap); 
         } 
    
    
        function myLoop(){ 
         ...count on i.... 
         showLayer(i); 
         timerID = setTimeout(myLoop, 500); 
        } 
    
        myLoop(); 
    
        function showLayer(i){ 
         ????? 
        } 
    

    답변

    1

    function showLayer(i){ 
        layer.forEach(function(l){ l.removeFrom(map); }); 
        layer[i].addTo(map); 
    } 
    

    이 또한 올바른 구문이 array.push(foo)하지 array.push = foo 될 것이라고 알 ... L.TileLayerArray 포함 된 경우입니다. 또한 초기 길이가있는 배열을 만들면 push()은 배열을 채우기보다는 끝에 더 많은 요소 인 을 추가 할 수 있습니다.

     관련 문제

    • 관련 문제 없음^_^