From c8a1a20ba1ca73bef0cc3bbac652014367d05d75 Mon Sep 17 00:00:00 2001 From: zhanmingkan <496160012@qq.com> Date: 星期一, 16 五月 2022 19:34:19 +0800 Subject: [PATCH] 完善了shp的 控制开关,利用checkbox ,取消了点击。 完善了颜色参数 --- view/project/layerAnalysis.html | 154 ++++++++++++++++++++++++++++++++++----------------- 1 files changed, 102 insertions(+), 52 deletions(-) diff --git a/view/project/layerAnalysis.html b/view/project/layerAnalysis.html index e73dad7..81deb1f 100644 --- a/view/project/layerAnalysis.html +++ b/view/project/layerAnalysis.html @@ -56,9 +56,10 @@ border-radius: 6px; background-color: #999; } - .layui-tree-btnGroup .layui-icon{ + + .layui-tree-btnGroup .layui-icon { display: inline-block; - color:white + color: white } </style> @@ -68,10 +69,10 @@ layui.use(['tree'], function () { var tree = layui.tree isloading = true; - var modelTree=tree.render({ + var modelTree = tree.render({ elem: '#model-tree-list' , data: layerMenu - , edit:["del"] + , edit: ["del"] , showCheckbox: true //鏄惁鏄剧ず澶嶉�夋 , id: 'model-tree-list' , isJump: false //鏄惁鍏佽鐐瑰嚮鑺傜偣鏃跺脊鍑烘柊绐楀彛璺宠浆 @@ -91,7 +92,7 @@ var data = obj.data.ext; //鑾峰彇褰撳墠鐐瑰嚮鐨勮妭鐐规暟鎹� var viewer = parent.viewer; var Cesium = parent.Cesium; - if (type != 'BaseMap' && type != 'Terrain' && type != 'Plotting') { + if (type != 'BaseMap' && type != 'Terrain' && type != 'Plotting' && type != 'DDE') { var model = undefined; switch (obj.data.field) { case "Primitive": { @@ -113,26 +114,84 @@ break; } case "shpFeature": { - let path = data.path; + console.log("shpFeature click"); + + } + } + if (model != undefined) { + viewer.flyTo(model, { + offset: { + heading: 0, + pitch: -90 + }, + }).then(function () { + // if (obj.data.field == 'Primitive') { + // setTimeout(() => { + // dptiles(model.root.children); + // }, 5000); + // } + }); + } + + } + else if (type == 'DDE') { + var lon, lat, alt; + lon = obj.data.lon; + lat = obj.data.lat; + alt = obj.data.altitude; + console.log(lon, lat, alt); + if (lon != undefined && lat != undefined && alt != undefined) { + let flyPromise = viewer.camera.flyTo({ + duration: 3, + destination: Cesium.Cartesian3.fromDegrees(Number(lon), Number(lat), alt), + orientation: { + heading: Cesium.Math.toRadians(0), //缁曞瀭鐩翠簬鍦板績鐨勮酱鏃嬭浆 + pitch: Cesium.Math.toRadians(-90), //缁曠含搴︾嚎鏃嬭浆 + roll: Cesium.Math.toRadians(0) //缁曠粡搴︾嚎鏃嬭浆 + }, + }); + } + } + } + , oncheck: function (obj) { + if (isloading) { + return; + } + var ischeck = obj.checked; + var objData = obj.data; + var type = objData.field; + + if (type == "shpFeature") {//濡傛灉鏄� shp鍥惧眰 + if(ischeck){ + let data= obj.data.ext; + + let path = data.path; let shpArray = JSON.parse(path); var shpPromises = []; for (let i = 0; i < shpArray.length; i++) { - shpPromises.push( Cesium.loadBlob(parent.httpConfig.nginxUrl + shpArray[i])); - } - + shpPromises.push(parent.Cesium.loadBlob(parent.httpConfig.nginxUrl + shpArray[i])); + } + + //鍒ゆ柇鏄惁瀛樺湪 + let len = parent.viewer.imageryLayers.length; + if (parent.layerMap.get(obj.data.id) != null) { + parent.vMsg.warning("鍥惧眰宸茬粡瀛樺湪鏃犻渶閲嶅鍔犺浇"); + return; + } + var layer = null; parent.Cesium.when.all(shpPromises, function (files) { - for(let i=0;i<shpArray.length;i++){ + for (let i = 0; i < shpArray.length; i++) { files[i].name = shpArray[i]; } - + var shpProvider = new parent.VectorTileImageryProvider({ source: files, - zIndex: 99, + zIndex: len, removeDuplicate: false, defaultStyle: { - outlineColor: "rgb(255,0,0)", - fillColor: "rgba(255,0,0,0.6)", + outlineColor: data.color, + fillColor: data.color, lineWidth: 1, fill: false, tileCacheSize: 200, @@ -156,7 +215,8 @@ simplify: false }); shpProvider.readyPromise.then(function () { - layer = parent.viewer.imageryLayers.addImageryProvider(shpProvider); + parent.layerMap.set(obj.data.id, len); + layer = parent.viewer.imageryLayers.addImageryProvider(shpProvider, len); parent.viewer.flyTo(layer); parent.Cesium.Camera.DEFAULT_VIEW_RECTANGLE = shpProvider.rectangle; @@ -164,34 +224,21 @@ }); }); - - + }else{//绉婚櫎shp + var id = obj.data.id; + var index = parent.layerMap.get(id); + + parent.viewer.imageryLayers.remove(parent.viewer.imageryLayers.get(index),true); + parent.layerMap.delete(id); + for(let key of parent.layerMap.keys()){//鏁扮粍鐨勬父鏍�-1 + if( parent.layerMap.get(key)>index){ + parent.layerMap.set(key, parent.layerMap.get(key)-1); + } } } - if (model != undefined) { - viewer.flyTo(model, { - offset: { - heading: 0, - pitch: -90 - }, - }).then(function () { - // if (obj.data.field == 'Primitive') { - // setTimeout(() => { - // dptiles(model.root.children); - // }, 5000); - // } - }); - } + + } - } - } - , oncheck: function (obj) { - if (isloading) { - return; - } - var ischeck = obj.checked; - var objData = obj.data; - var type = objData.field; if (type != 'BaseMap' && type != 'Terrain' && type != 'Plotting') { //changeChecked(ischeck, parent.getNodeById(objData.id)); /* @@ -319,17 +366,17 @@ } } //zzf:闅愯棌闄ょ粯鍥捐彍鍗曚互澶栫殑鍒犻櫎鎸夐挳 - $(modelTree.config.elem[0].children[0].childNodes).each(function(){ - let parentDiv=$(this)[0].childNodes[0]; - $(parentDiv).find("div .layui-icon-delete").remove(); - if($(this)[0].dataset.id!="4"){ - let childrenDiv=$(this)[0].childNodes[1]; - $(childrenDiv).find("div .layui-icon-delete").remove(); + $(modelTree.config.elem[0].children[0].childNodes).each(function () { + let parentDiv = $(this)[0].childNodes[0]; + $(parentDiv).find("div .layui-icon-delete").remove(); + if ($(this)[0].dataset.id != "4") { + let childrenDiv = $(this)[0].childNodes[1]; + $(childrenDiv).find("div .layui-icon-delete").remove(); } }) - function delDrawEntity(modelId){ - let updateData= { - "ids":modelId, + function delDrawEntity(modelId) { + let updateData = { + "ids": modelId, } let token = window.localStorage.getItem("token"); $.ajax({ @@ -338,8 +385,8 @@ url: parent.httpConfig.webApiUrl + "landstamp/front/removeDrawEntity", data: updateData, contentType: "application/x-www-form-urlencoded", - beforeSend:function(request){ - request.setRequestHeader("token",token); + beforeSend: function (request) { + request.setRequestHeader("token", token); }, success: function (data) { console.log(data) @@ -384,7 +431,10 @@ request.setRequestHeader("token", token); }, success: function (data) { - layerMenu.push(data); + if (parent.getRootById(data.id) == null) { + data.isloading = false; + layerMenu.push(data); + } }, error: function (XMLHttpRequest, textStatus, errorThrown) { console.log(errorThrown); -- Gitblit v1.9.1