ソースを参照

低空修改250311-01

zhiyuan-007 1 ヶ月 前
コミット
4cba414c21

+ 121 - 47
src/components/mapJK.vue

@@ -61,7 +61,7 @@ import {
   getProxyToken, getQJC,
   getRiverPointInterface,
   getRoadPointInterface,
-  gridBaseInfo
+  gridBaseInfo, queryPathsInfo
 } from "../service/http.js";
 import FeaturePointsPlottingEvent from "../units/map/FeaturePointsPlottingEvent.js";
 import FeaturePolygonPlottingEvent from "../units/map/FeaturePolygonPlottingEvent.js";
@@ -111,7 +111,17 @@ export default {
     let addFlowPathEvent = null;
     let movePointEvent = null;
     let currentRealPowerShow = false;  //当前是否显示无极网格
-    let currentRealPowerIds = [];   //当前无极网格
+    let currentRealPowerIds = {
+      power_wj_15:[],
+      power_wj_16:[],
+      power_wj_17:[],
+      power_wj_18:[],
+      power_wj_19:[],
+      power_wj_20:[],
+      power_wj_21:[],
+      power_wj_22:[],
+      power_wj_23:[]
+    };   //当前无极网格
     let currentRealPowerLevel = null; //当前无极网格层级
     onMounted(() =>{
       bus.on('CreateMap',() =>{
@@ -746,12 +756,19 @@ export default {
         if(status === "hide"){
           if(scale_handle_id === "scale_handle_cube"){
             currentRealPowerShow = false;
-            currentRealPowerIds = [];
+            currentRealPowerIds = {
+              power_wj_15:[],
+              power_wj_16:[],
+              power_wj_17:[],
+              power_wj_18:[],
+              power_wj_19:[],
+              power_wj_20:[],
+              power_wj_21:[],
+              power_wj_22:[],
+              power_wj_23:[]
+            };
             currentRealPowerLevel = null;
-            getCurrentRealPower({
-              status:"hide",
-              id:"power_wj"
-            })
+            closeOtherThreeCubeDetail("power_wj")
           }else if(scale_handle_id === "scale_handle_tileLayerChange"){
             //暂无操作
           }else if(scale_handle_id === "scale_handle_sceneLayerLayerChange"){
@@ -830,7 +847,17 @@ export default {
             getCurrentRealPower({
               status:'hide'
             })
-            currentRealPowerIds = [];
+            currentRealPowerIds = {
+              power_wj_15:[],
+              power_wj_16:[],
+              power_wj_17:[],
+              power_wj_18:[],
+              power_wj_19:[],
+              power_wj_20:[],
+              power_wj_21:[],
+              power_wj_22:[],
+              power_wj_23:[]
+            };
             currentRealPowerLevel = null;
             break;
           case (scaleValue <= 1500000 && scaleValue > 300000): //15级
@@ -1635,6 +1662,7 @@ export default {
         if(status === "hide"){
           return
         }
+        debugger
         let geometryMeshEffect = new GeometryMeshEffect({
           view:m_view,
           m_map,
@@ -2157,7 +2185,17 @@ export default {
             id:params.id,
             status:"hide"
           });
-          currentRealPowerIds = [];
+          currentRealPowerIds = {
+            power_wj_15:[],
+            power_wj_16:[],
+            power_wj_17:[],
+            power_wj_18:[],
+            power_wj_19:[],
+            power_wj_20:[],
+            power_wj_21:[],
+            power_wj_22:[],
+            power_wj_23:[]
+          };
           currentRealPowerLevel = null;
           return
         }
@@ -2188,45 +2226,36 @@ export default {
           fields: params.fields,
           scrollId: params.scrollId,
         }).then(res =>{
-          console.log("当前执行的level-需要的level",params.level,currentRealPowerLevel)
             if (currentRealPowerShow) {
               if (res.data.data.list?.length > 0) {
                 let data = res.data.data.list;
+                let responseLevel = res.data.data.list[0].level;
+                console.log("当前执行的level-需要的level",responseLevel,currentRealPowerLevel)
                 let newData = [];
-                if (currentRealPowerIds.length > 0) {
-                  //将data对象数组中girdCode与currentRealPowerIds数组中的元素进行对比,如果相同则不添加到newData数组中
-                  newData = data.filter(item => !currentRealPowerIds.includes(item.gridCode));
-                  if(newData.length > 0){
-                    showThreeCubeDetail({
-                      "id": params.id + currentRealPowerLevel,
-                      "status": params.status,
-                      "size": params.size,
-                      "points": newData,
-                    })
-                  }else{
-                    closeOtherThreeCubeDetail(params.id);
-                    showThreeCubeDetail({
-                      "id": params.id + currentRealPowerLevel,
-                      "status": params.status,
-                      "size": params.size,
-                      "points": newData,
-                    })
+                if(responseLevel === currentRealPowerLevel){
+                  if (currentRealPowerIds[params.id +'_'+ currentRealPowerLevel].length > 0) {
+                    //将data对象数组中girdCode与currentRealPowerIds数组中的元素进行对比,如果相同则不添加到newData数组中
+                    newData = data.filter(item => !currentRealPowerIds[params.id +'_'+ currentRealPowerLevel].includes(item.gridCode));
+                    let newDataIds = newData.map(item => item.gridCode);
+                    currentRealPowerIds[params.id +'_'+ currentRealPowerLevel]= [...currentRealPowerIds[params.id +'_'+ currentRealPowerLevel], ...newDataIds];
+                  } else {
+                    //将data对象数组中girdCode取出来,组成一个数组
+                    let gridCodes = data.map(item => item.gridCode);
+                    currentRealPowerIds[params.id +'_'+ currentRealPowerLevel] = gridCodes;
+                    newData = data;
                   }
-                  let newDataIds = newData.map(item => item.gridCode);
-                  currentRealPowerIds= [...currentRealPowerIds, ...newDataIds];
-                } else {
-                  //将data对象数组中girdCode取出来,组成一个数组
-                  let gridCodes = data.map(item => item.gridCode);
-                  currentRealPowerIds = gridCodes;
-                  newData = data;
-                  showThreeCubeDetail({
-                    "id": params.id + currentRealPowerLevel,
-                    "status": params.status,
-                    "size": params.size,
-                    "points": newData,
-                  })
-                  closeOtherThreeCubeDetail(params.id,currentRealPowerLevel)
                 }
+                showThreeCubeDetail({
+                  "id": params.id + currentRealPowerLevel,
+                  "status": params.status,
+                  "size": {
+                    x:newData[0].boxSize.latLength,
+                    y:newData[0].boxSize.lonLength,
+                    z:newData[0].boxSize.height
+                  },
+                  "points": newData,
+                })
+                closeOtherThreeCubeDetail(params.id,currentRealPowerLevel)
               }
             }
         })
@@ -2240,6 +2269,7 @@ export default {
             "id":paramsId + level,
             "status":"hide"
           })
+          currentRealPowerIds[paramsId +'_'+ level] = [];
         })
 
       }
@@ -2361,7 +2391,8 @@ export default {
             type:geometryType,
             symbol,
             path:path,
-            hasZ
+            hasZ,
+            once:true
           });
         }
         if(path){
@@ -2606,8 +2637,11 @@ export default {
 
       function movePoint(params){
         let status = params.status;
+        debugger
         const connectFlyPointWebSocket = (status) => {
           if(status === "show"){
+            debugger
+            showMovePaths(status);
             if(flyPointSocket){
               flyPointSocket.send(JSON.stringify({
                   "flightIdS": ["EFF7AE7B8B044436997F93F327819C20","18207414-c19e-4233-87e2-e6e4743fdea0"],
@@ -2666,12 +2700,18 @@ export default {
               };
             }
           }else{
+            showMovePaths(status);
             if(flyPointSocket){
-              // if(movePointEvent){
-              //   movePointEvent.clear();
-              //   movePointEvent = null;
-              // }
+              if(movePointEvent){
+                movePointEvent.clear();
+                movePointEvent = null;
+              }
+              showThreeCubeDetail({
+                "id":"movePointCube",
+                "status":"hide"
+              })
               flyPointSocket.close();
+              flyPointSocket = null
             }
           }
         };
@@ -2679,6 +2719,40 @@ export default {
       }
 
 
+      function showMovePaths(status){
+        debugger
+        if(status === "show"){
+          queryPathsInfo().then(res=>{
+            if(res.data.code === 200){
+              let data = res.data.data;
+              data.forEach((item)=>{
+                pathPipe({
+                  id:item.id,
+                  status:"show",
+                  paths:JSON.parse(item.shape).paths,
+                  color: "#438EDB",
+                  intensity: 1.2,
+                  pipeRadius: 10
+                })
+              })
+            }
+          })
+        }else{
+          queryPathsInfo().then(res=>{
+            if(res.data.code === 200){
+              let data = res.data.data;
+              data.forEach((item)=>{
+                pathPipe({
+                  id:item.id,
+                  status:"hide"
+                })
+              })
+            }
+          })
+        }
+      }
+
+
       //获取当前场景
       function getOccupyCube(params){
         let id = params.id;

+ 1 - 1
src/config/basicTool.json

@@ -42,7 +42,7 @@
             "title":"BaseMap",
             "visible": true,
             "opacity": 1,
-            "url": "https://cimweb.zjw.sh.cegn.cn:2008/MapServiceProxy/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NDE1OTUyMDMsImtleSI6IjkzNDkzMzIxIiwic2VydmljZU5vIjoiRDkwMDEwMDcxMjAyMzA4MDEiLCJ1c2VybmFtZSI6InB0Z2wifQ.dfJmWQC6WF1QXyqC7PKqdzekmiVWSOAvEwyjlszX1R4",
+            "url": "https://cimweb.zjw.sh.cegn.cn:2008/MapServiceProxy/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NDE2ODIxOTQsImtleSI6IjkzNDkzMzIxIiwic2VydmljZU5vIjoiRDkwMDEwMDcxMjAyMzA4MDEiLCJ1c2VybmFtZSI6InB0Z2wifQ.etDUo922q_82ER_mzO2Ozm3gg7UmCAxu0ZH3jKZHV_g",
             "token": ""
           }
         }

+ 15 - 4
src/service/http.js

@@ -10,6 +10,17 @@ export function getProxyToken(name,password){
         }
     })
 }
+//查询航线数据
+export function queryPathsInfo(){
+    return requestNetPost({
+        url:'/pg/airLine/query',
+        data:{
+            "fullExport": true
+        }
+    })
+}
+
+
 //查询网格尺寸
 export function gridBaseInfo(params){
     return requestPost({
@@ -44,7 +55,7 @@ export function getPowerPoint(params){
             "routes": [
                 //  "G001133223-031112-303001.1|000000000000000000000001"
             ],
-            "fields":["gridCode","x","y","z","element","boxSize"],
+            "fields":["gridCode","x","y","z","element","boxSize","level"],
             "scrollPage": {
                 "pageIndex": 1,
                 "pageSize": 100000,
@@ -78,7 +89,7 @@ export function getPowerPointByPolygon(params){
             "routes": [
                 //  "G001133223-031112-303001.1|000000000000000000000001"
             ],
-            "fields":["gridCode","x","y","z","element","boxSize"],
+            "fields":["gridCode","x","y","z","element","boxSize","level"],
             "scrollPage": {
                 "pageIndex": 1,
                 "pageSize": 100000,
@@ -105,7 +116,7 @@ export function getPowerPointByPolygon(params){
 
 
 
-//范围查询占用网格getOccupyPointByPolygon
+//范围查询占用网格
 export function getOccupyPointByPolygon(params){
     return requestNetPost({
         url:'/DataSearch/grid/search/v3/calculateWeight',
@@ -155,7 +166,7 @@ export function getOccupyPointByPolygon(params){
             "routes": [
                 //  "G001133223-031112-303001.1|000000000000000000000001"
             ],
-            "fields":["gridCode","x","y","z","element","boxSize"],
+            "fields":["gridCode","x","y","z","element","boxSize","level"],
             "scrollPage": {
                 "pageIndex": 1,
                 "pageSize": 100000,

+ 2 - 2
src/units/map/AddScaleEvent.js

@@ -7,12 +7,12 @@ class AddScaleEvent {
         this.callBackFunction = options.callBackFunction;
         this.addScaleEvent();
     }
-   
+
     addScaleEvent(){
         let currentScale = this.view.scale;  //缓存比例尺信息
         let throttleService = throttle((newValue) =>{
             this.callBackFunction(newValue)
-        },500);
+        },1000);
         this.scaleHandle = this.view.watch("scale",(newValue) =>{
             if(newValue !== currentScale){
                 currentScale = newValue;

+ 1 - 0
src/units/map/AddThreeCubeDetailEvent.js

@@ -61,6 +61,7 @@ class AddThreeCubeDetailEvent{
     clear(){
         if(this.addThreeCubeEvent){
             this.addThreeCubeEvent.mouseClickEvent.remove();
+            this.addThreeCubeEvent.points = [];
             this.addThreeCubeEvent.destroy();
             this.addThreeCubeEvent = null;
         }