<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>

												

Openlayer 3 图层列表控件(自定义)的更多相关文章

  1. WPF自定义控件与样式(7)-列表控件DataGrid与ListView自定义样式

    一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要内容: Dat ...

  2. Android自定义标签列表控件LabelsView解析

    版权声明:本文为博主原创文章,未经博主允许不得转载. 无论是在移动端的App,还是在前端的网页,我们经常会看到下面这种标签的列表效果:   标签从左到右摆放,一行显示不下时自动换行.这样的效果用And ...

  3. 【转】WPF自定义控件与样式(7)-列表控件DataGrid与ListView自定义样式

    一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等. 本文主要内容: DataGrid自定义样式: ListView自定义样式: 二.Dat ...

  4. (转载)Android自定义标签列表控件LabelsView解析

    Android自定义标签列表控件LabelsView解析 作者 donkingliang 关注 2017.03.15 20:59* 字数 759 阅读 406评论 0喜欢 3 无论是在移动端的App, ...

  5. .NET各大平台数据列表控件绑定原理及比较(WebForm、Winform、WPF)

    说说WebForm: 数据列表控件: WebForm 下的列表绑定控件基本就是GridView.DataList.Repeater:当然还有其它DropDownList.ListBox等. 它们的共同 ...

  6. Jetpack Compose学习(9)——Compose中的列表控件(LazyRow和LazyColumn)

    原文:Jetpack Compose学习(9)--Compose中的列表控件(LazyRow和LazyColumn) - Stars-One的杂货小窝 经过前面的学习,大致上已掌握了compose的基 ...

  7. UWP开发必备:常用数据列表控件汇总比较

    今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...

  8. Flex 列表控件中的操作

    主要操作包括:显示提示,使用图标,编辑列表条目中数据. 1.使用数据提示: 当鼠标停留在条目上时,可以显示该条目的相关数据提示. 当利用滚动条时,可以显示滚动条的相关提示. 在列表控件中使用showD ...

  9. VC++ 列表控件的使用方法

    列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值.MFC中使用CListCtrl类来封装列表控件的各种操作. 通过调用BOOL Create( DWORD ...

随机推荐

  1. hdu_5890_Eighty seven(bitset优化DP)

    题目链接:hdu_5890_Eighty seven 题意: 50个数,10W个询问,每次问删掉第i,j,k个数后,是否存在一种选10个数和为87的方案,只需要输出 ’Yes’ 或者 ’No’ 题解: ...

  2. 7 个 jQuery 最佳实践

    前言 随着富网络应用(rich web applications)数量的增长,以及用户对快速交互响应的高期望,开发者开始使用JavaScript库来快速高效的完成一些重复性的工作.这其中最流行的Jav ...

  3. Nimbus<三>Storm源码分析--Nimbus启动过程

    Nimbus server, 首先从启动命令开始, 同样是使用storm命令"storm nimbus”来启动看下源码, 此处和上面client不同, jvmtype="-serv ...

  4. app 一些常用的

    发短信 :sms:10086 打电话:tel:10086 1.-webkit-tap-highlight-color:rgba(255,255,255,0)可以同时屏蔽ios和android下点击元素 ...

  5. mac 隐藏 显示 文件

    显示:defaults write com.apple.finder AppleShowAllFiles -bool true隐藏:defaults write com.apple.finder Ap ...

  6. Chapter 14_2 全局变量声明

    Lua中的全局变量不需要声明就可以使用.对于小程序十分方便,但是大型程序中 一处简单的笔误就可能造成难以发现的bug. 不过,这种性能可以改变.由于Lua将全局变量放在一个普通的table中,可以通过 ...

  7. JavaScript的一些流行的框架

    1.Underscore.js   扩展了很多原生js没有的方法,如集合 数组 对象 函数的一些基础和衍生方法,简单实用!2.Backbone.js   前段js代码的一个MVC框架,正在学习来着

  8. UIButton的属性设置

    1.背景颜色 btn.backgroundColor = [UIColor redColor]; 2.给按钮添加文字并添加显示状态  [btn setTitle@"播放" forS ...

  9. 设M=5^2003+7^2004+9^2005+11^2006,求证8|M。(整除理论,1.1.8)

    设M=52003+72004+92005+112006,求证8|M. 证明: 前提:对于,52003让我们去构造8,即用8-3替换5 第一步:用8-3替换5,且仅替换一个, 第二步:进行分项,则前一项 ...

  10. Python笔记2-20151023

    一.循环 Python的循环有两种,一种是for...in循环,依次吧list或tuple中的每个元素迭代出来. >>>names = ['Michael','Bob','Tracy ...