document.write(''); var datalayerTreeObjList = null; function createDatalayerTree(data){ //Y 属性定义 checkbox 被勾选后的情况; //N 属性定义 checkbox 取消勾选后的情况; //"p" 表示操作会影响父级节点; //"s" 表示操作会影响子级节点。 var setting = { check : { enable : true, chkboxType : { "Y" : "s", "N" : "s" } }, data : { simpleData : { enable : true } }, callback : { onCheck : zTreeOnCheck_class, }, view : { showIcon : showIconForTree } }; var treeListArray = [ {"id":"0","pId":"","name":"专题数据图层","nocheck":true, icon:"../images/treeicon/subject.png"}, ]; for (var i = 0; i < data.length; i++) { var j = {}; j.id = data[i].layerId; j.name = data[i].layerName; j.pId = "0"; j.layerType = data[i].layerType; j.layerPath = data[i].layerPath; j.layerAlpha = data[i].layerPid; treeListArray.push(j); } datalayerTreeObjList = $.fn.zTree.init($("#dataLayerTree"), setting, treeListArray); datalayerTreeObjList.expandAll(true); //父节点显示图标 function showIconForTree(treeId, treeNode) { return treeNode.isParent == true; } function zTreeOnCheck_class(event, treeId, treeNode) { var changedNodes = datalayerTreeObjList.getChangeCheckedNodes(); for ( var i=0 ; i < changedNodes.length ; i++ ){ if(changedNodes[i].checked){ adddatalayer(changedNodes[i]); }else{ removedatalayer(changedNodes[i]); } } clearCheckedOldNodes(); } function clearCheckedOldNodes(){ var nodes = datalayerTreeObjList.getChangeCheckedNodes(); for (var i = 0; i < nodes.length; i++) { nodes[i].checkedOld = nodes[i].checked; } } } var imageryArr = []; var kmllayerArr = []; function adddatalayer(node){ if(node.layerType=="瓦片"){ var layerProvider = new Cesium.TileMapServiceImageryProvider({ url : Cesium.buildModuleUrl(serverIP + node.layerPath) }); var datalayer = new Cesium.ImageryLayer(layerProvider, {alpha : Number(node.layerAlpha)}); viewer.imageryLayers.add(datalayer); var datalayerObj = {"id":node.id,"img":datalayer}; imageryArr.push(datalayerObj); sliderLayer = datalayer; }else if(node.layerType=="arcgis"){ var arcgislayerProvider = new Cesium.ArcGisMapServerImageryProvider({ url : Cesium.buildModuleUrl(node.layerPath) }); var datalayer = new Cesium.ImageryLayer(arcgislayerProvider, {alpha : Number(node.layerAlpha)}); viewer.imageryLayers.add(datalayer); var datalayerObj = {"id":node.id,"img":datalayer}; imageryArr.push(datalayerObj); sliderLayer = datalayer; }else{ var kmllayer = Cesium.KmlDataSource.load(node.layerPath,{clampToGround:true}); kmllayer.then(function(dataSource) { viewer.dataSources.add(dataSource); var kmlobj = {"id":node.id,"kml":dataSource}; kmllayerArr.push(kmlobj); }); } } function removedatalayer(node){ if(node.layerType=="瓦片"||node.layerType=="arcgis"){ for (var i = 0; i < imageryArr.length; i++) { if(imageryArr[i].id == node.id){ viewer.imageryLayers.remove(imageryArr[i].img); } } }else{ for (var i = 0; i < kmllayerArr.length; i++) { if(kmllayerArr[i].id == node.id){ viewer.dataSources.remove(kmllayerArr[i].kml,true); } } } sliderLayer = undefined; } function cleardatalayer(){ for (var i = 0; i < imageryArr.length; i++) { viewer.imageryLayers.remove(imageryArr[i].img); } for (var i = 0; i < kmllayerArr.length; i++) { viewer.dataSources.remove(kmllayerArr[i].kml,true); } imageryArr = []; kmllayerArr = []; } var sliderhandler; var sliderLayer; function startSlider(){ if(sliderLayer){ $("#slider").show(); sliderLayer.splitDirection = Cesium.ImagerySplitDirection.LEFT; var slider = document.getElementById('slider'); viewer.scene.imagerySplitPosition = (slider.offsetLeft) / slider.parentElement.offsetWidth; sliderhandler = sliderhandler && sliderhandler.destroy(); sliderhandler = new Cesium.ScreenSpaceEventHandler(slider); var moveActive = false; function move(movement) { if(!moveActive) { return; } var relativeOffset = movement.endPosition.x; var splitPosition = (slider.offsetLeft + relativeOffset) / slider.parentElement.offsetWidth; slider.style.left = 100.0 * splitPosition + '%'; viewer.scene.imagerySplitPosition = splitPosition; } sliderhandler.setInputAction(function() { moveActive = true; }, Cesium.ScreenSpaceEventType.LEFT_DOWN); sliderhandler.setInputAction(function() { moveActive = true; }, Cesium.ScreenSpaceEventType.PINCH_START); sliderhandler.setInputAction(move, Cesium.ScreenSpaceEventType.MOUSE_MOVE); sliderhandler.setInputAction(move, Cesium.ScreenSpaceEventType.PINCH_MOVE); sliderhandler.setInputAction(function() { moveActive = false; }, Cesium.ScreenSpaceEventType.LEFT_UP); sliderhandler.setInputAction(function() { moveActive = false; }, Cesium.ScreenSpaceEventType.PINCH_END); }else{ swal("请先选择图层,目前只有瓦片图层才能有卷帘分析效果!","请重试!","error"); ctrlSlider(); } } function stopSlider(){ $("#slider").hide(); sliderhandler = sliderhandler && sliderhandler.destroy(); viewer.scene.imagerySplitPosition = 1; }