From 1496203eb8194c26ff9350e4673927565df41705 Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期四, 23 二月 2023 17:56:56 +0800
Subject: [PATCH] 综合展示图层管理添加3dTilset,资料馆下下调整,综合展示分析功能优化

---
 src/views/Tools/maplayer.vue          |    2 
 src/api/api.js                        |    6 
 src/views/Tools/LayerTree.vue         |  216 ++++---
 src/views/Synthesis/LeftMenu.vue      | 1237 ++++++++++++++++++++++++---------------------
 src/components/MapView/mapMenuPop.vue |  156 ++---
 5 files changed, 850 insertions(+), 767 deletions(-)

diff --git a/src/api/api.js b/src/api/api.js
index c00c634..bd0b4ab 100644
--- a/src/api/api.js
+++ b/src/api/api.js
@@ -730,7 +730,7 @@
 }
 //璧勬枡棣�=>鏍规嵁鍗曚綅ID闆嗗悎鏌ヨ鍗曚綅
 export function dataLib_selectDepsByIds(params) {
-  return request.get('/dataLib/selectDepsByIds?' + params);
+  return request.get('/dataLib/selectDepsByCodes?' + params);
 }
 
 //璧勬枡棣�=>璇锋眰涓嬭浇
@@ -845,8 +845,8 @@
 export function dataCount_downloadReport(params) {
   return request.get('/dataCount/downloadReport', { params: params });
 }
- 
- 
+
+
 
 
 //璇锋眰绔欏満鐐瑰唴瀹�
diff --git a/src/components/MapView/mapMenuPop.vue b/src/components/MapView/mapMenuPop.vue
index a862f2a..96b91ca 100644
--- a/src/components/MapView/mapMenuPop.vue
+++ b/src/components/MapView/mapMenuPop.vue
@@ -1,15 +1,9 @@
 <template>
   <div class="menuPop">
     <div class="leftBox">
-      <div
-        class="leftDown"
-        v-if="$store.state.download"
-      >
+      <div class="leftDown" v-if="$store.state.download">
         <div @click="getDownloadDep">
-          <el-link
-            style="color:white"
-            icon="el-icon-download"
-          > </el-link>
+          <el-link icon="el-icon-download"> </el-link>
         </div>
       </div>
       <ul>
@@ -36,11 +30,7 @@
             label="搴忓彿"
             width="50"
           />
-          <el-table-column
-            label="瀹氫綅"
-            width="100"
-            align="center"
-          >
+          <el-table-column label="瀹氫綅" width="100" align="center">
             <template slot-scope="scope">
               <el-button
                 icon="el-icon-map-location"
@@ -87,20 +77,14 @@
         label-width="100px"
         class="codeForm"
       >
-        <el-form-item
-          :label="$t('common.passworld')"
-          prop="password"
-        >
+        <el-form-item :label="$t('common.passworld')" prop="password">
           <el-input
             type="password"
             v-model="codeForm.password"
             show-password
           ></el-input>
         </el-form-item>
-        <el-form-item
-          :label="$t('common.SPassword')"
-          prop="repassword"
-        >
+        <el-form-item :label="$t('common.SPassword')" prop="repassword">
           <el-input
             type="password"
             v-model="codeForm.repassword"
@@ -112,12 +96,9 @@
             class="primary"
             size="small"
             @click="download('codeForm')"
-          >{{ $t("common.confirm") }}</el-button>
-          <el-button
-            type="info"
-            size="small"
-            @click="closeDown('codeForm')"
-          >{{
+            >{{ $t("common.confirm") }}</el-button
+          >
+          <el-button type="info" size="small" @click="closeDown('codeForm')">{{
             $t("common.cancel")
           }}</el-button>
         </el-form-item>
@@ -131,17 +112,13 @@
       :modal="false"
       :before-close="handleInsertClose"
     >
-      <div style="width:100%; max-height:450px;overflow-y:auto">
-        <el-form
-          ref="form"
-          :model="ruleForm"
-          label-width="100px"
-        >
+      <div style="width: 100%; max-height: 450px; overflow-y: auto">
+        <el-form ref="form" :model="ruleForm" label-width="100px">
           <el-form-item label="瀹℃牳鍗曚綅">
             <div>
               <ul>
                 <li v-for="item in ruleForm.depid">
-                  {{item.name}}
+                  {{ item.name }}
                 </li>
               </ul>
             </div>
@@ -150,7 +127,7 @@
             <div>
               <ul>
                 <li v-for="item in ruleForm.tabs">
-                  {{item.tabDesc}}
+                  {{ item.tabDesc }}
                 </li>
               </ul>
             </div>
@@ -158,7 +135,7 @@
           <el-form-item label="鏉′欢">
             <el-input
               :title="ruleForm.wkt"
-              v-model=" ruleForm.wkt"
+              v-model="ruleForm.wkt"
               disabled
             ></el-input>
           </el-form-item>
@@ -173,18 +150,12 @@
             </el-input>
           </el-form-item>
           <el-form-item>
-            <el-button
-              class="primary"
-              size="small"
-              @click="getInsertDown"
-            >{{ $t("common.confirm") }}</el-button>
-            <el-button
-              type="info"
-              size="small"
-              @click="closeInsertDown"
-            >{{
-            $t("common.cancel")
-          }}</el-button>
+            <el-button class="primary" size="small" @click="getInsertDown">{{
+              $t("common.confirm")
+            }}</el-button>
+            <el-button type="info" size="small" @click="closeInsertDown">{{
+              $t("common.cancel")
+            }}</el-button>
           </el-form-item>
         </el-form>
       </div>
@@ -196,7 +167,7 @@
     ></iframe>
   </div>
 </template>
- 
+
 <script>
 import {
   dataQuery_selectByPage,
@@ -207,7 +178,8 @@
   dataLib_selectDownloadFile,
   dataQuery_selectDbOverflowDep,
   apply_insertApply,
-  decr, encr,
+  decr,
+  encr,
   dataLib_selectDepsByIds,
 } from "../../api/api.js";
 import { getToken } from "@/utils/auth";
@@ -266,7 +238,6 @@
         entity: [],
         wkt: null,
         descr: null,
-
       },
       listPage: {
         pageSize: 10,
@@ -299,11 +270,11 @@
       this.dialogVisible = true;
     },
     handleInsertClose() {
-      this.$confirm('纭鍏抽棴锛�')
-        .then(_ => {
+      this.$confirm("纭鍏抽棴锛�")
+        .then((_) => {
           this.closeInsertDown();
         })
-        .catch(_ => { });
+        .catch((_) => {});
     },
     closeInsertDown() {
       this.ruleForm = {
@@ -313,27 +284,25 @@
         repwd: null,
         wkt: null,
         descr: null,
-      }
-      this.dialogInsertVisible = false
+      };
+      this.dialogInsertVisible = false;
     },
     async getDownloadDep() {
       var std = [];
       for (var i in this.option) {
-        std.push(this.option[i].entity
-        )
+        std.push(this.option[i].entity);
       }
       var obj = {
         entities: std,
-        wkt: this.listdata.wkt
-      }
-      const data = await dataQuery_selectDbOverflowDep(JSON.stringify(obj))
+        wkt: this.listdata.wkt,
+      };
+      const data = await dataQuery_selectDbOverflowDep(JSON.stringify(obj));
       if (data.code != 200) {
         this.$message.error("鏁版嵁璇锋眰澶辫触");
         return;
       }
 
       if (data.result.length == 0 || data.result == null) {
-
         this.insertFlag = 1;
         this.dialogVisible = true;
       } else {
@@ -343,24 +312,23 @@
         var val = "";
         for (var i in data.result) {
           if (val == "") {
-            val += "ids=" + data.result[i]
+            val += "codes=" + data.result[i];
           } else {
-            val += "&ids=" + data.result[i]
+            val += "&codes=" + data.result[i];
           }
 
           std.push({
-            name: data.result[i]
-          })
+            name: data.result[i],
+          });
         }
         const data1 = await dataLib_selectDepsByIds(val);
 
         this.ruleForm.depid = data1.result;
         this.ruleForm.depname = std;
-        this.ruleForm.wkt = decr(this.listdata.wkt)
+        this.ruleForm.wkt = decr(this.listdata.wkt);
         this.ruleForm.tabs = this.option;
         this.dialogInsertVisible = true;
-      }download
-
+      }
     },
     async signGetPublicKey() {
       const res = await sign_getPublicKey();
@@ -400,31 +368,29 @@
         var std = [];
         var std1 = [];
         for (var i in this.option) {
-
-          std.push(this.option[i].tabDesc)
-          std1.push(this.option[i].entity)
+          std.push(this.option[i].tabDesc);
+          std1.push(this.option[i].entity);
         }
         var obj = {
-          ids: this.insertOption.ids,
+          depcodes: this.insertOption.ids,
           pwd: encr(this.codeForm.password),
           tabs: std,
           entities: std1,
           wkt: this.listdata.wkt,
           descr: this.ruleForm.descr,
-        }
-        const data1 = await apply_insertApply(JSON.stringify(obj))
+        };
+        const data1 = await apply_insertApply(JSON.stringify(obj));
         if (data1.code != 200) {
           this.$message.error("鏁版嵁鐢宠澶辫触");
-          return
+          return;
         }
         this.$message({
-          message: '鏁版嵁鐢宠鎴愬姛',
-          type: 'success'
+          message: "鏁版嵁鐢宠鎴愬姛",
+          type: "success",
         });
 
         this.closeDown();
       }
-
     },
     async selectDownloadFile(rsid, rspwd) {
       var downObj = {
@@ -453,7 +419,7 @@
         .then((_) => {
           this.closeDown();
         })
-        .catch((_) => { });
+        .catch((_) => {});
     },
     closeDown() {
       this.dialogVisible = false;
@@ -474,7 +440,7 @@
         }
         this.$store.state.queryInfo = [];
         if (this.$store.state.primitLayer != null) {
-            sgworld.Viewer.entities.remove(this.$store.state.primitLayer);
+          sgworld.Viewer.entities.remove(this.$store.state.primitLayer);
           sgworld.Creator.DeleteObject(this.$store.state.primitLayer);
           this.$store.state.primitLayer = null;
         }
@@ -642,7 +608,6 @@
       this.showAllImage(data.result);
     },
     async showAllImage(res) {
-
       for (var i in res) {
         var param = {
           gid: res[i].gid,
@@ -670,13 +635,11 @@
       }
     },
     primitivesAddLayer(res) {
-
       switch (res.type) {
         case "Point":
           var val = Cesium.Cartesian3.fromDegrees(
             res.coordinates[0],
-            res.coordinates[1],
-
+            res.coordinates[1]
           );
           var point = Viewer.entities.add({
             position: val,
@@ -693,11 +656,11 @@
               // 搴旂敤浜庡浘鍍忕殑缁熶竴姣斾緥銆傛瘮渚嬪ぇ浜庝細1.0鏀惧ぇ鏍囩锛岃�屾瘮渚嬪皬浜庝細1.0缂╁皬鏍囩銆�
               scale: 1.0,
               // 鏄惁鏄剧ず
-              show: true
-            }
+              show: true,
+            },
           });
-          point.billboard.disableDepthTestDistance = Number.POSITIVE_INFINITY; 
-          this.$store.state.queryInfo.push(point)
+          point.billboard.disableDepthTestDistance = Number.POSITIVE_INFINITY;
+          this.$store.state.queryInfo.push(point);
           break;
         case "LineString":
         case "MultiLineString":
@@ -712,9 +675,9 @@
               width: 5,
               material: new Cesium.Color(1.0, 0.0, 0.0, 0.3),
               clampToGround: true,
-            }
-          })
-          this.$store.state.queryInfo.push(polyline)
+            },
+          });
+          this.$store.state.queryInfo.push(polyline);
           break;
         case "MultiPolygon":
           var val = res.coordinates[0][0];
@@ -729,9 +692,9 @@
               material: new Cesium.Color(1.0, 0.0, 0.0, 0.3),
               outline: true,
               outlineColor: new Cesium.Color(1.0, 0.0, 0.0, 0.3),
-            }
-          })
-          this.$store.state.queryInfo.push(entity)
+            },
+          });
+          this.$store.state.queryInfo.push(entity);
           break;
       }
     },
@@ -758,7 +721,7 @@
   },
 };
 </script>
- 
+
 <style scoped lang="less">
 .menuPop {
   width: 100%;
@@ -822,4 +785,3 @@
   padding: 5px;
 }
 </style>
- 
diff --git a/src/views/Synthesis/LeftMenu.vue b/src/views/Synthesis/LeftMenu.vue
index ebffc74..d720cc1 100644
--- a/src/views/Synthesis/LeftMenu.vue
+++ b/src/views/Synthesis/LeftMenu.vue
@@ -6,21 +6,13 @@
       v-for="(item, index) in setListTwoMenu"
       :class="{ lefMenuDivActive: showTwoMenuFlag == item.id }"
     >
-      <div
-        class="menuTwoImage"
-        :class="item.css"
-      ></div>
+      <div class="menuTwoImage" :class="item.css"></div>
       <div>{{ $t(item.label) }}</div>
     </div>
     <mapinfo ref="mapinfo" />
     <maplayer ref="maplayer" />
     <queryinfo ref="queryinfo" />
-    <input
-      type="file"
-      accept=".kml"
-      class="file"
-      style="display: none"
-    />
+    <input type="file" accept=".kml" class="file" style="display: none" />
     <input
       :accept="'.shp, .shx, .dbf, .prj'"
       style="display: none"
@@ -35,23 +27,21 @@
 </template>
 
 <script>
-
-import { transform } from 'ol/proj';
-import mapinfo from '../Tools/mapinfo.vue';
-import maplayer from '../Tools/maplayer.vue';
-import queryinfo from '../Tools/queryinfo.vue';
-import $ from 'jquery'
-import { getToken } from '@/utils/auth';
+import { transform } from "ol/proj";
+import mapinfo from "../Tools/mapinfo.vue";
+import maplayer from "../Tools/maplayer.vue";
+import queryinfo from "../Tools/queryinfo.vue";
+import $ from "jquery";
+import { getToken } from "@/utils/auth";
 import {
   OverviewMap,
   defaults as defaultControls,
   FullScreen,
   ScaleLine,
   Rotate,
-
-} from "ol/control.js"
-import * as turf from '@turf/turf';
-import { geometry } from '@turf/turf';
+} from "ol/control.js";
+import * as turf from "@turf/turf";
+import { geometry } from "@turf/turf";
 
 export default {
   components: { mapinfo, maplayer, queryinfo },
@@ -62,162 +52,160 @@
       setListTwoMenuAll: [
         [
           {
-            id: 'a1',
-            label: 'synthesis.layer',
-            name: '鍥惧眰绠$悊',
-            css: 'twoMenu_imge11',
-          },
-
-        ],
-        [
-          {
-            id: 'b1',
-            label: 'synthesis.split',
-            name: '鍒嗗睆',
-            css: 'twoMenu_imge21',
-          },
-          {
-            id: 'b2',
-            label: 'synthesis.twod',
-            name: '浜岀淮',
-            css: 'twoMenu_imge22',
-          },
-          {
-            id: 'b3',
-            label: 'synthesis.threed',
-            name: '涓夌淮',
-            css: 'twoMenu_imge23',
-          },
-          {
-            id: 'b4',
-            label: 'synthesis.full',
-            name: '鍏ㄥ浘',
-            css: 'twoMenu_imge24',
-          },
-          {
-            id: 'b5',
-            label: 'synthesis.zommin',
-            name: '鏀惧ぇ',
-            css: 'twoMenu_imge25',
-          },
-          {
-            id: 'b6',
-            label: 'synthesis.zoomout',
-            name: '缂╁皬',
-            css: 'twoMenu_imge26',
-          },
-          {
-            id: 'b7',
-            label: 'synthesis.rule',
-            name: '姣斾緥灏�',
-            css: 'twoMenu_imge27',
-          },
-          {
-            id: 'b8',
-            label: 'synthesis.compass',
-            name: '鎸囧寳閽�',
-            css: 'twoMenu_imge28',
-          },
-          {
-            id: 'b9',
-            label: 'synthesis.undergroundMode',
-            name: '鍦颁笅妯″紡',
-            css: 'twoMenu_imge29',
+            id: "a1",
+            label: "synthesis.layer",
+            name: "鍥惧眰绠$悊",
+            css: "twoMenu_imge11",
           },
         ],
         [
           {
-            id: 'c1',
-            label: 'synthesis.someroaming',
-            name: '鐐规极娓�',
-            css: 'twoMenu_imge31',
+            id: "b1",
+            label: "synthesis.split",
+            name: "鍒嗗睆",
+            css: "twoMenu_imge21",
           },
           {
-            id: 'c2',
-            label: 'synthesis.lineroaming',
-            name: '绾胯矾婕父',
-            css: 'twoMenu_imge32',
+            id: "b2",
+            label: "synthesis.twod",
+            name: "浜岀淮",
+            css: "twoMenu_imge22",
           },
           {
-            id: 'c3',
-            label: 'synthesis.mouseroaming',
-            name: '榧犳爣婕父',
-            css: 'twoMenu_imge33',
+            id: "b3",
+            label: "synthesis.threed",
+            name: "涓夌淮",
+            css: "twoMenu_imge23",
           },
           {
-            id: 'c4',
-            label: 'synthesis.snapshot',
-            name: '鍦板浘蹇収',
-            css: 'twoMenu_imge34',
+            id: "b4",
+            label: "synthesis.full",
+            name: "鍏ㄥ浘",
+            css: "twoMenu_imge24",
           },
-
+          {
+            id: "b5",
+            label: "synthesis.zommin",
+            name: "鏀惧ぇ",
+            css: "twoMenu_imge25",
+          },
+          {
+            id: "b6",
+            label: "synthesis.zoomout",
+            name: "缂╁皬",
+            css: "twoMenu_imge26",
+          },
+          {
+            id: "b7",
+            label: "synthesis.rule",
+            name: "姣斾緥灏�",
+            css: "twoMenu_imge27",
+          },
+          {
+            id: "b8",
+            label: "synthesis.compass",
+            name: "鎸囧寳閽�",
+            css: "twoMenu_imge28",
+          },
+          {
+            id: "b9",
+            label: "synthesis.undergroundMode",
+            name: "鍦颁笅妯″紡",
+            css: "twoMenu_imge29",
+          },
         ],
         [
           {
-            id: 'd1',
-            label: 'synthesis.contouranalysis',
-            name: '绛夐珮绾�',
-            css: 'twoMenu_imge41',
+            id: "c1",
+            label: "synthesis.someroaming",
+            name: "鐐规极娓�",
+            css: "twoMenu_imge31",
           },
           {
-            id: 'd2',
-            label: 'synthesis.slopeanalysis',
-            name: '鍧″害鍒嗘瀽',
-            css: 'twoMenu_imge42',
+            id: "c2",
+            label: "synthesis.lineroaming",
+            name: "绾胯矾婕父",
+            css: "twoMenu_imge32",
           },
           {
-            id: 'd3',
-            label: 'synthesis.pathanalysis',
-            name: '璺緞鍒嗘瀽',
-            css: 'twoMenu_imge43',
+            id: "c3",
+            label: "synthesis.mouseroaming",
+            name: "榧犳爣婕父",
+            css: "twoMenu_imge33",
           },
           {
-            id: 'd4',
-            label: 'synthesis.cuttinganalysis',
-            name: '鍦板舰鍓栧垏',
-            css: 'twoMenu_imge44',
+            id: "c4",
+            label: "synthesis.snapshot",
+            name: "鍦板浘蹇収",
+            css: "twoMenu_imge34",
+          },
+        ],
+        [
+          {
+            id: "d1",
+            label: "synthesis.contouranalysis",
+            name: "绛夐珮绾�",
+            css: "twoMenu_imge41",
           },
           {
-            id: 'd5',
-            label: 'synthesis.floodanalysis',
-            name: '娣规病鍒嗘瀽',
-            css: 'twoMenu_imge45',
+            id: "d2",
+            label: "synthesis.slopeanalysis",
+            name: "鍧″害鍒嗘瀽",
+            css: "twoMenu_imge42",
           },
           {
-            id: 'd6',
-            label: 'synthesis.earthworkcalculation',
-            name: '鍦熸柟閲忚绠�',
-            css: 'twoMenu_imge46',
+            id: "d3",
+            label: "synthesis.pathanalysis",
+            name: "璺緞鍒嗘瀽",
+            css: "twoMenu_imge43",
           },
           {
-            id: 'd7',
-            label: 'synthesis.crosssectionanalysis',
-            name: '涓夌淮鎴潰',
-            css: 'twoMenu_imge47',
+            id: "d4",
+            label: "synthesis.cuttinganalysis",
+            name: "鍦板舰鍓栧垏",
+            css: "twoMenu_imge44",
           },
           {
-            id: 'd8',
-            label: 'synthesis.imagecontrast',
-            name: '褰卞儚瀵规瘮',
-            css: 'twoMenu_imge48',
+            id: "d5",
+            label: "synthesis.floodanalysis",
+            name: "娣规病鍒嗘瀽",
+            css: "twoMenu_imge45",
           },
           {
-            id: 'd9',
-            label: 'synthesis.pipelineAnalysis',
-            name: '绠¢亾鍒嗘瀽',
-            css: 'twoMenu_imge49',
+            id: "d6",
+            label: "synthesis.earthworkcalculation",
+            name: "鍦熸柟閲忚绠�",
+            css: "twoMenu_imge46",
           },
           {
-            id: 'd10',
-            label: 'synthesis.flatterrain',
-            name: '鍦板舰骞虫暣',
-            css: 'twoMenu_imge410',
+            id: "d7",
+            label: "synthesis.crosssectionanalysis",
+            name: "涓夌淮鎴潰",
+            css: "twoMenu_imge47",
           },
           {
-            id: 'd11',
-            label: 'synthesis.terrainexcavation',
-            name: '鍦板舰寮�鎸�',
-            css: 'twoMenu_imge411',
+            id: "d8",
+            label: "synthesis.imagecontrast",
+            name: "褰卞儚瀵规瘮",
+            css: "twoMenu_imge48",
+          },
+          {
+            id: "d9",
+            label: "synthesis.pipelineAnalysis",
+            name: "绠¢亾鍒嗘瀽",
+            css: "twoMenu_imge49",
+          },
+          {
+            id: "d10",
+            label: "synthesis.flatterrain",
+            name: "鍦板舰骞虫暣",
+            css: "twoMenu_imge410",
+          },
+          {
+            id: "d11",
+            label: "synthesis.terrainexcavation",
+            name: "鍦板舰寮�鎸�",
+            css: "twoMenu_imge411",
           },
           {
             id: "d12",
@@ -237,73 +225,71 @@
             name: "鍦嗗舰瑙嗗煙鍒嗘瀽",
             css: "twoMenu_imge414",
           },
-
-
         ],
         [
           {
-            id: 'e1',
-            label: 'synthesis.attributequery',
-            name: '灞炴�ф煡璇�',
-            css: 'twoMenu_imge51',
+            id: "e1",
+            label: "synthesis.attributequery",
+            name: "灞炴�ф煡璇�",
+            css: "twoMenu_imge51",
           },
           {
-            id: 'e2',
-            label: 'synthesis.rangequery',
-            name: '绌洪棿鏌ヨ',
-            css: 'twoMenu_imge52',
+            id: "e2",
+            label: "synthesis.rangequery",
+            name: "绌洪棿鏌ヨ",
+            css: "twoMenu_imge52",
           },
         ],
         [
           {
-            id: 'f1',
-            label: 'synthesis.gpsrtk',
-            name: '鍧愭爣瀹氫綅',
-            css: 'twoMenu_imge61',
+            id: "f1",
+            label: "synthesis.gpsrtk",
+            name: "鍧愭爣瀹氫綅",
+            css: "twoMenu_imge61",
           },
           {
-            id: 'f2',
-            label: 'synthesis.placenamelocation',
-            name: '鍦板悕瀹氫綅',
-            css: 'twoMenu_imge62',
+            id: "f2",
+            label: "synthesis.placenamelocation",
+            name: "鍦板悕瀹氫綅",
+            css: "twoMenu_imge62",
           },
         ],
         [
           {
-            id: 'j1',
-            label: 'synthesis.synthobj.m1',
-            name: '琛ㄩ潰璺濈',
-            css: 'twoMenu_imge71',
+            id: "j1",
+            label: "synthesis.synthobj.m1",
+            name: "琛ㄩ潰璺濈",
+            css: "twoMenu_imge71",
           },
           {
-            id: 'j2',
-            label: 'synthesis.synthobj.m4',
-            name: '鍨傜洿楂樺害',
-            css: 'twoMenu_imge72',
+            id: "j2",
+            label: "synthesis.synthobj.m4",
+            name: "鍨傜洿楂樺害",
+            css: "twoMenu_imge72",
           },
           {
-            id: 'j3',
-            label: 'synthesis.synthobj.m6',
-            name: '骞抽潰闈㈢Н',
-            css: 'twoMenu_imge73',
+            id: "j3",
+            label: "synthesis.synthobj.m6",
+            name: "骞抽潰闈㈢Н",
+            css: "twoMenu_imge73",
           },
           {
-            id: 'j4',
-            label: 'synthesis.synthobj.m7',
-            name: '浣撶Н',
-            css: 'twoMenu_imge74',
+            id: "j4",
+            label: "synthesis.synthobj.m7",
+            name: "浣撶Н",
+            css: "twoMenu_imge74",
           },
           {
-            id: 'j5',
-            label: 'synthesis.synthobj.m5',
-            name: '琛ㄩ潰闈㈢Н',
-            css: 'twoMenu_imge75',
+            id: "j5",
+            label: "synthesis.synthobj.m5",
+            name: "琛ㄩ潰闈㈢Н",
+            css: "twoMenu_imge75",
           },
           {
-            id: 'j6',
-            label: 'synthesis.synthobj.m2',
-            name: '绌洪棿璺濈',
-            css: 'twoMenu_imge76',
+            id: "j6",
+            label: "synthesis.synthobj.m2",
+            name: "绌洪棿璺濈",
+            css: "twoMenu_imge76",
           },
           {
             id: "j7",
@@ -314,87 +300,88 @@
         ],
         [
           {
-            id: 'h1',
-            label: 'synthesis.point',
-            name: '鐐�',
-            css: 'twoMenu_imge81',
+            id: "h1",
+            label: "synthesis.point",
+            name: "鐐�",
+            css: "twoMenu_imge81",
           },
           {
-            id: 'h8',
-            label: 'synthesis.addlabel',
-            name: '鏂囧瓧',
-            css: 'twoMenu_imge88',
+            id: "h8",
+            label: "synthesis.addlabel",
+            name: "鏂囧瓧",
+            css: "twoMenu_imge88",
           },
           {
-            id: 'h2',
-            label: 'synthesis.line',
-            name: '绾�',
-            css: 'twoMenu_imge82',
+            id: "h2",
+            label: "synthesis.line",
+            name: "绾�",
+            css: "twoMenu_imge82",
           },
           {
-            id: 'h3',
-            label: 'synthesis.rectangle',
-            name: '鐭╁舰',
-            css: 'twoMenu_imge83',
+            id: "h3",
+            label: "synthesis.rectangle",
+            name: "鐭╁舰",
+            css: "twoMenu_imge83",
           },
           {
-            id: 'h4',
-            label: 'synthesis.polygon',
-            name: '澶氳竟褰�',
-            css: 'twoMenu_imge84',
+            id: "h4",
+            label: "synthesis.polygon",
+            name: "澶氳竟褰�",
+            css: "twoMenu_imge84",
           },
           {
-            id: 'h5',
-            label: 'synthesis.import',
-            name: '瀵煎叆KML',
-            css: 'twoMenu_imge85',
+            id: "h5",
+            label: "synthesis.import",
+            name: "瀵煎叆KML",
+            css: "twoMenu_imge85",
           },
           {
-            id: 'h6',
-            label: 'synthesis.export',
-            name: '瀵煎嚭KML',
-            css: 'twoMenu_imge86',
+            id: "h6",
+            label: "synthesis.export",
+            name: "瀵煎嚭KML",
+            css: "twoMenu_imge86",
           },
 
           {
-            id: 'h9',
-            label: 'synthesis.import1',
-            name: '瀵煎叆SHP',
-            css: 'twoMenu_imge85',
+            id: "h9",
+            label: "synthesis.import1",
+            name: "瀵煎叆SHP",
+            css: "twoMenu_imge85",
           },
           {
-            id: 'h10',
-            label: 'synthesis.export1',
-            name: '瀵煎嚭SHP',
-            css: 'twoMenu_imge86',
+            id: "h10",
+            label: "synthesis.export1",
+            name: "瀵煎嚭SHP",
+            css: "twoMenu_imge86",
           },
 
-
           {
-            id: 'h7',
-            label: 'synthesis.removepaint',
-            name: '娓呴櫎',
-            css: 'twoMenu_imge87',
+            id: "h7",
+            label: "synthesis.removepaint",
+            name: "娓呴櫎",
+            css: "twoMenu_imge87",
           },
-        ], [
+        ],
+        [
           {
-            id: 'i1',
-            name: '鍦烘櫙鎻愬彇',
-            label: 'synthesis.sceneExtraction',
-            css: 'twoMenu_imge12',
+            id: "i1",
+            name: "鍦烘櫙鎻愬彇",
+            label: "synthesis.sceneExtraction",
+            css: "twoMenu_imge12",
           },
           {
-            id: 'i2',
-            label: 'synthesis.release',
-            name: '鍦烘櫙鍙戝竷',
-            css: 'twoMenu_imge13',
-          }, {
-            id: 'i3',
-            label: 'synthesis.tdisplay',
-            name: '涓夌淮婕旂ず',
-            css: 'twoMenu_imge35',
+            id: "i2",
+            label: "synthesis.release",
+            name: "鍦烘櫙鍙戝竷",
+            css: "twoMenu_imge13",
           },
-        ]
+          {
+            id: "i3",
+            label: "synthesis.tdisplay",
+            name: "涓夌淮婕旂ず",
+            css: "twoMenu_imge35",
+          },
+        ],
       ],
       isRuler: false,
       isNaviget: false,
@@ -406,6 +393,9 @@
       Excavation: false,
       entityaLayers: [],
       isMenuFlag: null,
+      isRouter: false, //璺緞鍒嗘瀽
+      isPiple: false, //绠¢亾鍒嗘瀽
+      DXZPState: null, //鍦板舰鏁村钩
     };
   },
   methods: {
@@ -424,7 +414,7 @@
       if (this.isMenuFlag == "d") {
         this.clearAllAnalsy();
       }
-      if (this.isMenuFlag !=val) {
+      if (this.isMenuFlag != val) {
         sgworld.Creator.SimpleGraphic.clear();
         this.isMenuFlag = val;
         if (this.entityaLayers.length != 0) {
@@ -446,100 +436,97 @@
       this.showTwoMenuFlag = res.id;
 
       switch (val) {
-
-        
-
-        case 'a': //鍥惧眰绠$悊
-
+        case "a": //鍥惧眰绠$悊
           this.setCoverage(res.id);
           break;
-        case 'b':
+        case "b":
           this.setViewport(res.id);
           break;
-        case 'c':
+        case "c":
           this.setWander(res.id);
           break;
-        case 'd':
+        case "d":
           this.setAnalsy(res.id);
           break;
-        case 'e':
+        case "e":
           this.setIquery(res.id);
           break;
-        case 'f':
+        case "f":
           this.setOrientation(res.id);
           break;
-        case 'j':
+        case "j":
           this.setMeasurement(res.id);
           break;
-        case 'h':
+        case "h":
           sgworld.Creator.SimpleGraphic.edit(true, { editProp: true });
           this.setPlot(res.id);
           break;
-
       }
     },
     setPlot(res) {
       switch (res) {
-        case 'h1':
+        case "h1":
           sgworld.Creator.createSimpleGraphic(
-            'point',
+            "point",
             {},
-            function (entity) { }
+            function (entity) {}
           );
           break;
-        case 'h2':
+        case "h2":
           sgworld.Creator.createSimpleGraphic(
-            'polyline',
+            "polyline",
             {},
-            function (entity) { }
+            function (entity) {}
           );
           break;
-        case 'h3':
+        case "h3":
           sgworld.Creator.createSimpleGraphic(
-            'rectangle',
+            "rectangle",
             {},
-            function (entity) { }
+            function (entity) {}
           );
           break;
-        case 'h4':
+        case "h4":
           sgworld.Creator.createSimpleGraphic(
-            'polygon',
+            "polygon",
             {},
-            function (entity) { }
+            function (entity) {}
           );
           break;
-        case 'h5':
+        case "h5":
           this.handleOpenClick();
           break;
-        case 'h6':
+        case "h6":
           this.handleSaveClick();
           break;
-        case 'h9':
+        case "h9":
           // this.handleOpenShp();
           $("#shpFile").click();
           break;
-        case 'h10':
+        case "h10":
           this.handleSaveShp();
           break;
-        case 'h7':
+        case "h7":
           sgworld.Creator.SimpleGraphic.clear();
           for (var i in this.entityaLayers) {
             sgworld.Viewer.entities.remove(this.entityaLayers[i]);
           }
           this.entityaLayers = [];
           break;
-        case 'h8':
-          sgworld.Creator.createSimpleGraphic('label', {}, function (entity) {
-
-          });
+        case "h8":
+          sgworld.Creator.createSimpleGraphic(
+            "label",
+            {},
+            function (entity) {}
+          );
           break;
       }
     },
     handleSaveClick() {
       let funDownload = function (content, filename) {
-        let eleLink = document.createElement('a');
+        let eleLink = document.createElement("a");
         eleLink.download = filename;
-        eleLink.style.display = 'none';
+        eleLink.style.display = "none";
         // 瀛楃鍐呭杞彉鎴恇lob鍦板潃
         let blob = new Blob([content]);
         eleLink.href = URL.createObjectURL(blob);
@@ -567,14 +554,13 @@
         console.log(entities);
         // let promise = Cesium.exportKml({ entities: entities });
         promise.then(function (e) {
-          funDownload(e.kml, new Date().getTime() + '.kml');
+          funDownload(e.kml, new Date().getTime() + ".kml");
         });
       } else {
-        alert('褰撳墠鍦烘櫙娌℃湁entities瀹炰綋');
+        alert("褰撳墠鍦烘櫙娌℃湁entities瀹炰綋");
       }
     },
     handleSaveShp() {
-
       var entities = sgworld.Viewer.entities.values;
       if (entities.length == 0) {
         return;
@@ -582,87 +568,105 @@
       var std = [];
       for (var i in entities) {
         var type, fillColor, alpha, wkt, name;
-        var bak = {}
+        var bak = {};
 
         if (entities[i].name) {
-
-          name = entities[i].name
+          name = entities[i].name;
         }
         if (entities[i].properties) {
-
           var properties = entities[i].properties.propertyNames;
           for (var j in properties) {
             bak[properties[j]] = entities[i].properties[properties[j]]._value;
           }
         } else {
           bak = {
-            "name": entities[i].name
-          }
+            name: entities[i].name,
+          };
         }
-        if (entities[i].rectangle) {//鐭╁舰
-          type = 'rectangle'
-          var east = Cesium.Math.toDegrees(entities[i].rectangle.coordinates.getValue().east);
-          var north = Cesium.Math.toDegrees(entities[i].rectangle.coordinates.getValue().north);
-          var west = Cesium.Math.toDegrees(entities[i].rectangle.coordinates.getValue().west);
-          var south = Cesium.Math.toDegrees(entities[i].rectangle.coordinates.getValue().south);
-          var line = turf.polygon([[[east, north], [west, north], [west, south], [east, south], [east, north]]])
-          wkt = this.$wkt.convert(line.geometry)
+        if (entities[i].rectangle) {
+          //鐭╁舰
+          type = "rectangle";
+          var east = Cesium.Math.toDegrees(
+            entities[i].rectangle.coordinates.getValue().east
+          );
+          var north = Cesium.Math.toDegrees(
+            entities[i].rectangle.coordinates.getValue().north
+          );
+          var west = Cesium.Math.toDegrees(
+            entities[i].rectangle.coordinates.getValue().west
+          );
+          var south = Cesium.Math.toDegrees(
+            entities[i].rectangle.coordinates.getValue().south
+          );
+          var line = turf.polygon([
+            [
+              [east, north],
+              [west, north],
+              [west, south],
+              [east, south],
+              [east, north],
+            ],
+          ]);
+          wkt = this.$wkt.convert(line.geometry);
           var fill = entities[i].rectangle._material._color._value;
-          fillColor = fill.red + ',' + fill.green + ',' + fill.blue;
+          fillColor = fill.red + "," + fill.green + "," + fill.blue;
           alpha = fill.alpha;
-        } else if (entities[i].point) {//鐐�
-          type = 'point'
+        } else if (entities[i].point) {
+          //鐐�
+          type = "point";
           let ellipsoid = Viewer.scene.globe.ellipsoid;
-          let cartographic = ellipsoid.cartesianToCartographic(entities[i].position.getValue());
+          let cartographic = ellipsoid.cartesianToCartographic(
+            entities[i].position.getValue()
+          );
           let lat = Cesium.Math.toDegrees(cartographic.latitude);
           let lng = Cesium.Math.toDegrees(cartographic.longitude);
           let alt = cartographic.height;
-          let point = turf.point([lng, lat, alt])
-          wkt = this.$wkt.convert(point.geometry)
+          let point = turf.point([lng, lat, alt]);
+          wkt = this.$wkt.convert(point.geometry);
           var fill = entities[i].point._color._value;
-          fillColor = fill.red + ',' + fill.green + ',' + fill.blue;
+          fillColor = fill.red + "," + fill.green + "," + fill.blue;
           alpha = fill.alpha;
-
-
         } else if (entities[i].polygon) {
-          type = 'polygon';
+          type = "polygon";
           var fill = entities[i].polygon._material._color._value;
-          fillColor = fill.red + ',' + fill.green + ',' + fill.blue;
+          fillColor = fill.red + "," + fill.green + "," + fill.blue;
           alpha = fill.alpha;
           var geometry = entities[i].polygon.hierarchy.getValue().positions;
           var coordinates = [];
           for (var k in geometry) {
-            coordinates.push(this.setCartesianToEightFour(geometry[k]))
+            coordinates.push(this.setCartesianToEightFour(geometry[k]));
           }
           if (coordinates[0] != coordinates[1]) {
-            coordinates.push(coordinates[0])
+            coordinates.push(coordinates[0]);
           }
-          var polygon = turf.polygon([coordinates])
-          wkt = this.$wkt.convert(polygon.geometry)
+          var polygon = turf.polygon([coordinates]);
+          wkt = this.$wkt.convert(polygon.geometry);
         } else if (entities[i].polyline) {
           type = "polyline";
           var coordinates = [];
           var geometry = entities[i].polyline.positions.getValue();
           for (var k in geometry) {
-            coordinates.push(this.setCartesianToEightFour(geometry[k]))
+            coordinates.push(this.setCartesianToEightFour(geometry[k]));
           }
-          var polyline = turf.lineString(coordinates)
-          wkt = this.$wkt.convert(polyline.geometry)
+          var polyline = turf.lineString(coordinates);
+          wkt = this.$wkt.convert(polyline.geometry);
 
           var fill = entities[i].polyline._material._color._value;
-          fillColor = fill.red + ',' + fill.green + ',' + fill.blue;
+          fillColor = fill.red + "," + fill.green + "," + fill.blue;
           alpha = fill.alpha;
         } else if (entities[i].label) {
           type = "label";
           let ellipsoid = Viewer.scene.globe.ellipsoid;
-          let cartographic = ellipsoid.cartesianToCartographic(entities[i].position.getValue());
+          let cartographic = ellipsoid.cartesianToCartographic(
+            entities[i].position.getValue()
+          );
           let lat = Cesium.Math.toDegrees(cartographic.latitude);
           let lng = Cesium.Math.toDegrees(cartographic.longitude);
           let alt = cartographic.height;
-          let point = turf.point([lng, lat, alt])
-          wkt = this.$wkt.convert(point.geometry)
+          let point = turf.point([lng, lat, alt]);
+          wkt = this.$wkt.convert(point.geometry);
           var fill = entities[i].label.backgroundColor._value;
-          fillColor = fill.red + ',' + fill.green + ',' + fill.blue;
+          fillColor = fill.red + "," + fill.green + "," + fill.blue;
           alpha = fill.alpha;
         }
         std.push({
@@ -672,31 +676,34 @@
           opacity: alpha,
           name: name,
           bak: JSON.stringify(bak),
-          wkt: wkt
-        })
+          wkt: wkt,
+        });
       }
       $.ajax({
         url: BASE_URL + "/comprehensive/downloadShp?token=" + getToken(),
         type: "POST",
         data: JSON.stringify(std),
-        dataType: 'json', // html銆乯son銆乯sonp銆乻cript銆乼ext
+        dataType: "json", // html銆乯son銆乯sonp銆乻cript銆乼ext
         contentType: "application/json", // "application/x-www-form-urlencoded"
         success: (rs) => {
           if (rs && rs.code == 200) {
-            var a = document.createElement('a'); // 鍒涘缓涓�涓猘鏍囩鍏冪礌
-            a.style.display = 'none'; // 璁剧疆鍏冪礌涓嶅彲瑙�
+            var a = document.createElement("a"); // 鍒涘缓涓�涓猘鏍囩鍏冪礌
+            a.style.display = "none"; // 璁剧疆鍏冪礌涓嶅彲瑙�
 
-            a.href = BASE_URL + "/comprehensive/downloadFile?token=" + getToken() + "&guid=" + rs.result;
+            a.href =
+              BASE_URL +
+              "/comprehensive/downloadFile?token=" +
+              getToken() +
+              "&guid=" +
+              rs.result;
 
             document.body.appendChild(a); // 鍔犲叆
             a.click(); // 瑙﹀彂鐐瑰嚮,涓嬭浇
             document.body.removeChild(a); // 閲婃斁
           }
         },
-        error: function (e) {
-        }
+        error: function (e) {},
       });
-
     },
     handleOpenShp() {
       var formData = new FormData();
@@ -724,35 +731,36 @@
         processData: false,
         contentType: false,
         success: function (rs) {
-
           if (rs.code == 200) {
             that.showShpEntity(rs.result);
           }
         },
         error: function (e) {
           console.error(e);
-        }
+        },
       });
 
-      document.getElementById("shpFile").value = ""
-
+      document.getElementById("shpFile").value = "";
     },
     showShpEntity(res) {
-
       for (var i in res) {
         var wkt = this.$wkt.parse(res[i].wkt);
         var fillColor = res[i].fillColor.split(",");
-        var color = new Cesium.Color(parseFloat(fillColor[0]), parseFloat(fillColor[1]), parseFloat(fillColor[2]), res[i].opacity);
-        var name = res[i].name
+        var color = new Cesium.Color(
+          parseFloat(fillColor[0]),
+          parseFloat(fillColor[1]),
+          parseFloat(fillColor[2]),
+          res[i].opacity
+        );
+        var name = res[i].name;
         switch (res[i].type) {
-          case 'rectangle':
-          case 'polygon':
-
+          case "rectangle":
+          case "polygon":
             var std = [];
             var geo = wkt.coordinates[0];
             for (var i in geo) {
-              std.push(geo[i][0])
-              std.push(geo[i][1])
+              std.push(geo[i][0]);
+              std.push(geo[i][1]);
             }
             var entity = Viewer.entities.add({
               name: name,
@@ -762,14 +770,17 @@
                 material: color,
                 outline: true,
                 outlineColor: color,
-              }
-            })
-            this.entityaLayers.push(entity)
+              },
+            });
+            this.entityaLayers.push(entity);
             break;
-          case 'point':
+          case "point":
             let point = Viewer.entities.add({
               name: name,
-              position: Cesium.Cartesian3.fromDegrees(wkt.coordinates[0], wkt.coordinates[1]), //缁忕含搴﹁浆涓栫晫鍧愭爣
+              position: Cesium.Cartesian3.fromDegrees(
+                wkt.coordinates[0],
+                wkt.coordinates[1]
+              ), //缁忕含搴﹁浆涓栫晫鍧愭爣
               point: {
                 show: true,
                 color: color,
@@ -781,14 +792,14 @@
               },
             });
 
-            this.entityaLayers.push(point)
+            this.entityaLayers.push(point);
             break;
-          case 'polyline':
+          case "polyline":
             var std = [];
             var geo = wkt.coordinates;
             for (var i in geo) {
-              std.push(geo[i][0])
-              std.push(geo[i][1])
+              std.push(geo[i][0]);
+              std.push(geo[i][1]);
             }
             let line = Viewer.entities.add({
               name: name,
@@ -798,25 +809,28 @@
                 width: 10,
                 material: color,
                 clampToGround: true,
-              }
-            })
+              },
+            });
 
-            this.entityaLayers.push(line)
+            this.entityaLayers.push(line);
             break;
-          case 'label':
+          case "label":
             const label = Viewer.entities.add({
-              position: Cesium.Cartesian3.fromDegrees(wkt.coordinates[0], wkt.coordinates[1]),
+              position: Cesium.Cartesian3.fromDegrees(
+                wkt.coordinates[0],
+                wkt.coordinates[1]
+              ),
               label: {
                 text: name,
                 fillColor: color,
-                font: '28px',
+                font: "28px",
                 horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
                 verticalOrigin: Cesium.VerticalOrigin.TOP,
                 heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
                 disableDepthTestDistance: Number.POSITIVE_INFINITY,
               },
-            })
-            this.entityaLayers.push(label)
+            });
+            this.entityaLayers.push(label);
             break;
         }
       }
@@ -829,13 +843,13 @@
       let lat = Cesium.Math.toDegrees(cartographic.latitude);
       let lng = Cesium.Math.toDegrees(cartographic.longitude);
       let alt = cartographic.height;
-      std = [lng, lat, alt]
+      std = [lng, lat, alt];
       return std;
     },
     handleOpenClick() {
       var that = this;
       sgworld.Creator.SimpleGraphic.edit(true, { editProp: true });
-      let fileInput = document.querySelector('.file');
+      let fileInput = document.querySelector(".file");
       fileInput.onchange = function (evt) {
         let files = evt.target.files;
         if (files.length > 0) {
@@ -880,26 +894,39 @@
       fileInput.click();
     },
     setLayerScene() {
-
       var URL = window.location.href.split("#");
-      this.openwindow({ url: URL[0] + 'LfSKyline/index.html' });
+      this.openwindow({ url: URL[0] + "LfSKyline/index.html" });
     },
 
     openwindow(data) {
-      var url = data.url;                                          //杞悜缃戦〉鐨勫湴鍧�;  
-      var name = data.title || '閫夋嫨瑕佹坊鍔犵殑椤甸潰';                  //缃戦〉鍚嶇О锛屽彲涓虹┖;  
-      var iWidth = window.screen.width;                           //寮瑰嚭绐楀彛鐨勫搴�;  
-      var iHeight = window.screen.height;      //寮瑰嚭绐楀彛鐨勯珮搴�;
-      var iTop = 0       //鑾峰緱绐楀彛鐨勫瀭鐩翠綅缃�;  
-      var iLeft = 0;        //鑾峰緱绐楀彛鐨勬按骞充綅缃�;  
-      window.open(url, name, 'height=' + iHeight + ',,innerHeight=' + iHeight + ',width=' + iWidth + ',innerWidth=' + iWidth + ',top=' + iTop + ',left=' + iLeft + ',toolbar=no,menubar=no,scrollbars=auto,resizeable=no,location=no,status=no');
+      var url = data.url; //杞悜缃戦〉鐨勫湴鍧�;
+      var name = data.title || "閫夋嫨瑕佹坊鍔犵殑椤甸潰"; //缃戦〉鍚嶇О锛屽彲涓虹┖;
+      var iWidth = window.screen.width; //寮瑰嚭绐楀彛鐨勫搴�;
+      var iHeight = window.screen.height; //寮瑰嚭绐楀彛鐨勯珮搴�;
+      var iTop = 0; //鑾峰緱绐楀彛鐨勫瀭鐩翠綅缃�;
+      var iLeft = 0; //鑾峰緱绐楀彛鐨勬按骞充綅缃�;
+      window.open(
+        url,
+        name,
+        "height=" +
+          iHeight +
+          ",,innerHeight=" +
+          iHeight +
+          ",width=" +
+          iWidth +
+          ",innerWidth=" +
+          iWidth +
+          ",top=" +
+          iTop +
+          ",left=" +
+          iLeft +
+          ",toolbar=no,menubar=no,scrollbars=auto,resizeable=no,location=no,status=no"
+      );
     },
-
-
 
     setMeasurement(res) {
       switch (res) {
-        case 'j1':
+        case "j1":
           var measure = window.sgworld.Command.execute(
             0,
             2,
@@ -907,11 +934,11 @@
             (data) => {
               data.id = window.sgworld.Core.getuid();
               this.measureData.set(data.id, measure);
-              this.openMeasureResultInfo('琛ㄩ潰璺濈', data);
+              this.openMeasureResultInfo("琛ㄩ潰璺濈", data);
             }
           );
           break;
-        case 'j6':
+        case "j6":
           var measure = window.sgworld.Command.execute(
             0,
             10,
@@ -919,7 +946,7 @@
             (data) => {
               data.id = window.sgworld.Core.getuid();
               this.measureData.set(data.id, measure);
-              this.openMeasureResultInfo('绌洪棿璺濈', data);
+              this.openMeasureResultInfo("绌洪棿璺濈", data);
             }
           );
           break;
@@ -930,11 +957,10 @@
         //     this.measureData.set(data.id, measure);
         //     this.openMeasureResultInfo('骞抽潰闈㈢Н', data);
 
-
         //   });
 
         //   break;
-        case 'j2':
+        case "j2":
           var measure = window.sgworld.Command.execute(
             0,
             5,
@@ -942,11 +968,11 @@
             (data) => {
               data.id = window.sgworld.Core.getuid();
               this.measureData.set(data.id, measure);
-              this.openMeasureResultInfo('鍨傜洿楂樺害', data);
+              this.openMeasureResultInfo("鍨傜洿楂樺害", data);
             }
           );
           break;
-        case 'j5':
+        case "j5":
           var measure = window.sgworld.Command.execute(
             0,
             8,
@@ -958,11 +984,11 @@
             (data) => {
               data.id = window.sgworld.Core.getuid();
               this.measureData.set(data.id, measure);
-              this.openMeasureResultInfo('琛ㄩ潰闈㈢Н', data);
+              this.openMeasureResultInfo("琛ㄩ潰闈㈢Н", data);
             }
           );
           break;
-        case 'j3':
+        case "j3":
           var measure = window.sgworld.Command.execute(
             0,
             3,
@@ -970,30 +996,31 @@
             (data) => {
               data.id = window.sgworld.Core.getuid();
               this.measureData.set(data.id, measure);
-              this.openMeasureResultInfo('骞抽潰闈㈢Н', data);
+              this.openMeasureResultInfo("骞抽潰闈㈢Н", data);
             }
           );
           break;
-        case 'j4':
+        case "j4":
           var volumetricMeasurementTool =
             window.sgworld.Creator.createVolumetricMeasureTool();
           volumetricMeasurementTool.startDrawing(
             { ...this.colorAll, onlyTerrain: false },
-            'auto',
+            "auto",
             (data) => {
               if (volumetricMeasurementTool.popupData) {
-                volumetricMeasurementTool.popupData.value = `濉柟锛�${data.volume.fill.toFixed(4) + data.unit.fill
-                  }<br>鎸栨柟锛�${data.volume.dig.toFixed(4) + data.unit.dig}`;
+                volumetricMeasurementTool.popupData.value = `濉柟锛�${
+                  data.volume.fill.toFixed(4) + data.unit.fill
+                }<br>鎸栨柟锛�${data.volume.dig.toFixed(4) + data.unit.dig}`;
               } else {
                 data.id = window.sgworld.Core.getuid();
                 this.measureData.set(data.id, volumetricMeasurementTool);
-                let popupData = this.openMeasureResultInfo('浣撶Н鏂归噺', data);
+                let popupData = this.openMeasureResultInfo("浣撶Н鏂归噺", data);
                 volumetricMeasurementTool.popupData = popupData;
               }
             }
           );
           break;
-        case 'j8':
+        case "j8":
           var measure = window.sgworld.Command.execute(
             0,
             12,
@@ -1001,7 +1028,7 @@
             (data) => {
               data.id = window.sgworld.Core.getuid();
               this.measureData.set(data.id, measure);
-              this.openMeasureResultInfo('瑙掑害', data);
+              this.openMeasureResultInfo("瑙掑害", data);
             }
           );
           break;
@@ -1010,40 +1037,41 @@
             1,
             11,
             this.colorAll,
-            data => {
-              data.id = window.sgworld.Core.getuid()
-              this.measureData.set(data.id, measure)
-              this.openMeasureResultInfo("娴锋嫈楂樺害", data)
+            (data) => {
+              data.id = window.sgworld.Core.getuid();
+              this.measureData.set(data.id, measure);
+              this.openMeasureResultInfo("娴锋嫈楂樺害", data);
             }
-          )
-          break
+          );
+          break;
       }
     },
     openMeasureResultInfo(name, data) {
-      let info = '';
+      let info = "";
       switch (name) {
-        case '琛ㄩ潰璺濈':
-        case '绌洪棿璺濈':
-          info = '鎬婚暱搴︼細' + data.distance[data.distance.length - 1];
+        case "琛ㄩ潰璺濈":
+        case "绌洪棿璺濈":
+          info = "鎬婚暱搴︼細" + data.distance[data.distance.length - 1];
           break;
-        case '娴锋嫈楂樺害':
-          info = '楂樺害锛�' + data.height;
+        case "娴锋嫈楂樺害":
+          info = "楂樺害锛�" + data.height;
           break;
-        case '鍨傜洿楂樺害':
+        case "鍨傜洿楂樺害":
           info = `${data.gddistance}<br>${data.kjdistance}<br>${data.spdistance}`;
           break;
-        case '琛ㄩ潰闈㈢Н':
-        case '骞抽潰闈㈢Н':
+        case "琛ㄩ潰闈㈢Н":
+        case "骞抽潰闈㈢Н":
           info = data.mj;
           break;
-        case '瑙掑害':
+        case "瑙掑害":
           data.labels.forEach((label) => {
-            info += label.label.text.getValue() + '<br>';
+            info += label.label.text.getValue() + "<br>";
           });
           break;
-        case '浣撶Н鏂归噺':
-          info = `濉柟锛�${data.volume.fill.toFixed(4) + data.unit.fill
-            }<br>鎸栨柟锛�${data.volume.dig.toFixed(4) + data.unit.dig}`;
+        case "浣撶Н鏂归噺":
+          info = `濉柟锛�${
+            data.volume.fill.toFixed(4) + data.unit.fill
+          }<br>鎸栨柟锛�${data.volume.dig.toFixed(4) + data.unit.dig}`;
           break;
       }
       return (
@@ -1075,13 +1103,13 @@
     },
     setIquery(res) {
       switch (res) {
-        case 'e2':
+        case "e2":
           this.$store.state.mapMenuBoolean = true;
-          this.$store.state.mapMenuBoxFlag = '1';
+          this.$store.state.mapMenuBoxFlag = "1";
           break;
-        case 'e1':
+        case "e1":
           this.$store.state.mapMenuBoolean = true;
-          this.$store.state.mapMenuBoxFlag = '2';
+          this.$store.state.mapMenuBoxFlag = "2";
           break;
       }
     },
@@ -1099,101 +1127,141 @@
       //     break;
       // }
     },
-
-
+    ClearDraw() {
+      //console.log(sgworld);
+      //   console.log(sgworld.drawObj.drawHandler);
+      //   sgworld.drawObj.drawHandler.destroy();
+      // 聽 sgworld.drawObj.end()
+    },
 
     setAnalsy(res) {
       //this.$refs && this.$refs.queryinfo && this.$refs.queryinfo.close("queryinfo");
+
       var that = this;
       switch (res) {
-        case 'd1':
+        case "d1": //绛夐珮绾垮垎鏋�
           that.isolineFlag = !that.isolineFlag;
           elevationTool.tf = that.isolineFlag;
           elevationTool.render();
           break;
-        case 'd2':
+        case "d2": //鍧″害鍒嗘瀽
           that.isslopeFlag = !that.isslopeFlag;
-          window.PDelevationTool= new SmartEarth.ElevationTool(sgworld);//鍏ㄥ眬鍙橀噺
+          window.PDelevationTool = new SmartEarth.ElevationTool(sgworld); //鍏ㄥ眬鍙橀噺
           if (that.isslopeFlag == true) {
-            PDelevationTool.type = 'slope';
+            PDelevationTool.type = "slope";
             PDelevationTool.tf = this.checked;
           } else {
-            PDelevationTool.type = 'none';
+            PDelevationTool.type = "none";
           }
           PDelevationTool.render();
           break;
-        case 'd3':
-          var value = {
-            name: 'Analysis',
-            id: 3,
-          };
-          this.$bus.$emit('mapChangeBox', value);
+        case "d3": //璺緞鍒嗘瀽
+          this.isRouter = !this.isRouter;
+          let value;
+          if (this.isRouter) {
+            value = {
+              name: "Analysis",
+              id: 3,
+            };
+          } else {
+            value = {
+              name: "close",
+            };
+          }
+          this.$bus.$emit("mapChangeBox", value);
           break;
-        case 'd4':
+        case "d4": //鍓栭潰鍒嗘瀽
           if (window.AnalysisDXPM) {
+            window.AnalysisDXPM.end && window.AnalysisDXPM.end();
             this.clear(res);
           } else {
             this.addterrainSectionAnalysis();
           }
           break;
-        case 'd5':
+        case "d5": //娲按娣规病鍒嗘瀽
           if (window.AnalysisFlood) {
             this.clear(res);
           } else {
             this.addAnalysisFlood();
           }
           break;
-        case 'd6':
-          var that = this;
-          var volumetricMeasurementTool =
-            sgworld.Creator.createVolumetricMeasureTool();
-          volumetricMeasurementTool.startDrawing(
-            { ...this.colorAll, onlyTerrain: false },
-            'auto',
-            (data) => {
-              if (volumetricMeasurementTool.popupData) {
-                volumetricMeasurementTool.popupData.value = `濉柟锛�${data.volume.fill.toFixed(4) + data.unit.fill
-                  }<br>鎸栨柟锛�${data.volume.dig.toFixed(4) + data.unit.dig}`;
-              } else {
-                data.id = sgworld.Core.getuid();
-                this.measureData.set(data.id, volumetricMeasurementTool);
-                let popupData = that.openMeasureResultInfo('浣撶Н鏂归噺', data);
-                volumetricMeasurementTool.popupData = popupData;
-              }
+        case "d6": //鍦熸柟閲忓垎鏋�
+          if (window.TFvolumetricMeasurementTool) {
+            TFvolumetricMeasurementTool.cleanUp();
+            if (TFvolumetricMeasurementTool._mouseHandler) {
+              TFvolumetricMeasurementTool._mouseHandler.destroy();
+              TFvolumetricMeasurementTool = null;
+              Viewer._container.style.cursor = "default";
+              return;
             }
-          );
+            TFvolumetricMeasurementTool = null;
+            this.$refs.mapinfo && this.$refs.mapinfo.close();
+          } else {
+            var that = this;
+            window.TFvolumetricMeasurementTool =
+              sgworld.Creator.createVolumetricMeasureTool();
+            TFvolumetricMeasurementTool.startDrawing(
+              { ...this.colorAll, onlyTerrain: false },
+              "auto",
+              (data) => {
+                if (TFvolumetricMeasurementTool.popupData) {
+                  TFvolumetricMeasurementTool.popupData.value = `濉柟锛�${
+                    data.volume.fill.toFixed(4) + data.unit.fill
+                  }<br>鎸栨柟锛�${data.volume.dig.toFixed(4) + data.unit.dig}`;
+                } else {
+                  data.id = sgworld.Core.getuid();
+                  this.measureData.set(data.id, TFvolumetricMeasurementTool);
+                  let popupData = that.openMeasureResultInfo("浣撶Н鏂归噺", data);
+                  TFvolumetricMeasurementTool.popupData = popupData;
+                }
+              }
+            );
+          }
           break;
-        case 'd7':
+        case "d7": //涓夌淮鎴潰鍒嗘瀽
+          // if(window.MXModel) {
+          //   Viewer.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
+          //   window.MXModel=null;
+          // } else {
           var that = this;
           window.model = sgworld.Creator.create3DTilesets(
-            '',
-            modelUrl+'/SN/tileset.json',
+            "",
+            modelUrl,
             {},
             {},
-            '0',
+            "0",
             true,
             (data) => {
               sgworld.Navigate.flyToObj(data);
               that.setclippingModel();
             }
           );
-          break;
-        case 'd9':
-          this.$refs && this.$refs.queryinfo && this.$refs.queryinfo.close("queryinfo");
-          this.$store.state.mapPopBoxFlag = '3';
 
-          this.$refs && this.$refs.queryinfo && this.$refs.queryinfo.open("绠¢亾绌洪棿鍒嗘瀽", null, {
-            close: () => {
-              if (this.$store.state.pipelineEntity.length != 0) {
-                for (var i in this.$store.state.pipelineEntity) {
-                  var item = this.$store.state.pipelineEntity[i]
-                  sgworld.Viewer.entities.remove(item);
-                }
-              }
-            }
-          });
           break;
-        case 'd8':
+        case "d9": //绠¢亾鍒嗘瀽
+          this.isPiple = !this.isPiple;
+          if (this.isPiple) {
+            this.$store.state.mapPopBoxFlag = "3";
+            this.$refs &&
+              this.$refs.queryinfo &&
+              this.$refs.queryinfo.open("绠¢亾绌洪棿鍒嗘瀽", null, {
+                close: () => {
+                  if (this.$store.state.pipelineEntity.length != 0) {
+                    for (var i in this.$store.state.pipelineEntity) {
+                      var item = this.$store.state.pipelineEntity[i];
+                      sgworld.Viewer.entities.remove(item);
+                    }
+                  }
+                },
+              });
+          } else {
+            this.$refs &&
+              this.$refs.queryinfo &&
+              this.$refs.queryinfo.close("queryinfo");
+          }
+
+          break;
+        case "d8": //褰卞儚瀵规瘮
           if (this.isContrastFlag == false) {
             this.isContrastFlag = true;
             sgworld.Analysis.createCurtainContrast(2, 1);
@@ -1202,65 +1270,99 @@
             sgworld.Analysis.clearCurtainContrast();
           }
           break;
-        case 'd10':
-        
-          if(window.DXTerrainFlattening!=null){
-            DXTerrainFlattening.remove();
-          }
-          sgworld.Creator.createSimpleGraphic(
-                'polygon',
-                {
-                    clampToGround: true,
-                },
-                function (entity) {
-                    let   positions = entity.polygon.hierarchy.getValue().positions;
-                    sgworld.Creator.SimpleGraphic.remove(entity.id);
-                    window.DXTerrainFlattening = sgworld.Creator.createTerrainModifier("鍦板舰鍘嬪钩", positions, 10, {});
-                }
+        case "d10": //鍦伴潰鏁村钩
+          if (this.DXZPState != null) {
+            this.DXZPState.drawHandler && this.DXZPState.drawHandler.destroy();
+            Viewer._container.style.cursor = "default";
+            this.DXZPState.tooltip && this.DXZPState.tooltip.show(false);
+            if (window.DXTerrainFlattening != null) {
+              DXTerrainFlattening.remove();
+            }
+            window.DXTerrainFlattening = null;
+            this.DXZPState = null;
+          } else {
+            this.DXZPState = sgworld.Creator.createSimpleGraphic(
+              "polygon",
+              {
+                clampToGround: true,
+              },
+              function (entity) {
+                let positions = entity.polygon.hierarchy.getValue().positions;
+                sgworld.Creator.SimpleGraphic.remove(entity.id);
+                window.DXTerrainFlattening =
+                  sgworld.Creator.createTerrainModifier(
+                    "鍦板舰鍘嬪钩",
+                    positions,
+                    10,
+                    {}
+                  );
+              }
             );
+          }
+
           break;
 
-        case 'd11':
+        case "d11": //鍦板舰寮�鎸�
           if (window.Excavation) {
+            window.Excavation.drawHandler &&
+              window.Excavation.drawHandler.destroy();
+            Viewer._container.style.cursor = "default";
+            window.Excavation.tooltip && window.Excavation.tooltip.show(false);
             window.Excavation.clear();
             window.Excavation = null;
           } else {
             window.Excavation = sgworld.Analysis.TerrainExcavation(
               10,
               {},
-              function () { }
+              function () {}
             );
           }
           break;
 
-        case "d12":
-          if (window.TSExcavation!=null) {
-            window.TSExcavation.deleteObject()
-            window.TSExcavation = null
+        case "d12": //閫氳鍒嗘瀽
+          if (window.TSExcavation != null) {
+            window.TSExcavation._SimpleGraphic.drawHandler &&
+              window.TSExcavation._SimpleGraphic.drawHandler.destroy();
+            Viewer._container.style.cursor = "default";
+            window.TSExcavation._SimpleGraphic.tooltip &&
+              window.TSExcavation._SimpleGraphic.tooltip.show(false);
+
+            window.TSExcavation.deleteObject();
+            window.TSExcavation = null;
           } else {
             window.TSExcavation = sgworld.Analysis.createSightLine({
               type: "default",
-            })
+            });
           }
-          break
-        case "d13":
-          if (this.Excavation) {
-            this.Excavation.destroy()
-            this.Excavation = null
-          } else {
-            this.Excavation = sgworld.Analysis.create3DViewshedPoss({
-              height: 1.8,
-            })
-          }
-          break
-        case "d14":
-          if (window.Excavation) {
-            window.Excavation.close()
-            window.Excavation = null
+          break;
+        case "d13": //瑙嗗煙鍒嗘瀽
+          if (window.SYExcavatio) {
+            window.SYExcavatio.end && window.SYExcavatio.end();
+            window.SYExcavatio.close();
+            window.SYExcavatio = null;
           } else {
             var SYFX_visible_color = { r: 0.0, g: 1.0, b: 0.0 },
-              SYFX_notVisible_color = { r: 1.0, g: 0.0, b: 0.0 }
-            window.Excavation = sgworld.Analysis.create3DViewshed({
+              SYFX_notVisible_color = { r: 1.0, g: 0.0, b: 0.0 };
+            window.SYExcavatio = sgworld.Analysis.create3DViewshed({
+              name: "Viewshed On Frederick",
+              height: 1.8,
+              color: {
+                Back: SYFX_notVisible_color,
+                Fore: SYFX_visible_color,
+              },
+              isSpherical: "",
+            });
+          }
+          break;
+        case "d14": //鍦嗗舰鏃跺煙鍒嗘瀽
+          if (window.YXSYExcavation) {
+            window.YXSYExcavation.end && window.YXSYExcavation.end();
+            window.YXSYExcavation.close();
+            window.YXSYExcavation = null;
+          } else {
+            var SYFX_visible_color = { r: 0.0, g: 1.0, b: 0.0 },
+              SYFX_notVisible_color = { r: 1.0, g: 0.0, b: 0.0 };
+            window.YXSYExcavation = sgworld.Analysis.create3DViewshed({
               name: "Viewshed On Frederick",
               height: 1.8,
               color: {
@@ -1268,19 +1370,17 @@
                 Fore: SYFX_visible_color,
               },
               isSpherical: "spherical",
-            })
+            });
           }
 
-          break
-
-
+          break;
       }
     },
     setclippingModel() {
       if (window.model) {
         setTimeout(() => {
           window.model.clippingModel({
-            direction: 'z',
+            direction: "z",
           });
         }, 1000);
         // window.model.clippingModel({
@@ -1290,7 +1390,7 @@
     },
     clear(res) {
       switch (res) {
-        case 'd4':
+        case "d4":
           layer.close(this.dxpmIndex);
           this.dxpmIndex = undefined;
           if (window.AnalysisDXPM) {
@@ -1300,7 +1400,7 @@
             window.AnalysisDXPM = undefined;
           }
           break;
-        case 'd5':
+        case "d5":
           window.AnalysisFlood.endWater();
           window.AnalysisFlood = undefined;
           break;
@@ -1311,13 +1411,13 @@
         pointSelect: true,
         spood: 20,
         GroupID: 0,
-        url: '/SmartEarthSDK/Workers/image/waterNormals.jpg',
+        url: "/SmartEarthSDK/Workers/image/waterNormals.jpg",
       };
       window.AnalysisFlood = sgworld.Command.execute(
         2,
         2,
         method,
-        (value) => { }
+        (value) => {}
       );
     },
     addterrainSectionAnalysis() {
@@ -1328,21 +1428,22 @@
         (Distance) => {
           if (Distance.gcs && Distance.gcs.length) {
             var url = window.location.href;
-            var testurl = '';
-            if (url.indexOf('web') != -1) {
-              testurl = '/web';
+            var testurl = "";
+            if (url.indexOf("web") != -1) {
+              testurl = "/web";
             }
             window.AnalysisDXPM.analyseData = Distance;
             this.dxpmIndex = layer.open({
               type: 2,
-              title: '鍒嗘瀽缁撴灉',
+              title: "鍒嗘瀽缁撴灉",
               shade: false,
-              area: ['80%', '280px'],
-              offset: 'b',
-              skin: 'other-class',
-              content: testurl + '/SmartEarthSDK/Workers/analysis/AnalysisDXPM.html',
+              area: ["80%", "280px"],
+              offset: "b",
+              skin: "other-class",
+              content:
+                testurl + "/SmartEarthSDK/Workers/analysis/AnalysisDXPM.html",
               end: () => {
-                this.dxpmIndex && this.clear('d4');
+                this.dxpmIndex && this.clear("d4");
               },
             });
           } else {
@@ -1354,16 +1455,16 @@
     },
     setWander(res) {
       switch (res) {
-        case 'c1':
+        case "c1":
           window.sgworld.Analysis.setPointFly();
           break;
-        case 'c2':
+        case "c2":
           var url = window.location.href;
-          var testurl = '';
-          if (url.indexOf('web') != -1) {
-            testurl = '/web';
+          var testurl = "";
+          if (url.indexOf("web") != -1) {
+            testurl = "/web";
           }
-          window.sgworld.Command.execute(2, 3, '', (data) => {
+          window.sgworld.Command.execute(2, 3, "", (data) => {
             data.showPoint = false;
             data.showLine = true;
             data.mode = 0;
@@ -1373,22 +1474,22 @@
             };
             window.PathAnimationData.winIndex = layer.open({
               type: 2,
-              title: '璺緞鍔ㄧ敾',
+              title: "璺緞鍔ㄧ敾",
               shade: false,
-              area: ['352px', '690px'],
-              offset: 'r',
-              skin: 'other-class',
-              content: testurl + '/SmartEarthSDK/Workers/path/Path.html',
+              area: ["352px", "690px"],
+              offset: "r",
+              skin: "other-class",
+              content: testurl + "/SmartEarthSDK/Workers/path/Path.html",
               end: function () {
                 PathAnimationData.fly && PathAnimationData.fly.exit();
               },
             });
           });
           break;
-        case 'c3':
+        case "c3":
           sgworld.Analysis.createindoormode({ showHelp: true });
           break;
-        case 'c4':
+        case "c4":
           window.sgworld.Analysis.createScreenshot();
           break;
       }
@@ -1396,89 +1497,87 @@
     setOrientation(res) {
       var resid;
       switch (res) {
-        case 'f1':
+        case "f1":
           resid = 1;
           break;
-        case 'f2':
+        case "f2":
           resid = 2;
           break;
       }
       var val = {
-        name: 'Coord',
+        name: "Coord",
         id: resid,
       };
-      this.$bus.$emit('mapChangeBox', val);
+      this.$bus.$emit("mapChangeBox", val);
     },
     setViewport(res) {
       switch (res) {
-        case 'b1': //鍒嗗睆
-          this.$bus.$emit('changemap', 1);
+        case "b1": //鍒嗗睆
+          this.$bus.$emit("changemap", 1);
           break;
-        case 'b2': //浜岀淮
-          this.$bus.$emit('changemap', 2);
+        case "b2": //浜岀淮
+          this.$bus.$emit("changemap", 2);
           break;
-        case 'b3': //涓夌淮
-          this.$bus.$emit('changemap', 3);
+        case "b3": //涓夌淮
+          this.$bus.$emit("changemap", 3);
           break;
-        case 'b4': //鍏ㄥ浘
+        case "b4": //鍏ㄥ浘
           window.sgworld.Navigate.jumpTo({
             //璺宠浆瑙嗚
             destination: new Cesium.Cartesian3.fromDegrees(110, 32, 8000000),
           });
           window.map
             .getView()
-            .setCenter(transform([110, 32], 'EPSG:4326', 'EPSG:3857'));
+            .setCenter(transform([110, 32], "EPSG:4326", "EPSG:3857"));
           window.map.getView().setZoom(4);
           break;
-        case 'b5': //鏀惧ぇ
+        case "b5": //鏀惧ぇ
           window.sgworld.Navigate.zoomIn();
           // 鑾峰彇褰撳墠瑙嗗浘
           var zoom = window.map.getView().getZoom(); // 鑾峰彇褰撳墠缂╂斁绾у埆
           window.map.getView().setZoom(zoom + 1); // 璁剧疆缂╂斁绾у埆
 
           break;
-        case 'b6': //缂╁皬
+        case "b6": //缂╁皬
           window.sgworld.Navigate.zoomOut();
           var zoom = window.map.getView().getZoom(); // 鑾峰彇褰撳墠缂╂斁绾у埆
           window.map.getView().setZoom(zoom - 1); // 璁剧疆缂╂斁绾у埆
           break;
-        case 'b7': //姣斾緥灏�
+        case "b7": //姣斾緥灏�
           this.isRuler = !this.isRuler;
-          window.sgworld.navControl('scale', this.isRuler);
+          window.sgworld.navControl("scale", this.isRuler);
           if (this.isRuler == true) {
             this.scaleLine = new ScaleLine({
-              units: "metric"
+              units: "metric",
             });
             window.map.addControl(this.scaleLine);
           } else {
-
             window.map.removeControl(this.scaleLine);
             this.scaleLine = false;
           }
           break;
-        case 'b8': //鎸囧寳閽�
+        case "b8": //鎸囧寳閽�
           this.isNaviget = !this.isNaviget;
-          window.sgworld.navControl('nav', this.isNaviget);
-          this.$store.state.isNaviget = this.isNaviget
+          window.sgworld.navControl("nav", this.isNaviget);
+          this.$store.state.isNaviget = this.isNaviget;
           break;
-        case 'b9': //鍦颁笅妯″紡
+        case "b9": //鍦颁笅妯″紡
           this.UndergroundMode = !this.UndergroundMode;
-          window.sgworld.Analysis.UndergroundMode(this.UndergroundMode, 0.3)
+          window.sgworld.Analysis.UndergroundMode(this.UndergroundMode, 0.3);
           break;
       }
     },
     setCoverage(res) {
       switch (res) {
-        case 'a1':
+        case "a1":
           if (this.$store.state.layerMnage == false) {
             this.$refs && this.$refs.maplayer && this.$refs.maplayer.closeAll();
             this.$refs && this.$refs.maplayer && this.$refs.maplayer.open();
             this.$store.state.layerMnage = true;
           } else if (this.$store.state.layerMnage == true) {
-                       this.$bus.$emit("treeDataCopy","true");
+            this.$bus.$emit("treeDataCopy", "true");
             this.$refs && this.$refs.maplayer && this.$refs.maplayer.closeAll();
             this.$store.state.layerMnage = false;
-   
           }
 
           break;
@@ -1491,23 +1590,23 @@
   mounted() {
     this.measureData = new Map();
     this.colorAll = {
-      point: Cesium.Color.fromCssColorString('#ff0000'),
-      polyline: Cesium.Color.fromCssColorString('#ffff00').withAlpha(0.6),
-      polygon: Cesium.Color.fromCssColorString('#ffff00').withAlpha(0.6),
+      point: Cesium.Color.fromCssColorString("#ff0000"),
+      polyline: Cesium.Color.fromCssColorString("#ffff00").withAlpha(0.6),
+      polygon: Cesium.Color.fromCssColorString("#ffff00").withAlpha(0.6),
     };
-    this.$bus.$on('setChangeTwoMenu', (res) => {
-
-      if (res == 8) { this.setLayerScene(); } else {
+    this.$bus.$on("setChangeTwoMenu", (res) => {
+      if (res == 8) {
+        this.setLayerScene();
+      } else {
         this.menuChange(res);
       }
-
     });
 
     this.$store.state.showAllLayers = true;
     this.$store.state.layerMnage = false;
     this.$store.state.treeData = null;
     this.$store.state.checkedKeys = [];
-    this.setCoverage('a1');
+    this.setCoverage("a1");
   },
 };
 </script>
@@ -1523,6 +1622,7 @@
   display: flex;
   flex-wrap: wrap;
   align-content: flex-start;
+
   .leftMen_div {
     font-size: 16px;
     font-family: Microsoft YaHei;
@@ -1535,16 +1635,19 @@
     border-radius: 5px;
     text-align: center;
   }
+
   .leftMen_div:hover {
     background: rgba(64, 158, 255, 0.4);
     border: 1px solid #409eff;
     box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.1);
     border-radius: 5px;
   }
+
   .lefMenuDivActive {
     background: rgba(64, 158, 255, 0.4);
     border: 1px solid #409eff;
   }
+
   .menuTwoImage {
     width: 40px;
     height: 40px;
diff --git a/src/views/Tools/LayerTree.vue b/src/views/Tools/LayerTree.vue
index 4d68611..5a06f1b 100644
--- a/src/views/Tools/LayerTree.vue
+++ b/src/views/Tools/LayerTree.vue
@@ -10,8 +10,8 @@
       ref="tree"
       :data="treeData"
       node-key="id"
-      default-expand-all
       show-checkbox
+      :props="defaultProps"
       @node-click="handleLeftclick"
       @node-contextmenu="rightClick"
       @check-change="handleCheckChange"
@@ -59,7 +59,7 @@
       <div class="edit" @click="editNode()">
         <i class="el-icon-edit"></i>&nbsp;&nbsp;閲嶅懡鍚�
       </div>
-      <div class="edit" @click="showLayerAttribute()">
+      <div class="edit" @click="showLayerAttribute()" v-show="!firstLevel">
         <i class="el-icon-tickets"></i>&nbsp;&nbsp;灞炴��
       </div>
       <!-- <div
@@ -89,7 +89,7 @@
           <el-select
             style="width: 100%"
             :popper-append-to-body="false"
-            v-model="addFormServer.layerType"
+            v-model="addFormServer.serveType"
             placeholder="璇烽�夋嫨"
           >
             <el-option
@@ -102,14 +102,14 @@
           </el-select>
         </el-form-item>
         <el-form-item label="鍥惧眰鍚嶇О">
-          <el-input v-model="addFormServer.label"></el-input>
+          <el-input v-model="addFormServer.cnName"></el-input>
         </el-form-item>
         <el-form-item label="鏈嶅姟鍚嶇О">
-          <el-input v-model="addFormServer.resource"></el-input>
+          <el-input v-model="addFormServer.url"></el-input>
         </el-form-item>
 
         <el-form-item label="鏈嶅姟鍦板潃">
-          <el-input v-model="addFormServer.url"></el-input>
+          <el-input v-model="addFormServer.resource"></el-input>
         </el-form-item>
         <el-form-item label="閫忔槑搴�">
           <el-slider v-model="addFormServer.opacity"></el-slider>
@@ -155,7 +155,7 @@
       dialogVisible: false,
       addFormServer: {
         opacity: 100,
-        layerType: "WMS",
+        serveType: "WMS",
         type: 2,
       },
       layerId: [
@@ -167,7 +167,7 @@
       treeData: [],
       defaultProps: {
         children: "children",
-        label: "label",
+        label: "cnName",
       },
       options: [
         {
@@ -215,10 +215,10 @@
     rightClick(event, object, Node, element) {
       this.currentData = object;
       this.currentNode = Node;
-      if (Node.level === 1) {
-        this.firstLevel = true;
-      } else {
+      if (Node.level === 3) {
         this.firstLevel = false;
+      } else {
+        this.firstLevel = true;
       }
       this.menuVisible = true;
 
@@ -270,7 +270,7 @@
       this.dialogVisible = false;
       this.addFormServer = {
         opacity: 100,
-        layerType: "WMS",
+        serveType: "WMS",
         type: 2,
       };
     },
@@ -287,22 +287,33 @@
     // 鍒犻櫎鑺傜偣
     deleteNode() {
       this.foo();
-      var label = this.currentNode.data.label;
-      if (this.currentNode.data.layerType == "WMS") {
-        for (var i in window.Viewer.imageryLayers_layers) {
-          if (window.Viewer.imageryLayers_layers[i].name === label) {
+      var label = this.currentNode.data.cnName;
+      if (this.currentNode.data.serveType == "WMS") {
+        for (var i in window.Viewer.imageryLayers._layers) {
+          if (
+            window.Viewer.imageryLayers._layers[i].imageryProvider.name ===
+            label
+          ) {
             window.Viewer.imageryLayers.remove(
-              window.Viewer.imageryLayers_layers[i]
+              window.Viewer.imageryLayers._layers[i]
             );
           }
         }
-      } else if (this.currentNode.data.layerType == "WFS") {
+      } else if (this.currentNode.data.serveType == "WFS") {
         for (var i in window.Viewer.dataSources._dataSources) {
           if (window.Viewer.dataSources._dataSources[i].name == label) {
             window.Viewer.dataSources.remove(
               window.Viewer.dataSources._dataSources[i]
             );
-            std.push(data.label);
+          }
+        }
+      } else if (this.currentNode.data.serveType == "Tileset") {
+        for (var i in Viewer.scene.primitives._primitives) {
+          // Viewer.scene.primitives._primitives[i].show = checked;
+          if (Viewer.scene.primitives._primitives[i].id == label) {
+            Viewer.scene.primitives.remove(
+              Viewer.scene.primitives._primitives[i]
+            );
           }
         }
       }
@@ -412,20 +423,13 @@
     },
     handleCheckChange(data, checked, indeterminate) {
       if (data.type != 2) return;
-      //鍋氬垽鏂槸鍚︽槸1锛�100涓囪鏀跨晫闈�
-      if (data.layer == window.XZOutlie && checked) {
-        window.ImageLayer3.show = false;
-      } else {
-        window.ImageLayer3.show = true;
-      }
-
       var std = [];
-      if (data.layerType == "WMS") {
+      if (data.serveType == "WMS") {
         var layers_ol = window.map.getAllLayers();
         for (var i = 0; i < window.Viewer.imageryLayers._layers.length; i++) {
           var val_id =
             window.Viewer.imageryLayers._layers[i].imageryProvider.name;
-          if (val_id == data.label) {
+          if (val_id == data.cnName) {
             std.push(data.label);
 
             const img_layer = window.Viewer.imageryLayers._layers[i];
@@ -435,18 +439,30 @@
 
         for (var i in layers_ol) {
           var layerOl = layers_ol[i];
-          if (layerOl.values_.name == data.label) {
+          if (layerOl.values_.name == data.cnName) {
             layerOl.setVisible(checked); //鏄剧ず鍥惧眰
           }
         }
-      } else if (data.layerType == "WFS") {
+      } else if (data.serveType == "WFS") {
         if (window.Viewer.dataSources._dataSources.length == 0) {
           this.setAddLayers(data);
         } else {
           for (var i in window.Viewer.dataSources._dataSources) {
-            if (window.Viewer.dataSources._dataSources[i].name == data.label) {
+            if (window.Viewer.dataSources._dataSources[i].name == data.cnName) {
               window.Viewer.dataSources._dataSources[i].show = checked;
               std.push(data.label);
+            }
+          }
+        }
+      } else if (data.serveType == "Tileset") {
+        if (Viewer.scene.primitives._primitives.length == 0) {
+          this.setAddLayers(data);
+        } else {
+          for (var i in Viewer.scene.primitives._primitives) {
+            Viewer.scene.primitives._primitives[i].show = checked;
+            if (Viewer.scene.primitives._primitives[i].id == data.cnName) {
+              std.push(res.id);
+              Viewer.flyTo(Viewer.scene.primitives._primitives[i]);
             }
           }
         }
@@ -463,19 +479,17 @@
       }
     },
     setAddLayers(res) {
-      if (res.layerType == "WMS") {
-        var url = geoServerURl;
-        if (res.url != null && res.url != undefined) {
-          url = res.url;
+      if (res.serveType == "WMS") {
+        // var resource = geoServerURl;
+        var resource = "http://192.168.20.205:8088/geoserver/LF/wms";
+
+        if (res.resource != null && res.resource != undefined) {
+          resource = res.resource;
         }
-
-        //var width = $("#mapdiv").width();
-        //var height = $("#mapdiv").height();
-
         var imageryLayers = window.Viewer.scene.imageryLayers;
         let layerWMS = new Cesium.WebMapServiceImageryProvider({
-          url: url,
-          layers: res.resource,
+          url: resource,
+          layers: res.url,
           parameters: {
             transparent: true,
             format: "image/png",
@@ -485,21 +499,21 @@
           tileWidth: 512,
           tileHeight: 512,
         });
-        layerWMS.name = res.label;
+        layerWMS.name = res.cnName;
         //閫忔槑搴�
         var tdtAnnoLayer = imageryLayers.addImageryProvider(layerWMS);
         if (res.opacity) {
           tdtAnnoLayer.alpha = parseInt(res.opacity) / 100;
         }
         var layer2 = new Image({
-          name: res.label,
+          name: res.cnName,
           source: new ImageWMS({
             crossOrigin: "anonymous",
-            url: url,
+            url: resource,
             params: {
               FORMAT: "image/png",
               VERSION: "1.1.1",
-              LAYERS: res.resource,
+              LAYERS: res.url,
             },
           }),
         });
@@ -507,11 +521,11 @@
           layer2.setOpacity(parseInt(res.opacity) / 100);
         }
         window.map.addLayer(layer2);
-      } else if (res.layerType == "WFS") {
+      } else if (res.serveType == "WFS") {
         var url =
-          res.url +
-          "?service=WFS&version=1.0.0&request=GetFeature&typeName=" +
           res.resource +
+          "?service=WFS&version=1.0.0&request=GetFeature&typeName=" +
+          res.url +
           "&outputFormat=application%2Fjson";
         $.ajax({
           url: url,
@@ -526,7 +540,7 @@
               clampToGround: true, //鏄惁璐村湴
             });
             datasource.then((data) => {
-              data.name = res.label;
+              data.name = res.cnName;
               window.Viewer.dataSources.add(data);
             });
           },
@@ -536,71 +550,74 @@
         });
 
         var vectorLayer = new VectorLayer({
-          name: res.label,
+          name: res.cnName,
           source: new VectorSource({
             url: url,
             format: new GeoJSON(),
           }),
         });
         window.map.addLayer(vectorLayer);
+      } else if (res.serveType == "Tileset") {
+        var tileset = Viewer.scene.primitives.add(
+          new Cesium.Cesium3DTileset({
+            name: res.cnName,
+            url: modelUrl + "/" + res.url, //192.168.20.106,to4
+            maximumScreenSpaceError: 64, // 鏈�澶у睆骞曠┖闂撮敊璇細16
+            maximumMemoryUsage: 768, // 鏈�澶у唴瀛橈細512
+            dynamicScreenSpaceError: true, // 鍑忓皯绂荤浉鏈鸿緝杩滅殑灞忓箷绌洪棿閿欒锛歠alse
+            skipLevelOfDetail: true, // 鍦ㄩ亶鍘嗘椂鍊欒烦杩囪鎯咃細false
+          })
+        );
+
+        tileset.readyPromise.then(function (tileset) {
+          tileset.id = res.cnName;
+          Viewer.flyTo(tileset);
+        });
       }
+    },
+    setTreeData(source) {
+      let cloneData = JSON.parse(JSON.stringify(source)); // 瀵规簮鏁版嵁娣卞害鍏嬮殕
+      return cloneData.filter((father) => {
+        // 寰幆鎵�鏈夐」
+        let branchArr = cloneData.filter((child) => father.id == child.pid); // 瀵规瘮ID锛屽垎鍒笂涓嬬骇鑿滃崟锛屽苟杩斿洖鏁版嵁
+        branchArr.length > 0 ? (father.children = branchArr) : ""; // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊�
+        // 灞炰簬鍚屼竴瀵硅薄闂锛屼緥濡傦細浠� a=b銆乧=1 锛岀劧鍚庡啀浠� b.c=c 锛� 閭d箞 a.c=b.c=c=1 锛涘悓鐞嗭紝鍚庣画浠� c.d=2 ,閭d箞 a.c.d 涔熸槸=2锛�
+        // 鐢辨寰幆澶氭鍚庯紝灏辫兘褰㈡垚鐩稿簲鐨勬爲褰㈡暟鎹粨鏋�
+        return father.pid == 0; // 杩斿洖涓�绾ц彍鍗�
+      });
     },
     async layersStart() {
       const data = await perms_selectLayers();
       if (data.code != 200) {
         return this.$message.error("鍥惧眰鍒楄〃鏌ヨ澶辫触");
       }
-
-      this.newData = data.result;
-      this.oriData = data.result;
-      var std = [];
-      var layer_list = [];
-      var layer_groups = [];
-      for (var i in data.result) {
-        if (data.result[i].type == 1) {
-          layer_groups.push({
-            id: data.result[i].id,
-            label: data.result[i].cnName,
-            type: data.result[i].type,
-            isEdit: false,
-            children: [],
-          });
-        } else if (data.result[i].type == 2) {
-          if (data.result[i].url != null) {
-            var layer_entity = {
-              id: data.result[i].id,
-              pid: data.result[i].pid,
-              label: data.result[i].cnName,
-              resource: data.result[i].url,
-              type: data.result[i].type,
-              isEdit: false,
-              layer: data.result[i].enName,
-              layerType: data.result[i].serveType,
-            };
-            layer_list.push(layer_entity);
-
-            if (data.result[i].isShow == 1) {
-              std.push(data.result[i].id);
-              this.setAddLayers(layer_entity);
-            }
-          }
+      var std = data.result;
+      var that = this;
+      var checkKey = [];
+      var val = std.filter((str) => {
+        if (str.type == 1) {
+          return str;
         }
-      }
-
-      for (var i in layer_list) {
-        for (var j in layer_groups) {
-          if (layer_list[i].pid === layer_groups[j].id) {
-            layer_groups[j].children.push(layer_list[i]);
+        if (str.url != null && str.type == 2) {
+          if (str.isShow == 1) {
+            checkKey.push(str.id);
+            that.setAddLayers(str);
           }
-        }
-      }
-      layer_groups = layer_groups.filter((res) => {
-        if (res.children && res.children.length != 0) {
-          return res;
+          return str;
         }
       });
-      this.treeData = layer_groups;
-      this.$refs.tree.setCheckedKeys(std);
+
+      var res = this.setTreeData(val);
+
+      for (var i in res) {
+        res[i].children = res[i].children.filter((val) => {
+          if (val.children != null) {
+            return val;
+          }
+        });
+      }
+      this.treeData = res;
+      this.$refs.tree.setCheckedKeys(checkKey);
     },
     async treelayersStart() {
       const data = await perms_selectLayers();
@@ -700,7 +717,7 @@
 }
 
 .tree-container /deep/ .el-tree-node__expand-icon {
-  margin-left: 15px;
+  margin-left: 1px;
   padding: 0px;
 }
 
@@ -710,7 +727,7 @@
 
 .tree-container /deep/ .el-tree-node {
   position: relative;
-  padding-left: 16px;
+  padding-left: 10px;
   // text-indent: 16px;
 }
 
@@ -838,6 +855,7 @@
     }
   }
 }
+
 /*.lalala {*/
 /*position: relative;*/
 /*}*/
diff --git a/src/views/Tools/maplayer.vue b/src/views/Tools/maplayer.vue
index 2fb4c48..48c8625 100644
--- a/src/views/Tools/maplayer.vue
+++ b/src/views/Tools/maplayer.vue
@@ -32,7 +32,7 @@
     return {
       // 寮圭獥鏁版嵁
       PopupData: ['maplayer'],
-      left: 'calc(100% - 330px)',
+      left: 'calc(100% - 370px)',
       top: 10,
     };
   },

--
Gitblit v1.9.3