From ed837798421340859efca21e46adc17575bdfef8 Mon Sep 17 00:00:00 2001
From: yxl <584911253@qq.com>
Date: 星期五, 10 一月 2025 16:23:17 +0800
Subject: [PATCH] 最新修改

---
 src/assets/js/mapSetFunc.js |  187 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 184 insertions(+), 3 deletions(-)

diff --git a/src/assets/js/mapSetFunc.js b/src/assets/js/mapSetFunc.js
index f3d9807..2c8d2f9 100644
--- a/src/assets/js/mapSetFunc.js
+++ b/src/assets/js/mapSetFunc.js
@@ -19,6 +19,12 @@
       case "queryMeta":
         this.creatQueryMeta(res);
         break;
+      case "aroundPoi_2":
+        this.addWfsLayer(res);
+        break;
+      case "getParam":
+        this.addTetrahedron(res);
+        break;
     }
   },
   creatQueryMeta(res) {
@@ -37,7 +43,7 @@
     this.setModelChangeColor(colors);
   },
   setModelChangeColor(res) {
-    console.log('mapServer.listData',mapServer.listData,config.modelLayer);
+    console.log('mapServer.listData', mapServer.listData, config.modelLayer);
     const modelLayer = mapServer.listData.filter((obj) => {
       if (obj.name == config.modelLayer) {
         return obj;
@@ -156,7 +162,7 @@
   },
 
   creatPoiMap(res) {
-    res.data.forEach((poi,index) => {
+    res.data.forEach((poi, index) => {
       // const poi = res.data[0];
       console.log('poi------', poi)
       const label = earthCtrl.factory.createLabel({
@@ -236,7 +242,7 @@
         ids: element.list
       });
     })
-    console.log('colors----',colors);
+    console.log('colors----', colors);
     store.state.setListColor = colors;
     store.state.showLenged = true;
     this.setModelChangeColor(colors);
@@ -323,6 +329,160 @@
       }
     });
   },
+
+  // 娣诲姞wfs
+  addWfsLayer(res) {
+    if (window.terrain) {
+      window.terrain.removeFromMap();
+      window.terrain = null;
+    }
+    // earthCtrl.viewer.scene.globe.show = false;
+    earthCtrl.viewer.camera.flyTo({
+      destination: {
+        x: -3475710.5684351875,
+        y: 5625834.799523204,
+        z: 2729961.751894543,
+      },
+      orientation: {
+        heading: 5.73978482494632,
+        pitch: -1.2817819264676036,
+        roll: 6.282989918773924,
+      },
+    });
+    const layer1 = earthCtrl.factory.createWfsLayer('point', {
+      urls: 'https://cim.smartearth.cn/geoserver/JiaShanBase/ows',
+      layer: 'JiaShanBase:RadarSpot',
+      text: '[JiaShanBase:Type]',
+      color: '#de3',
+      disableDepthTestDistance: Infinity
+    })
+    this.layerList.push({
+      layer: layer1,
+      func: res.func
+    });
+    const layer2 = earthCtrl.factory.createWfsLayer('polyline', {
+      urls: 'https://cim.smartearth.cn/geoserver/JiaShanBase/ows',
+      layer: 'JiaShanBase:RadarL',
+      width: 1.5,
+      color: '#87CEFA',
+      disableDepthTestDistance: Number.POSITIVE_INFINITY,
+    })
+    this.layerList.push({
+      layer: layer2,
+      func: res.func
+    });
+    const layer3 = earthCtrl.factory.createWfsLayer('polyline', {
+      urls: 'https://cim.smartearth.cn/geoserver/JiaShanBase/ows',
+      layer: 'JiaShanBase:RadarM',
+      width: 1.5,
+      color: '#de3',
+      disableDepthTestDistance: Number.POSITIVE_INFINITY,
+    })
+    this.layerList.push({
+      layer: layer3,
+      func: res.func
+    });
+    const layer4 = earthCtrl.factory.createWfsLayer('polyline', {
+      urls: 'https://cim.smartearth.cn/geoserver/JiaShanBase/ows',
+      layer: 'JiaShanBase:RadarS',
+      width: 1.5,
+      color: '#FF0000',
+      disableDepthTestDistance: Number.POSITIVE_INFINITY,
+    })
+    this.layerList.push({
+      layer: layer4,
+      func: res.func
+    });
+    this.addRaderLayer(res);
+  },
+  addRaderLayer(res) {
+    //闆疯揪閬僵鎵弿锛堣嚜瀹氫箟锛�
+    const option = {
+      radius: 150000,  //鍗婂緞
+      yaw: 0,  //闆疯揪鏂瑰悜锛堝彲閫夛級
+      angle: 120,  //闆疯揪澶硅锛堝彲閫夛級
+      scanAngle: 30,  //鎵弿澶硅锛堝彲閫夛級
+      speed: 5,  //鍊嶉�燂紙鍙�夛級
+      maxLat: 90,  //涓嬬淮搴︼紙鍙�夛級
+      minLat: 45,  //涓婄淮搴︼紙鍙�夛級
+      stackPartitions: 40,  //妯悜缃戞牸鏁帮紙鍙�夛級
+      slicePartitions: 80,  //绾靛悜缃戞牸鏁帮紙鍙�夛級
+      //color: 'rgba(255,255,255,0.5)',  //闆疯揪閬僵棰滆壊锛堝彲閫夛級
+      //outlineColor: 'rgba(255,255,255,0.5)',  //闆疯揪閬僵杈规绾块鑹诧紙鍙�夛級
+      //scanColor: 'rgba(255,0,0,0.5)',   //鎵弿棰滆壊锛堝彲閫夛級
+    };
+    const position1 = [121.614202387521061, 23.990136825668284, 0];
+    // 闆疯揪閬僵
+    const layer = earthCtrl.factory.createRadarMaskScan('闆疯揪閬僵鎵弿1', position1, option)
+    this.layerList.push({
+      layer: layer,
+      func: 'radarMaskScan'
+    });
+  },
+  //瑙嗛敟
+  addTetrahedron(res) {
+    res.data.forEach((item,index) => {
+      const tetrahedron = earthCtrl.factory.addTetrahedron({
+        position: {
+          lon: item.lontitude,
+          lat: item.lattitude,
+          height: item.height
+        },
+        multiple: 0.05,
+        scale: new SmartEarth.Cesium.Cartesian3(100, 100, 100),
+        color: "#FF0000",
+        outlineColor: "#FF0000"
+      });
+      if (index == 0) {
+        earthCtrl.camera.flyTo(item.lontitude, item.lattitude, 5000, 0, -90, 0, 2);
+        const modelLayer = mapServer.listData.filter((obj) => {
+          if (obj.name == config.modelLayer) {
+            return obj;
+          }
+        });
+        // debugger
+        if (modelLayer.length <= 0) return;
+        // earthCtrl.userScene.flyTo(modelLayer[0].layer);
+        // modelLayer[0].layer.style = new Cesium.Cesium3DTileStyle({
+        //   color: {
+        //     evaluateColor: (feature) => {
+        //       const id = feature.getProperty("id");
+        //       // if (id === 'de9b9f1f-bea5-11ef-bbd1-ac82473c08a6') {
+        //       //   debugger
+        //       //   // const boundingVolume = feature.tileset.root.boundingVolume
+        //       //   // const center = Cesium.BoundingVolume.computeBoundingVolume(boundingVolume, feature.tileset.root.transform);
+        //       //   // debugger
+        //       //   earthCtrl.viewer.camera.flyTo({
+        //       //     destination: center,
+        //       //     duration: 2.0
+        //       //   });
+        //       //   // earthCtrl.userScene.flyTo(feature);
+        //       //   // return new SmartEarth.Cesium.Color.fromCssColorString(
+        //       //   //   '#FF0000'
+        //       //   // );
+        //       // }
+        //       // console.log("id**********", id);
+        //       // const color = res.filter((item) => {
+        //       //   if (item.ids.indexOf(id) > -1) {
+        //       //     return item;
+        //       //   }
+        //       // });
+        //       // if (color.length > 0) {
+        //         // return new SmartEarth.Cesium.Color.fromCssColorString(
+        //         //   color[0].color
+        //         // );
+        //       // }
+        //     }
+        //   }
+        // });
+      }
+      this.layerList.push({
+        layer: tetrahedron,
+        func: 'tetrahedron'
+      });
+    })
+  },
+
   removeAll() {
     store.state.setListColor = [];
     store.state.showLenged = false;
@@ -360,6 +520,27 @@
         this.layerList.splice(i, 1);
         i--;
       }
+      else if (obj.func == "aroundPoi_2") {
+        this.layerList[i].layer.destroy();
+        this.layerList.splice(i, 1);
+        i--;
+      }
+      else if (obj.func == "radarMaskScan") {
+        this.layerList[i].layer.deleteObject();
+        this.layerList.splice(i, 1);
+        i--;
+      }
+      else if (obj.func == "tetrahedron") {
+        this.layerList[i].layer.deleteObject();
+        this.layerList.splice(i, 1);
+        i--;
+      }
+    }
+    if (!window.terrain) {
+      window.terrain = earthCtrl.factory.createTerrainLayer({
+        sourceType: "ctb",
+        url: config.terrainUrl
+      });
     }
   }
 };

--
Gitblit v1.9.3