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 | 188 +++++++++++++++++++++++++++++-----------------
1 files changed, 119 insertions(+), 69 deletions(-)
diff --git a/view/project/layerAnalysis.html b/view/project/layerAnalysis.html
index e73dad7..e7e6774 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,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");
}
}
@@ -184,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) {
@@ -192,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));
/*
@@ -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