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 ++++++++++++++++++++++++++++++
 vue.config.js                  |    2 
 src/assets/js/map/mapServer.js |   18 ++
 src/assets/js/map/mapView.js   |   49 ++++---
 public/config/config.js        |    3 
 src/views/chartView/index.vue  |   52 ++++++-
 public/gltf/ddc.glb            |    0 
 7 files changed, 271 insertions(+), 40 deletions(-)

diff --git a/public/config/config.js b/public/config/config.js
index ddf5f8b..45033b9 100644
--- a/public/config/config.js
+++ b/public/config/config.js
@@ -21,7 +21,8 @@
   imgUrl: webHost + "/image/",
   reportMd: "/Data/Report.md",
   reportDocx: "/Data/Report.docx",
-  modelLayer:"鍐涗簨璁炬柦",//"FW21",
+  modelLayer:"MilitaryFacilities",//"FW21",
+  terrainUrl:"https://tiles1.geovisearth.com/base/v1/terrain?token=486dac3bec56d7d7c2a581c150be2bd937462f1e8f3bc9c78b5658b396122405",
   modelBase: {
     url: "http://106.120.22.26:8013",
     account: "/account-service",
diff --git a/public/gltf/ddc.glb b/public/gltf/ddc.glb
new file mode 100644
index 0000000..a091fed
--- /dev/null
+++ b/public/gltf/ddc.glb
Binary files differ
diff --git a/src/assets/js/map/mapServer.js b/src/assets/js/map/mapServer.js
index 01e8a3e..2bfb2a9 100644
--- a/src/assets/js/map/mapServer.js
+++ b/src/assets/js/map/mapServer.js
@@ -4,7 +4,7 @@
   listData: [],
   sourceType: null,
   tileContent: null,
-  init() {},
+  init() { },
   addServer(res) {
     this.sourceType = res.sourceType;
     switch (this.sourceType) {
@@ -108,6 +108,10 @@
     //   const tileset =  earthCtrl.factory.create3DTilesets({
     //     url: res.url
     // });
+    // const model = await earthCtrl.factory.create3DTilesets({
+    //   url: res.url,
+    //   success: this.flyTo(),
+    // });
     var tileset = await Viewer.scene.primitives.add(
       new Cesium.Cesium3DTileset({
         url: res.url
@@ -125,13 +129,21 @@
       layerId: res.id,
       name: res.name
     });
-    console.log(" this.listData",  this.listData);
+    console.log(" this.listData", this.listData);
     // console.log('tileset',tileset);
     // earthCtrl.userScene.flyTo(tileset);
   },
+  flyTo(model) {
+    debugger
+    // const options = {
+    //   duration: 2,
+    //   offset: new SmartEarth.Cesium.HeadingPitchRange(1.0, -0.3, 1000)
+    // };
+    // earthCtrl.userScene.flyTo(model.item, options);
+  },
   traverseVisibleTiles() {
     tileset.readyPromise.then((tileset) => {
-      tileset.tileVisibility.forEachTile(function (tile) {});
+      tileset.tileVisibility.forEachTile(function (tile) { });
     });
   },
   addWfsLayer(res) {
diff --git a/src/assets/js/map/mapView.js b/src/assets/js/map/mapView.js
index 4bdab51..5c6cb30 100644
--- a/src/assets/js/map/mapView.js
+++ b/src/assets/js/map/mapView.js
@@ -36,10 +36,8 @@
         console.log("鐐瑰嚮鐨勫璞�:", pickedObject);
       }
     }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
-    // earthCtrl.factory.createTerrainLayer({
-    //   sourceType: "ctb",
-    //   url: "https://tiles1.geovisearth.com/base/v1/terrain?token=486dac3bec56d7d7c2a581c150be2bd937462f1e8f3bc9c78b5658b396122405"
-    // });
+    //鍔犺浇鍏ㄧ悆鍦板舰
+    this.addTerrain();
     this.addImageLayer();
     // this.addqqmap();
     let now2 = new Date();
@@ -116,6 +114,9 @@
     //   lat: 23.990136825668284,
     //   alt: 150
     // })
+    earthCtrl.measure.pickPosition({}, function (e) {
+      console.info(e);
+    });
   },
   addTetrahedron(res) {
     earthCtrl.factory.addTetrahedron({
@@ -250,14 +251,14 @@
       width: 1.5,
       color: '#87CEFA',
     })
-    earthCtrl.factory.createWfsLayer('polyline', {
+    const layer1 = earthCtrl.factory.createWfsLayer('polyline', {
       urls: 'https://cim.smartearth.cn/geoserver/JiaShanBase/ows',
       layer: 'JiaShanBase:RadarM',
       width: 1.5,
       color: '#de3',
     })
 
-    earthCtrl.factory.createWfsLayer('polyline', {
+    const layer2 = earthCtrl.factory.createWfsLayer('polyline', {
       urls: 'https://cim.smartearth.cn/geoserver/JiaShanBase/ows',
       layer: 'JiaShanBase:RadarS',
       width: 1.5,
@@ -286,30 +287,36 @@
   },
   addModel() {
     const entity = earthCtrl.viewer.entities.add({
-      position: SmartEarth.Cesium.Cartesian3.fromDegrees(
-        121.614202387521061,
-        23.990136825668284,
-        0
+      position: Cesium.Cartesian3.fromDegrees(
+        121.576830,
+        24.006230,
       ),
       model: {
-        uri: '/gltf/tank.glb',
-        scale: 15,
-        heightReference: SmartEarth.Cesium.HeightReference.CLAMP_TO_GROUND,
-        disableDepthTestDistance: Number.POSITIVE_INFINITY // 绂佺敤娣卞害娴嬭瘯
+        uri: '/gltf/ddc.glb',
+        scale: 20,
+        heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
+        // disableDepthTestDistance: Number.POSITIVE_INFINITY // 绂佺敤娣卞害娴嬭瘯
       },
       label: {
         show: true,
-        text: '缁忓害锛�121.6142023,绾害锛�23.9901368',
-        color: SmartEarth.Cesium.Color.fromCssColorString("#fff"),
+        text: '缁忓害锛�121.576830,绾害锛�24.006230',
+        color: Cesium.Color.fromCssColorString("#fff"),
         font: "normal 14px MicroSoft YaHei",
         showBackground: true,
-        outlineColor: SmartEarth.Cesium.Color.WHITE,
-        pixelOffset: new SmartEarth.Cesium.Cartesian2(10, -30),
-        horizontalOrigin: SmartEarth.Cesium.HorizontalOrigin.CENTER,
-        verticalOrigin: SmartEarth.Cesium.VerticalOrigin.BOTTOM,
-        heightReference: SmartEarth.Cesium.HeightReference.CLAMP_TO_GROUND,
+        outlineColor: Cesium.Color.WHITE,
+        pixelOffset: new Cesium.Cartesian2(10, -30),
+        horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
+        verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
+        heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
       },
     });
+  },
+  //鍔犺浇鍏ㄧ悆鍦板舰
+  addTerrain() {
+    window.terrain = earthCtrl.factory.createTerrainLayer({
+      sourceType: "ctb",
+      url:config.terrainUrl
+    });
   }
 };
 export default mapViewer;
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
+      });
     }
   }
 };
diff --git a/src/views/chartView/index.vue b/src/views/chartView/index.vue
index 0c46f68..d566150 100644
--- a/src/views/chartView/index.vue
+++ b/src/views/chartView/index.vue
@@ -140,6 +140,15 @@
       };
     },
     async getQueryLayerList() {
+      const item = {
+        sourceType: "Tileset",
+        name: "MilitaryFacilities",
+        url: "/data-api/gisserver/c3dserver/sedb_DESKTOP-15DOTHJ_SEM4550/tileset.json",
+      };
+      setTimeout(() => {
+        mapServer.addServer(item);
+      }, 1000);
+      return;
       getAgentLayerList().then((response) => {
         if (response.code != 200) return;
         const items = response.data;
@@ -320,33 +329,33 @@
           let dataList = [
             {
               type: "鍙墦鍑荤洰鏍�",
-              color:'#FF3366',
+              color: "#FF3366",
               list: [],
             },
             {
               type: "涓嶅彲鎵撳嚮鐩爣",
-              color:'#33FF66',
+              color: "#33FF66",
               list: [],
             },
             {
               type: "鍏朵粬",
-              color:'#3366FF',
+              color: "#3366FF",
               list: [],
             },
           ];
           res.data.forEach((item) => {
             if (item.ifstrike === "1") {
-              dataList[0].list.push(item.seid);
+              dataList[0].list.push(item.uuid);
             } else if (item.ifstrike === "2") {
-              dataList[1].list.push(item.seid);
+              dataList[1].list.push(item.uuid);
             } else {
-              dataList[2].list.push(item.seid);
+              dataList[2].list.push(item.uuid);
             }
           });
           const resultData = dataList
             .map((item) => `| ${item.type} | ${item.list.length} |`)
             .join("\n");
-          var a = `| 鏁版嵁绫诲瀷 | 鏁版嵁閲� |\n|------|------|\n`+resultData;
+          var a = `| 鏁版嵁绫诲瀷 | 鏁版嵁閲� |\n|------|------|\n` + resultData;
           console.log("aaa", a);
           this.setUpdateHistoryInFor(obj, a);
           var roleMsg = msgData.getMdData("markdown", a);
@@ -354,16 +363,37 @@
           const finalData = {
             func: "aroundPoi",
             data: dataList,
-          }
+          };
           mapSetFunc.init(finalData);
           break;
         case "getParam":
           mapSetFunc.init(res);
           console.log("res.data.targetinfo", res);
           this.setUpdateHistoryInFor(obj, res.msg);
-          var roleMsg = msgData.getAffairsData([
-            { type: "text", val: res.data[0].targetinfo },
-          ]);
+          if (res.data.length === 1) {
+            var roleMsg = msgData.getAffairsData([
+              { type: "text", val: res.data[0].targetinfo },
+            ]);
+            this.refashMsg(roleMsg.list);
+          } else {
+            const markData = res.data
+              .map((item) => `| ${item.name} | ${item.targetinfo} |`)
+              .join("\n");
+            let markAttr = `| 鍚嶇О | 灞炴�т俊鎭� |\n|------|------|\n` + markData;
+            var roleMsg = msgData.getMdData("markdown", markAttr);
+            this.refashMsg(roleMsg.list);
+          }
+          break;
+        case "aroundPoi_2":
+          mapSetFunc.init(res);
+          console.log("res.data.targetinfo", res);
+          const resData = res.data
+            .map((item) => `| ${item.name} | ${item.targetinfo} |`)
+            .join("\n");
+          var attr = `| 鍚嶇О | 灞炴�т俊鎭� |\n|------|------|\n` + resData;
+          console.log("aaa", attr);
+          var roleMsg = msgData.getMdData("markdown", attr);
+          this.setUpdateHistoryInFor(obj, res.msg);
           this.refashMsg(roleMsg.list);
           break;
         default:
diff --git a/vue.config.js b/vue.config.js
index 2e16b8c..d88092c 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -18,7 +18,7 @@
         }
       },
       "/data-api": {
-        target: 'https://cim.smartearth.cn',
+        target: 'http://103.135.160.14:9038/',
         changeOrigin: true,
         pathRewrite: {
           '^/data-api': ''

--
Gitblit v1.9.3