From f0efddd9e32b9c5dc828401c4092be004b4826cf Mon Sep 17 00:00:00 2001
From: ansel0926 <ansel0926@gmail.com>
Date: 星期三, 18 五月 2022 12:05:08 +0800
Subject: [PATCH] 添加标签

---
 view/project/layerAnalysis.html |  161 ++++++++++++++++++++++++++++++++---------------------
 1 files changed, 97 insertions(+), 64 deletions(-)

diff --git a/view/project/layerAnalysis.html b/view/project/layerAnalysis.html
index 1d3716f..e7e6774 100644
--- a/view/project/layerAnalysis.html
+++ b/view/project/layerAnalysis.html
@@ -114,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");
 
                             }
                         }
@@ -185,21 +134,23 @@
                         }
 
                     }
-                    else if (type == 'DDE') {                    
+                    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)                                 //缁曠粡搴︾嚎鏃嬭浆
-                            },
-                        });
+                        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) {
@@ -209,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));
                         /*
@@ -401,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