From c8a1a20ba1ca73bef0cc3bbac652014367d05d75 Mon Sep 17 00:00:00 2001
From: zhanmingkan <496160012@qq.com>
Date: 星期一, 16 五月 2022 19:34:19 +0800
Subject: [PATCH] 完善了shp的 控制开关,利用checkbox ,取消了点击。 完善了颜色参数

---
 view/project/layerAnalysis.html |  132 ++++++++++++++++++++++++++-----------------
 1 files changed, 80 insertions(+), 52 deletions(-)

diff --git a/view/project/layerAnalysis.html b/view/project/layerAnalysis.html
index 1df3ed5..81deb1f 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: 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 () {
+                                        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));
                         /*

--
Gitblit v1.9.1