ArcGIS api for javascript-图层控制(图层树)
来源:互联网 发布:慢慢买怎么看淘宝价格 编辑:程序博客网 时间:2024/05/16 14:55
转:http://www.cnblogs.com/lwenbo/archive/2013/02/16/2913590.html
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta http-equiv="X-UA-Compatible" content="IE=7,IE=9"><title>图层控制</title><link rel="stylesheet" type="text/css" href="http://localhost:8080/arcgis_js_api/library/3.2/jsapi/js/dojo/dijit/themes/claro/claro.css" /><link rel="stylesheet" type="text/css" href="http://localhost:8080/arcgis_js_api/library/3.2/jsapi/js/esri/css/esri.css" /><script type="text/javascript"> dojoConfig = { parseOnLoad : true };</script><script type="text/javascript" src="http://localhost:8080/arcgis_js_api/library/3.2/jsapi/init.js"></script> <script type="text/javascript" src='../resources/jquery/jquery-1.7.2.min.js'></script> <link rel="stylesheet" type="text/css" href='../resources/jquery/themes/gray/easyui.css'> <link rel="stylesheet" type="text/css" href="../resources/jquery/themes/icon.css"> <script type="text/javascript" src='../resources/jquery/jquery.easyui.min.js'></script> <script type="text/javascript" src='../resources/jquery/locale/easyui-lang-zh_CN.js' charset="utf-8"></script> <script> dojo.require("esri.map"); var layer, map, visible = []; function init() { map = new esri.Map("map"); layer = new esri.layers.ArcGISDynamicMapServiceLayer("http://192.168.10.200:8399/arcgis/rest/services/toctree/MapServer"); if (layer.loaded) { buildLayerList(layer); } else { dojo.connect(layer, "onLoad", buildLayerList); } } function getChildrenNodes(parentnodes, node){ for (var i = parentnodes.length - 1; i >= 0; i--) { var pnode = parentnodes[i]; //如果是父子关系,为父节点增加子节点,退出for循环 if (pnode.id==node.pid) { pnode.state="closed" ;//关闭二级树 pnode.children.push(node) ; return ; } else { //如果不是父子关系,删除父节点栈里当前的节点, //继续此次循环,直到确定父子关系或不存在退出for循环 parentnodes.pop() ; } } } function buildLayerList(layer) { //构建图层树形结构 var layerinfos = layer.layerInfos ; var treeList = [] ;//jquery-easyui的tree用到的tree_data.json数组 var parentnodes = [] ;//保存所有的父亲节点 var root = {"id":"rootnode","text":"所有图层","children":[]} ;//增加一个根节点 var node = {} ; if (layerinfos != null && layerinfos.length > 0) { for(var i=0,j=layerinfos.length;i<j;i++){ var info = layerinfos[i] ; if (info.defaultVisibility) { visible.push(info.id); } //node为tree用到的json数据 node = { "id":info.id, "text":info.name, "pid":info.parentLayerId, "checked":info.defaultVisibility ? true:false, "children":[] } ; if(info.parentLayerId==-1){ parentnodes.push(node) ; root.children.push(node) ; }else{ getChildrenNodes(parentnodes, node); parentnodes.push(node) ; } } } treeList.push(root) ; //jquery-easyui的树 $('#toc').tree({ data:treeList , checkbox :true, //使节点增加选择框 onCheck:function (node,checked){//更新显示选择的图层 var visible = []; var nodes = $('#toc').tree("getChecked") ; dojo.forEach(nodes, function(node) { visible.push(node.id); }); //if there aren't any layers visible set the array to be -1 if (visible.length === 0) { visible.push(-1); } layer.setVisibleLayers(visible); } }); layer.setVisibleLayers(visible); map.addLayer(layer); } dojo.ready(init); </script></head><body class="easyui-layout"> <div data-options="region:'west',split:true,title:'菜单'" style="width:200px;padding:10px;"> <div id="panelHeader" style="width: 100%; height: 100%;"> 图层控制:<br /> <ul id="toc" class="easyui-tree"></ul> </div> </div> <div data-options="region:'center',title:'地图'"> <div id="map" style="width: 100%; height: 100%; "></div> </div></body></html>
预览图:
0 0
- ArcGIS api for javascript-图层控制(图层树)
- ArcGIS api for javascript-图层控制(图层树)
- ArcGIS api for javascript-图层控制(图层树)
- ArcGIS api for javascript-图层控制(图层树)
- arcgis api for javascript 图层控制
- ArcGIS api for javascript-图层控制
- ArcGIS API for JavaScript(4.x)+EasyUI——图层控制
- ArcGIS API for JavaScript(4.x)——图层控制
- (十)ArcGIS API For Javascript之动态图层
- 使用ArcGIS API for JavaScript实现类似ArcMap的图层控制面板Tab of Contents
- ArcGIS api for javascript+jquery实现简单的图层控制切换
- ArcGIS API For IOS 实现图层显示控制
- 【iOS】ArcGIS API For iOS 实现图层显示控制
- arcgis for javascript之ArcGISDynamicMapServiceLayer图层控制的实现
- ArcGIS API for Javascript 图层切换渐变效果实现
- ArcGIS API For Javascript之动态图层
- (十二)ArcGIS API For Javascript之编辑服务器端图层
- 二、ArcGIS API for JavaScript之地图与图层(1)
- HDU 5823 color II (状压dp -- 图的染色)
- 趁年轻,别把自己关在笼子里
- poj 3046 Ant Counting (dp)
- Thread的setDaemon(true)方法的作用
- 进程间通信(6) - 内存共享
- ArcGIS api for javascript-图层控制(图层树)
- 使用javaScript使图片轮播并且能够使用按键控制切换图片
- 从实战看sql 优化和代码书写 --- 查出来 30w 条下载 8s . 23M 文件大小
- 逢低吸纳(最长下降子序列+方案数+高精度)
- codeforces 43BLetter
- 关于eclipse启动报错An internal error occurred during: "reload maven project". java.lang.NullPointerExcepti
- DAO层Bean扫描不到: No bean named 'userDao' is defined
- 第13节--条件语句和循环语句
- js高阶函数部分应用