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 |  137 ++++++++++++++++++++++++++++-----------------
 1 files changed, 84 insertions(+), 53 deletions(-)

diff --git a/view/project/layerAnalysis.html b/view/project/layerAnalysis.html
index 7d26a8a..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");
 
                             }
                         }
@@ -211,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));
                         /*
@@ -403,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