5、图层控制TOC

本文介绍了一种基于Web的地图应用程序中实现图层控制TOC的方法。通过使用map类的getLayer(id)方法来获取图层,并利用图层的onLoad事件加载图层信息。通过checkbox实现图层的显示与隐藏。
摘要由CSDN通过智能技术生成

图层控制TOC的制作:

1、  首先熟悉一下思路:

获取图层的方法:(利用map类的getLayerid)方法)直接传入图层服务名称

获取图层的信息:利用图层的layerInfos属性,获取到指定图层的全部info,里面包括图层ID,图层是否可见,图层的名称,利用这些属性基本上可以完成图层TOC的制作。

2、  事件:图层控制需要在程序执行出来,地图加载完成后就要显示出图层的名称和显示状态,另不需要用户修改添加图层,故而执行事件为:图层的onload事件

3、  需要的函数:

TOC中信息的加载函数:loadLayerList()此函数需与图层的onload事件相关联;

TOC中图层显示控制函数:setVisibility()

4、  加载图层信息具体实现方法:

1)新建网页,实现地图加载和地图浏览功能(详见前几篇文章);

2)在网页中加入层id=”Layeroperation”

3)关联loadLayerList()函数跟图层onLoad事件监听;

     此事件监听写在init()里面:        dojo.connect(dynamicMapServiceLayer,"onLoad",loadLayerList);

     (4)loderLayerList()函数的编写:

           //图层控制代码

  //图层控制代码

   function loadLayerList(layers)

   {

      var html="<table border='1'cellpadding='0' cellspacing='0' bordercolor='red' style='width: 100%;'>";

      var LayerDIV=document.getElementById("Layeroperation");//获取DIV

      var infos=layers.layerInfos;//获取图层的信息库

      for(var i=0;i<infos.length;i++)//逐条浏览各个图层的信息

      {

      var info=infos[i]; 

      html=html+"<tr><td><input id='"+info.id+"' name='layerList' class='listCss' type='checkbox' value='checkbox' οnclick='setVisibility()' "+(info.defaultVisibility ? "checked":"")+" />"+info.name+"</td></tr>"

      }

       html=html+"</table>"

       LayerDIV.innerHTML=(html);

}

5、    图层的显示控制实现:

1)为图层信息中的checkbox添加单击事件,οnclick=”setVisibility()”;’

2)设置编写setVisibility函数:

         function setVisibility()

     {

       //dojo.query获取csslistCss的元素数组

     var inputs = dojo.query(".listCss");

     visible = [];

       //checkbox数组进行变量把选中的id添加到visible

     for(var i=0;i<inputs.length;i++)

     {

      if(inputs[i].checked)

      {

         visible.push(inputs[i].id);

      }

     }

     //设置可视图层

     dynamicMapServiceLayer.setVisibleLayers(visible);

  }

3)效果图:

6、  至此完成TOC功能!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值