지도에 레이어가 추가 될 때 OpenLayers 3에서 하단 레이어로 추가되도록하려면 어떻게해야합니까?

Dan-Levi Tømta

지도 유형을 전환하고 레이어를 하단 레이어로 추가하는 좋은 방법을 찾으려고합니다. 다른 레이어는 항상 맨 위에 있어야하는 정보 레이어입니다. map.baseLayer 속성을 사용하려고했지만 레이어가 여전히 다른 레이어 위에 렌더링됩니다.

내가 얻은 것은 다음과 같습니다.

var OSMLayer = new ol.layer.Tile({
    source: new ol.source.OSM()
});

// Initial map
var currentMap = OSMLayer;

var mapQuestOSMLayer = new ol.layer.Tile({
    source: new ol.source.MapQuest({layer: 'osm'})
});

var mapQuestSATLayer = new ol.layer.Tile({
    source: new ol.source.MapQuest({layer: 'sat'})
});
var mapQuestHYBLayer = new ol.layer.Tile({
    source: new ol.source.MapQuest({layer: 'hyb'})
});

var map = new ol.Map({
  layers: [OSMLayer],
  target: document.getElementById('map-canvas'),
  view: new ol.View({
    center: [0, 0],
    zoom: 3
  })
});

// How can i set the layer as the bottom layer?

$('#btnMapTypes ul.dropdown-menu li a').click(function (e) {
    map.removeLayer(currentMap);
    switch($(this).attr('data-type')){
        case 'OSM':
            map.addLayer(OSMLayer);
            map.baseLayer = OSMLayer;
            currentMap = OSMLayer;
        break;
        case 'mapQuestOSM':
            map.addLayer(mapQuestOSMLayer);
            map.baseLayer = mapQuestOSMLayer;
            currentMap = mapQuestOSMLayer;
        break;
        case 'mapQuestSAT':
            map.addLayer(mapQuestSATLayer);
            map.baseLayer = mapQuestSATLayer;
            currentMap = mapQuestSATLayer;
        break;
        case 'mapQuestHYB':
            map.addLayer(mapQuestHYBLayer);
            map.baseLayer = mapQuestHYBLayer;
            currentMap = mapQuestHYBLayer;
        break;
    }           
});

찾고있는 결과를 얻는 적절한 방법은 무엇입니까? 감사!

Bartvde

지도에서 getLayers를 수행하면 insertAt (또는 필요에 따라 setAt)과 같이 순서를 조작하는 기능이있는 컬렉션을 얻게됩니다. http://openlayers.org/en/v3.8.2/apidoc/ol .Collection.html

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관