지도 유형을 전환하고 레이어를 하단 레이어로 추가하는 좋은 방법을 찾으려고합니다. 다른 레이어는 항상 맨 위에 있어야하는 정보 레이어입니다. 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;
}
});
찾고있는 결과를 얻는 적절한 방법은 무엇입니까? 감사!
지도에서 getLayers를 수행하면 insertAt (또는 필요에 따라 setAt)과 같이 순서를 조작하는 기능이있는 컬렉션을 얻게됩니다. http://openlayers.org/en/v3.8.2/apidoc/ol .Collection.html
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다