From 885edef97a642aaceede847c084f70156cbfe9a9 Mon Sep 17 00:00:00 2001 From: ansel0926 <ansel0926@gmail.com> Date: 星期二, 17 五月 2022 10:41:36 +0800 Subject: [PATCH] Merge branch 'master' of ssh://117.78.1.188:29418/DDE-WEB --- view/project/layerAnalysis.html | 126 ++++++++++++++++++++++++++---------------- 1 files changed, 78 insertions(+), 48 deletions(-) diff --git a/view/project/layerAnalysis.html b/view/project/layerAnalysis.html index 8ee58f4..81deb1f 100644 --- a/view/project/layerAnalysis.html +++ b/view/project/layerAnalysis.html @@ -114,11 +114,69 @@ 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; @@ -126,14 +184,14 @@ 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, @@ -157,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; @@ -165,50 +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); - // } - }); - } + + } - } - 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); - 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 != 'BaseMap' && type != 'Terrain' && type != 'Plotting') { //changeChecked(ischeck, parent.getNodeById(objData.id)); /* -- Gitblit v1.9.1