• Openlayer 3 图层列表控件(自定义)


    <body>
    <div id="map"></div>
    <div id="layerControl" class="layerControl">
    <ul id="layerTree" class="layerTree"></ul>
    </div>
    <script>
    var layer=new Array();//图层数组
    var layerName=new Array();//图层名称数组
    var layerVisibility=new Array();//图层可见数组
    function loadLayersControl(map,id){
    var treeContent=document.getElementById(id);
    var layers=map.getLayers();//获取地图中的所有图层
    for(var i=0;i<layers.getLength();i++){
    layer[i]=layers.item(i);
    layerName[i]=layer[i].get('name');
    layerVisibility[i]=layer[i].getVisible();//获取每个图层的名称及是否可见
    var elementLi=document.createElement("li");
    treeContent.appendChild(elementLi);
    var elementInput=document.createElement("input");
    elementInput.type="checkbox";
    elementInput.name="layers";
    elementLi.appendChild(elementInput);
    var elementLabel=document.createElement("label");
    elementLabel.className="layer";
    setInnerText(elementLabel,layerName[i]);
    elementLi.appendChild(elementLabel);
    //<ul><li><input type="checkbox" name="layers"/><label class="layer"></label></li></ul>
    if(layerVisibility[i]){
    elementInput.checked=true;
    }
    addChangeEvent(elementInput,layer[i]);
    }
    }
    function addChangeEvent(element,layer){
    element.onclick=function(){
    if(element.checked){
    layer.setVisible(true);
    }else{
    layer.setVisible(false);
    }
    }
    }
    function setInnerText(element,text){
    if(typeof element.textContent=="string"){
    element.textContent=text;
    }else{
    element.innerText=text;//FireFox不支持innerText方法,兼容
    }
    }
    var map=new ol.Map({
    target:'map',
    layer:[],
    view:new ol.View({
    center:[0,0],
    zoom:2
    })
    })
    var OSM=new ol.layer.Tile({
    source:new ol.source.OSM(),
    name:'世界地图'
    });
    var BingMap=new ol.layer.Tile({
    source: new ol.source.BingMaps({
    key: “*************************************”,
    imagerySet: 'Aerial'
    }),
    name:'卫星地图'
    });
    map.addLayer(OSM);
    map.addLayer(BingMap);
    loadLayersControl(map,"layerTree");
    </script>
    </body>

    
    
  • 相关阅读:
    mysql小白系列_04 datablock
    mysql小白系列_04 binlog(未完)
    mysql小白系列_03 体系结构-线程池
    mysql小白系列_02 mysql源码安装标准化
    国庆小长假来点不一样的,如何用Python爬取了全国近5000家旅游景点,一起来看
    python爬取p站排行榜并自动发送邮件-这个项目赚了500
    利用Azure backup备份和恢复Azure虚拟机(1)
    定制化Azure站点Java运行环境(5)
    定制化Azure站点Java运行环境(4)
    定制化Azure站点Java运行环境(3)
  • 原文地址:https://www.cnblogs.com/mina-huojian66/p/6003905.html
Copyright © 2020-2023  润新知