From b5919ce577d2106eb8294e74160cda5c61feb4a8 Mon Sep 17 00:00:00 2001 From: ansel0926 <ansel0926@gmail.com> Date: 星期二, 17 五月 2022 18:43:53 +0800 Subject: [PATCH] Merge branch 'master' of ssh://117.78.1.188:29418/DDE-WEB --- view/project/layerAnalysis.html | 197 +++++++++++++++++++++++++++++++++++------------- 1 files changed, 142 insertions(+), 55 deletions(-) diff --git a/view/project/layerAnalysis.html b/view/project/layerAnalysis.html index ad121b3..e7e6774 100644 --- a/view/project/layerAnalysis.html +++ b/view/project/layerAnalysis.html @@ -56,6 +56,11 @@ border-radius: 6px; background-color: #999; } + + .layui-tree-btnGroup .layui-icon { + display: inline-block; + color: white + } </style> <script> @@ -64,9 +69,10 @@ layui.use(['tree'], function () { var tree = layui.tree isloading = true; - tree.render({ + var modelTree = tree.render({ elem: '#model-tree-list' , data: layerMenu + , edit: ["del"] , showCheckbox: true //鏄惁鏄剧ず澶嶉�夋 , id: 'model-tree-list' , isJump: false //鏄惁鍏佽鐐瑰嚮鑺傜偣鏃跺脊鍑烘柊绐楀彛璺宠浆 @@ -86,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": { @@ -108,58 +114,7 @@ break; } case "shpFeature": { - 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])); - } - - var layer = null; - parent.Cesium.when.all(shpPromises, function (files) { - for(let i=0;i<shpArray.length;i++){ - files[i].name = shpArray[i]; - } - - var shpProvider = new parent.VectorTileImageryProvider({ - source: files, - zIndex: 99, - removeDuplicate: false, - defaultStyle: { - outlineColor: "rgb(255,0,0)", - fillColor: "rgba(255,0,0,0.6)", - lineWidth: 1, - fill: false, - tileCacheSize: 200, - showMaker: false, - showCenterLabel: true, - fontColor: "rgba(255,0,0,1)", - labelOffsetX: -10, - labelOffsetY: -5, - fontSize: 13, - fontFamily: "榛戜綋", - centerLabelPropertyName: "NAME", - lineCap: "round", - shadowColor: "black", - shadowOffsetX: 1, - shadowOffsetY: -1, - shadowBlur: 1, - lineJoin: "round" - }, - maximumLevel: 20, - minimumLevel: 1, - simplify: false - }); - shpProvider.readyPromise.then(function () { - layer = parent.viewer.imageryLayers.addImageryProvider(shpProvider); - - parent.viewer.flyTo(layer); - parent.Cesium.Camera.DEFAULT_VIEW_RECTANGLE = shpProvider.rectangle; - - }); - - }); - + console.log("shpFeature click"); } } @@ -179,6 +134,24 @@ } } + 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) { @@ -187,6 +160,85 @@ 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(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++) { + files[i].name = shpArray[i]; + } + + var shpProvider = new parent.VectorTileImageryProvider({ + source: files, + zIndex: len, + removeDuplicate: false, + defaultStyle: { + outlineColor: data.color, + fillColor: data.color, + lineWidth: 1, + fill: true, + tileCacheSize: 200, + showMaker: true, + showCenterLabel: true, + fontColor: "rgba(255,0,0,1)", + labelOffsetX: -10, + labelOffsetY: -5, + fontSize: 13, + fontFamily: "榛戜綋", + centerLabelPropertyName: "NAME", + lineCap: "round", + shadowColor: "black", + shadowOffsetX: 1, + shadowOffsetY: -1, + shadowBlur: 1, + lineJoin: "round" + }, + maximumLevel: 20, + minimumLevel: 1, + simplify: false + }); + shpProvider.readyPromise.then(function () { + 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; + + }); + + }); + } 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 (type != 'BaseMap' && type != 'Terrain' && type != 'Plotting') { //changeChecked(ischeck, parent.getNodeById(objData.id)); /* @@ -256,6 +308,7 @@ let result = modelType == 'Primitive' ? parent.delprimitiveModel(modelId) : parent.delentityModel(modelId); } parent.delNodeById(modelId, layerMenu); + delDrawEntity(modelId); } } }); @@ -312,6 +365,37 @@ changeParentChecked(ischeck, parentOfData); } } + //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(); + } + }) + function delDrawEntity(modelId) { + let updateData = { + "ids": modelId, + } + let token = window.localStorage.getItem("token"); + $.ajax({ + type: "post", + async: false, + url: parent.httpConfig.webApiUrl + "landstamp/front/removeDrawEntity", + data: updateData, + contentType: "application/x-www-form-urlencoded", + beforeSend: function (request) { + request.setRequestHeader("token", token); + }, + success: function (data) { + console.log(data) + }, + error: function (XMLHttpRequest, textStatus, errorThrown) { + console.log("ajax璇锋眰澶辫触锛�"); + } + }); + } }); </script> @@ -347,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