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 |  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