From 5b5a5a7899a9444665235d96d8d7f2d50fed6a8c Mon Sep 17 00:00:00 2001
From: Jin Lei <jinlei_182@163.com>
Date: 星期六, 11 十一月 2023 17:42:58 +0800
Subject: [PATCH] [历史影像]删除之前二维地图,叠加beijing54地图

---
 src/components/left/layerTree/Layer.vue |    2 
 src/components/menu/bottom-menu.vue     |  359 ++++------------
 src/store/index.js                      |    4 
 src/components/map/viewer1.vue          |  711 ++++++++++++++++++---------------
 src/components/map/viewer.vue           |  123 +++++
 src/components/index.vue                |   51 +-
 src/components/right/right-top.vue      |    1 
 7 files changed, 625 insertions(+), 626 deletions(-)

diff --git a/src/components/index.vue b/src/components/index.vue
index 7506958..5e8dc2e 100644
--- a/src/components/index.vue
+++ b/src/components/index.vue
@@ -11,31 +11,20 @@
           <img class="searchBtn" src="@/assets/img/right/closeinput1.png" />
         </el-button>
       </div>
-      <History />
+
     </div>
-    <viewer1
-      class="mapViewer"
-      v-if="viewer1Show"
-      :style="viewer1Style"
-      @mousemove.native="viewer1MouseMove"
-    />
-    <viewer
-      class="mapViewer"
-      :style="viewerStyle"
-      @mousemove.native="viewerMouseMove"
-    />
-    <div
-      class="controlPanel"
-      :style="{
-        width: `${size}`,
-        height: `${size}`,
-        transform: `scale(${scale}) translate(${offset},${offset})`,
-        '-webkit-transform': `scale(${scale}) translate(${offset},${offset})`,
-        '-moz-transform': `scale(${scale}) translate(${offset},${offset})`,
-        '-o-transform': `scale(${scale}) translate(${offset},${offset})`,
-        '-ms-transform': `scale(${scale}) translate(${offset},${offset})`,
-      }"
-    >
+    <viewer1 class="mapViewer" :key="switchKey" v-if="viewer1Show" :style="viewer1Style"
+      @mousemove.native="viewer1MouseMove" />
+    <viewer class="mapViewer" ref="mapViewer" :style="viewerStyle" @mousemove.native="viewerMouseMove" />
+    <div class="controlPanel" :style="{
+      width: `${size}`,
+      height: `${size}`,
+      transform: `scale(${scale}) translate(${offset},${offset})`,
+      '-webkit-transform': `scale(${scale}) translate(${offset},${offset})`,
+      '-moz-transform': `scale(${scale}) translate(${offset},${offset})`,
+      '-o-transform': `scale(${scale}) translate(${offset},${offset})`,
+      '-ms-transform': `scale(${scale}) translate(${offset},${offset})`,
+    }">
       <img @click="changePwd" id="headlog" src="@/assets/img/new/topBar.png" />
       <img id="bottomBar" src="@/assets/img/new/bottomBar.png" />
       <!-- <el-slider
@@ -69,7 +58,6 @@
 
 import bottommenu from "@/components/menu/bottom-menu";
 import { mapState, mapMutations } from "vuex";
-import History from "@/components/map/history.vue";
 
 export default {
   name: "index",
@@ -98,6 +86,7 @@
       offset: "0%",
       tooltipInfo: "璇风◢鍚庛�傘�傘��",
       tooltipShow: false,
+      switchKey: 0,
       // viewer1Show: false,
     };
   },
@@ -108,7 +97,7 @@
     this.size = size + "%";
   },
   computed: {
-    ...mapState(["viewer1Show", "yqfk"]),
+    ...mapState(["viewer1Show", "isLand", "yqfk"]),
     showSetting() {
       return this.$store.state.showSetting;
     },
@@ -137,6 +126,9 @@
     },
     changePwd() {
       console.log(111);
+    },
+    changeMode(mode){
+      this.$refs.mapViewer.changeMode(mode);
     },
     detectZoom() {
       var ratio = 0,
@@ -242,11 +234,13 @@
 .mapViewer {
   height: 100%;
 }
+
 .userinfo {
   position: absolute;
   z-index: 20;
   top: 10px;
 }
+
 #headlog {
   width: 965px;
   height: 70px;
@@ -255,6 +249,7 @@
   top: 0;
   transform: translate(-50%, 0);
 }
+
 #bottomBar {
   width: 1357px;
   height: 52px;
@@ -263,6 +258,7 @@
   bottom: 0;
   transform: translate(-50%, 0);
 }
+
 .trigger {
   pointer-events: all;
 }
@@ -304,6 +300,7 @@
   border-radius: 10px;
   padding: 10px 30px;
 }
+
 .hisbox {
   position: absolute;
   z-index: 10000002;
@@ -311,11 +308,13 @@
   height: 100%;
   background-color: #fff;
 }
+
 .btnbox {
   position: absolute;
   z-index: 100000003;
   right: 30px;
 }
+
 .btnbox .el-button {
   padding: 0 !important;
   font-size: 24px;
diff --git a/src/components/left/layerTree/Layer.vue b/src/components/left/layerTree/Layer.vue
index db0c791..5fcb5da 100644
--- a/src/components/left/layerTree/Layer.vue
+++ b/src/components/left/layerTree/Layer.vue
@@ -1086,7 +1086,7 @@
   height: 30px;
   cursor: pointer;
   text-align: center;
-  z-index: 999999;
+  z-index: 999;
   color: white;
 }
 .treeContainer {
diff --git a/src/components/map/viewer.vue b/src/components/map/viewer.vue
index 4255a83..a2875be 100644
--- a/src/components/map/viewer.vue
+++ b/src/components/map/viewer.vue
@@ -1,6 +1,13 @@
 <template>
   <div>
     <div id="sdkContainer"></div>
+    <div class="listBox" v-show="viewer1Show && !isLand">
+      <ul>
+        <li v-for="(item, index) in arr" :key="index" @click="changeLeftMap($event, item, index)">
+          {{ item }}
+        </li>
+      </ul>
+    </div>
     <layerTreeTwoScreen v-if="layerTreeTwoScreen" />
     <!-- <div id="bottomInfo" v-html="bottomInfo"></div> -->
     <div id="switchImagerLayer" :style="{
@@ -12,7 +19,7 @@
     }">
       <transition name="animate__animated animate__bounce" @click="switchImagerLayerShowOrHide"
         enter-active-class="animate__backInRight" leave-active-class="animate__backOutRight" appear>
-        <switchImagerLayer v-show="switchImagerLayer" />
+        <switchImagerLayer ref="switchImagerLayer" v-show="switchImagerLayer" />
       </transition>
 
       <img class="swichImg" @click="switchImagerLayerShowOrHide" :src="switchImage" />
@@ -35,6 +42,8 @@
 import jiejing from "@/assets/img/new/jiejing.png";
 import "animate.css";
 import Bus from "@tools/Bus";
+
+let activeLi, nLayer;
 export default {
   name: "viewer",
   components: {
@@ -55,10 +64,14 @@
       scale: "1",
       offset: "0%",
       radio: 3,
+      arr: [
+        2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
+        2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,
+      ],
     };
   },
   computed: {
-    ...mapState(["layerTreeTwoScreen", "cesiumInit"]),
+    ...mapState(["viewer1Show", "isLand", "layerTreeTwoScreen", "cesiumInit"]),
   },
   mounted() {
     this.$nextTick(function () {
@@ -67,8 +80,8 @@
       window.sgworld = new SmartEarth.EarthCtrl(
         "sdkContainer",
         {
-          // StaticFileBaseUrl: "../../../static/CimSDK/",
-          StaticFileBaseUrl: "../../../YZXNCS/static/CimSDK/",
+          StaticFileBaseUrl: "../../../static/CimSDK/",
+          // StaticFileBaseUrl: "../../../YZXNCS/static/CimSDK/",
         },
         {},
         {},
@@ -228,6 +241,74 @@
       return ratio;
       //this.onresize_height = ratio;
       // return ratio;
+    },
+    changeMode(mode) {
+      this.$refs.switchImagerLayer.switchImagerLayerClick(mode);
+    },
+    setImageComparison(isStart) {
+      this.isImage = isStart;
+      if (!this.isImage) {
+        this.destroyImageLayer();
+      }
+    },
+    destroyImageLayer() {
+      if (activeLi) {
+        activeLi.classList.remove('active');
+        activeLi = null;
+      }
+      if (nLayer) {
+        Viewer.imageryLayers.remove(nLayer, true);
+        nLayer = null;
+      }
+    },
+    changeLeftMap(event, item, index) {
+      let liObj = event.currentTarget;
+      if (activeLi) {
+        activeLi.classList.remove('active');
+        activeLi = null;
+      }
+      liObj.classList.add('active');
+      activeLi = liObj;
+      this.loadImageLayer(item);
+    },
+    loadImageLayer(year) {
+      if (nLayer) {
+        Viewer.imageryLayers.remove(nLayer, true);
+        nLayer = null;
+      }
+      nLayer = this.loadBJ54ImageLayer(year);
+    },
+    loadBJ54ImageLayer(year) {
+      let url = "http://172.26.64.84/service/ImageEngine/picdis/abc";
+      //let url = option.url;
+      //let year = option.year;
+      let paramUrl = `${url}?user=jjjskfq&password=Jjjskfq@2022&layer=Sate_${year}&style=&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fpng&TileMatrix={z}&TileCol={nx}&TileRow={ny}`;
+      let minx = 113.168199 * Math.PI / 180.0;
+      let miny = 39.230551 * Math.PI / 180.0;
+      let maxx = 118.562362 * Math.PI / 180.0;
+      let maxy = 41.294714 * Math.PI / 180.0;
+      let rectangle = new Cesium.Rectangle(minx, miny, maxx, maxy);
+      let tilingScheme = new Cesium.GeographicTilingScheme({
+        rectangle: rectangle,
+        numberOfLevelZeroTilesX: 2,
+        numberOfLevelZeroTilesY: 1
+      });
+      var dx = {
+        url: paramUrl,
+        tilingScheme: tilingScheme,
+        customTags: {
+          nx: function (imageryProvider, x, y, level) {
+            return (2 << (level - 1)) + x;
+          },
+          ny: function (imageryProvider, x, y, level) {
+            return (2 << (level - 1)) + y;
+          }
+        }
+      };
+      var imageryProvider = new Cesium.UrlTemplateImageryProvider(dx);
+      let imageLayer = new Cesium.ImageryLayer(imageryProvider, { alpha: 1, brightness: 1.0 });
+      Viewer.imageryLayers.add(imageLayer, 2);
+      return imageLayer;
     },
     changeImage(val) {
       switch (val) {
@@ -450,6 +531,40 @@
   z-index: -1;
 }
 
+.listBox {
+  position: absolute;
+  left: 20px;
+  top: 100px;
+
+}
+
+.listBox .active {
+
+  background: rgba(255, 166, 0, 0.808);
+
+}
+
+.listBox li {
+  padding: 2px;
+  margin-top: 1px;
+  border-radius: 2px;
+  color: white;
+  background: rgba(14, 50, 143, 0.6);
+  font-size: 14px;
+  cursor: pointer;
+}
+
+/* 灞忓箷鍒嗚鲸鐜囨斁澶т负 125 */
+@media (-webkit-min-device-pixel-ratio: 1.25) {
+  .listBox li {
+    font-size: 12px;
+  }
+}
+
+.listBox li:hover {
+  background: rgba(255, 166, 0, 0.808);
+}
+
 .mid {
   position: absolute;
   top: 50%;
diff --git a/src/components/map/viewer1.vue b/src/components/map/viewer1.vue
index 12d50b4..0439c00 100644
--- a/src/components/map/viewer1.vue
+++ b/src/components/map/viewer1.vue
@@ -1,10 +1,14 @@
 <template>
   <div>
     <div id="sdkContainer1" style="height: 100%"></div>
-    <layerTreeTwoScreenRight
-      v-if="layerTreeTwoScreen"
-      id="layerTreeTwoScreen111"
-    />
+    <div class="listBox" v-show="!isLand">
+      <ul>
+        <li v-for="(item, index) in arr" :key="index" @click="changeLeftMap($event, item, index)">
+          {{ item }}
+        </li>
+      </ul>
+    </div>
+    <layerTreeTwoScreenRight v-if="layerTreeTwoScreen" id="layerTreeTwoScreen111" />
     <div class="tdInfo" v-if="showTDinfo">
       <div class="tdInfo_close" @click="tdInfoClose">脳</div>
       <p v-if="dikuanxinxi" class="noInfo">鏆傛棤璇ュ湴鍧椾俊鎭�</p>
@@ -41,12 +45,7 @@
         <div v-else class="title">
           <li>
             浼佷笟
-            <el-tooltip
-              class="item"
-              effect="dark"
-              content="鐐瑰嚮鏌ョ湅浼佷笟淇℃伅"
-              placement="bottom"
-            >
+            <el-tooltip class="item" effect="dark" content="鐐瑰嚮鏌ョ湅浼佷笟淇℃伅" placement="bottom">
               <a @click="showYZCQY"> {{ qysl }}</a>
             </el-tooltip>
             瀹�
@@ -54,83 +53,31 @@
         </div>
       </ul>
     </div>
-    <el-dialog
-      class="aboutDialog"
-      title="浼佷笟淇℃伅"
-      append-to-body
-      width="60%"
-      height="60%"
-      style="overflow: auto"
-      :visible.sync="QYbox"
-      :before-close="dialogClose"
-    >
+    <el-dialog class="aboutDialog" title="浼佷笟淇℃伅" append-to-body width="60%" height="60%" style="overflow: auto"
+      :visible.sync="QYbox" :before-close="dialogClose">
       <div class="el-dialog-div">
         <div class="inquire">
-          <el-form
-            size="medium"
-            ref="queryForm"
-            :model="queryForm"
-            :inline="true"
-          >
+          <el-form size="medium" ref="queryForm" :model="queryForm" :inline="true">
             <el-form-item label="鏌ヨ鍐呭" prop="name">
-              <el-input
-                v-model="queryForm.content"
-                placeholder="璇疯緭鍏ユ煡璇㈠唴瀹�"
-              />
+              <el-input v-model="queryForm.content" placeholder="璇疯緭鍏ユ煡璇㈠唴瀹�" />
             </el-form-item>
             <el-form-item>
-              <el-button
-                @click="queryInfo('queryForm')"
-                icon="el-icon-search"
-                class="primary"
-                >鏌ヨ</el-button
-              >
+              <el-button @click="queryInfo('queryForm')" icon="el-icon-search" class="primary">鏌ヨ</el-button>
             </el-form-item>
           </el-form>
         </div>
-        <el-table
-          fit
-          style="width: 100%"
-          :data="tableData"
-          highlight-current-row
-        >
+        <el-table fit style="width: 100%" :data="tableData" highlight-current-row>
           <el-table-column type="index" width="50"></el-table-column>
-          <el-table-column
-            property="浼佷笟鍚嶇О"
-            label="浼佷笟鍚嶇О"
-          ></el-table-column>
-          <el-table-column
-            property="浼佷笟绫诲瀷"
-            label="浼佷笟绫诲瀷"
-          ></el-table-column>
-          <el-table-column
-            property="鎴愮珛鏃堕棿"
-            label="鎴愮珛鏃堕棿"
-          ></el-table-column>
-          <el-table-column
-            property="鎵�灞炶涓�"
-            label="鎵�灞炶涓�"
-          ></el-table-column>
+          <el-table-column property="浼佷笟鍚嶇О" label="浼佷笟鍚嶇О"></el-table-column>
+          <el-table-column property="浼佷笟绫诲瀷" label="浼佷笟绫诲瀷"></el-table-column>
+          <el-table-column property="鎴愮珛鏃堕棿" label="鎴愮珛鏃堕棿"></el-table-column>
+          <el-table-column property="鎵�灞炶涓�" label="鎵�灞炶涓�"></el-table-column>
           <el-table-column property="娉曚汉" label="娉曚汉"></el-table-column>
-          <el-table-column
-            property="娉ㄥ唽鍦板潃"
-            label="娉ㄥ唽鍦板潃"
-          ></el-table-column>
+          <el-table-column property="娉ㄥ唽鍦板潃" label="娉ㄥ唽鍦板潃"></el-table-column>
         </el-table>
-        <div
-          slot="footer"
-          class="dialog-footer"
-          style="text-align: center; margin-top: 5px"
-        >
-          <el-pagination
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-            :current-page.sync="currentPage"
-            :page-size="10"
-            :pager-count="11"
-            layout="total, pager"
-            :total="searchNum"
-          >
+        <div slot="footer" class="dialog-footer" style="text-align: center; margin-top: 5px">
+          <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+            :current-page.sync="currentPage" :page-size="10" :pager-count="11" layout="total, pager" :total="searchNum">
           </el-pagination>
         </div>
       </div>
@@ -147,8 +94,7 @@
 
 import Bus from "../tools/Bus";
 
-let line, line1, handler, handler1, divPoint, divPoint1, dx;
-
+let line, line1, handler, handler1, divPoint, divPoint1, dx, activeLi, nLayer, TDLayer;
 export default {
   name: "viewer1",
   components: { layerTreeTwoScreenRight },
@@ -179,7 +125,13 @@
       currentPage: 1,
       pageSize: 10,
       searchNum: 0,
+      arr: [
+        2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
+        2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,
+      ],
       tableData: [],
+
+
       queryForm: {
         type: "浼佷笟鍚嶇О",
         content: "",
@@ -193,7 +145,7 @@
 
   },
   computed: {
-    ...mapState(["viewer1Show", "layerTreeTwoScreen"]),
+    ...mapState(["viewer1Show", "isLand", "layerTreeTwoScreen"]),
   },
   watch: {
     viewer1Show: {
@@ -214,6 +166,24 @@
         }, 2000);
       },
     },
+    isLand(newvalue, oldvalue) {
+      if (!newvalue) {
+        if (TDLayer) {
+          TDLayer.deleteObject();
+          TDLayer = null;
+        }
+        if (line) {
+          sgworld.Creator.DeleteObject(line);
+        }
+        if (line1) {
+          sgworld1.Creator.DeleteObject(line1);
+        }
+      } else {
+        if (!TDLayer) {
+          this.loadTDGLLayer();
+        }
+      }
+    }
   },
   mounted() {
     this.$nextTick(function () {
@@ -230,22 +200,6 @@
           },
         },
       };
-      // let option = {
-      //   url: SmartEarthRootUrl + "Workers/image/earth.jpg",
-      //   fullscreenButton: true,
-      //   licenseServer: "http://183.162.245.49:18080",
-      //   minViewHeight: parseFloat(common.minviewheight),
-      //   contextOptions: {
-      //     failIfMajorPerformanceCaveat: false,
-      //     webgl: {
-      //       alpha: true,
-      //       preserveDrawingBuffer: true
-      //     }
-      //   }
-      // };
-
-      //EPSG4326
-      // Cesium.ExpandBySmartEarth.Ellipsoid.z = 6356752.3142451793;
 
       // 鍖椾含
       window.sgworld1 = new SmartEarth.EarthCtrl(
@@ -268,30 +222,9 @@
             true,
             ""
           );
-          let treeNode = URLInCode.tdglTmsCode;
-          sgworld1.Creator.createImageryProvider(
-            treeNode.name,
-            "tms",
-            {
-              id: treeNode.id,
-              url: treeNode.urls,
-              fileExtension: treeNode.img || "png",
-              enablePickFeatures: false,
-              level: treeNode.Level,
-              minimumLevel: treeNode.minimumLevel,
-              maximumLevel: treeNode.maximumLevel,
-              tilingScheme:
-                treeNode.tileType === "Geo"
-                  ? new Cesium.GeographicTilingScheme()
-                  : new Cesium.WebMercatorTilingScheme(),
-              alpha: treeNode.alpha,
-            },
-            "0",
-            treeNode.zIndex,
-            true,
-            ""
-          );
-
+          if (this.isLand) {
+            this.loadTDGLLayer();
+          }
           var p = {
             destination: sgworld.Navigate.getPosition(),
             orientation: {
@@ -302,32 +235,15 @@
           };
           sgworld1.Viewer.camera.setView(p);
           setTimeout(() => {
+            window.loading && window.loading.close();
+          }, 100);
+          setTimeout(() => {
             window.APPLoading && window.APPLoading.close();
-          }, 1000);
+          }, 100);
         }
       );
 
-      // 鍚堣偉
-      // window.sgworld1 = new SmartEarth.SGWorld(
-      //   "sdkContainer1",
-      //   Cesium,
-      //   option,
-      //   null,
-      //   function () {
-      //     var p = {
-      //       destination: sgworld.Navigate.getPosition(),
-      //       orientation: {
-      //         heading: sgworld.Viewer.camera.heading,
-      //         pitch: sgworld.Viewer.camera.pitch,
-      //         roll: sgworld.Viewer.camera.roll,
-      //       },
-      //     };
-      //     sgworld1.Viewer.camera.setView(p);
-      //     setTimeout(() => {
-      //       window.APPLoading && window.APPLoading.close();
-      //     }, 1000);
-      //   }
-      // );
+
       window.Viewer1 = sgworld1._Viewer;
       Viewer1.shadows = false;
 
@@ -338,176 +254,9 @@
       // Viewer.scene.screenSpaceCameraController.enableCollisionDetection = false;
       Viewer1.scene.globe.translucency.frontFaceAlpha = 0.5;
       Viewer1.scene.globe.undergroundColor = undefined;
-      let type = 0;
 
-      //鐐瑰嚮宸︿晶鏄剧ず鑼冨洿銆佽鎯�
-      handler1 = new Cesium.ScreenSpaceEventHandler(Viewer1.scene.canvas);
-      handler1.setInputAction((event) => {
-        let that = this;
-        this.clearInfoPanel();
-        let p;
-        if (type === 0) {
-          p = sgworld1.Navigate.getMouseDegrees(event);
-        } else {
-          p = sgworld1.Navigate.getMousePosition(event);
-        }
-        // alert(JSON.stringify(p))
-        // console.log(p);
-        if (p) {
-          if (line) {
-            sgworld.Creator.DeleteObject(line);
-            line = null;
-          }
-          if (line1) {
-            sgworld1.Creator.DeleteObject(line1);
-            line1 = null;
-          }
-          if (divPoint) {
-            sgworld.Creator.DeleteObject(divPoint);
-            divPoint = null;
-          }
-          if (divPoint1) {
-            sgworld1.Creator.DeleteObject(divPoint1);
-            divPoint1 = null;
-          }
-          axios
-            .get(
-              "http://10.10.4.115:8022/geowinmap_xncs/ds?r=0.9158559377752831&serviceproviderid=map.vectorserviceprovider&serviceid=queryfeature&featcls=225%25E8%258C%2583%25E5%259B%25B4%25E5%2588%2586%25E5%258C%25BA%25E8%25A7%2584%25E5%2588%2592.geojson&lng=" +
-                p.lon +
-                "&lat=" +
-                p.lat +
-                "&geom=true&requesttype=json"
-            )
-            .then((response) => {
-              let center = { lon: 0, lat: 0 };
-              let polygon = that.read(response.data.geometry);
-              if (polygon.length > 0) {
-                var geometry = [];
-                let points = polygon[0].split(",");
-                for (let i = 0; i < points.length; i++) {
-                  let point = points[i].replace(/^\s+|\s+$/g, "").split(" ");
-                  center.lon += parseFloat(point[0]) / points.length;
-                  center.lat += parseFloat(point[1]) / points.length;
-                  geometry.push({
-                    x: parseFloat(point[0]),
-                    y: parseFloat(point[1]),
-                    z: 0,
-                  });
-                }
-                if (line) {
-                  sgworld.Creator.DeleteObject(line);
-                  line = null;
-                }
-                if (line1) {
-                  sgworld1.Creator.DeleteObject(line1);
-                  line1 = null;
-                }
-                line = sgworld.Creator.createPolyline(
-                  geometry,
-                  "#ff0000",
-                  1,
-                  0,
-                  "绾�"
-                );
-                line1 = sgworld1.Creator.createPolyline(
-                  geometry,
-                  "#ff0000",
-                  1,
-                  0,
-                  "绾�"
-                );
-              }
-              if (center.lon != 0 && center.lat != 0) {
-                axios
-                  .get(
-                    "http://10.10.4.115:8022//poisearch/guihuacon/getInfo?ydbm=" +
-                      response.data.NO
-                  )
-                  .then(
-                    (info) => {
-                      try {
-                        if (divPoint) {
-                          sgworld.Creator.DeleteObject(divPoint);
-                          divPoint = null;
-                        }
-                        if (divPoint1) {
-                          sgworld1.Creator.DeleteObject(divPoint1);
-                          divPoint1 = null;
-                        }
-                        // console.log(info.data.data);
-                        //鍏抽棴寮圭獥
-                        layuiLayer.close(SmartEarthPopupData.layerProp);
-                        //鍏抽棴鍙充晶淇℃伅寮圭獥
-                        Bus.$emit("closeRightPop", true);
-                        this.showTDinfo = true;
-                        let data = info.data.data;
-                        if (data.yongdishuju === null) {
-                          this.dikuanxinxi = true;
-                          return;
-                        } else {
-                          this.dikuanxinxi = false;
-                        }
-                        this.qiyexinxi = info.data.data.qiyexinxi;
-                        this.qysl = data.qiyexinxi.length;
 
-                        if (this.qysl > 0) {
-                          this.ydbm = data.qiyexinxi[0]["鍦板潡缂栧彿"];
-                        } else {
-                          this.ydbm = data.churangxinxi["ydbh"];
-                        }
-                        try {
-                          this.ydlx = data.yongdishuju["ydlxmc"];
-                        } catch (e) {}
-                        try {
-                          this.cyfx = data.yongdishuju["cyfx"];
-                        } catch (e) {}
-                        try {
-                          // this.crzt = response.data["ZT"];
-                          switch (response.data["ZT"]) {
-                            case 3:
-                              this.crzt = "宸插嚭璁�";
-                              break;
-                            case 4:
-                              this.crzt = "鏈嚭璁�";
-                              break;
-                          }
-                        } catch (e) {}
-                        try {
-                          this.ydmj = parseFloat(
-                            "" + data.yongdishuju["ydmj"]
-                          ).toFixed(0);
-                        } catch (e) {}
-                        try {
-                          this.crnx = data.churangxinxi["crnx"];
-                        } catch (e) {}
-                        try {
-                          this.crnf = data.churangxinxi["crnf"];
-                        } catch (e) {}
-                        try {
-                          this.rjl = data.yongdishuju["rjl"];
-                        } catch (e) {}
-                        try {
-                          this.jzxg = data.yongdishuju["jzxg"];
-                        } catch (e) {}
-                        try {
-                          this.jzmd = data.yongdishuju["jzmd"];
-                        } catch (e) {}
-                      } catch (e) {}
-                    },
-                    (info) => {
-                      this.$notify.error({
-                        title: "鎻愮ず",
-                        message: "鏈煡璇㈠埌鏁版嵁锛�",
-                      });
-                      // alert("鏈煡璇㈠埌鏁版嵁锛�");
-                      console.log("鏌ヨ澶辫触锛�");
-                    }
-                  );
-              }
-            });
-        }
-      }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
-
+      this.addEvent();
     });
     //鍏抽棴寮圭獥
     Bus.$on("closeLandInfoPop", (data) => {
@@ -517,6 +266,271 @@
     });
   },
   methods: {
+
+    setImageComparison(isStart) {
+      this.isImage = isStart;
+      if (!this.isImage) {
+        this.destroyImageLayer();
+      }
+    },
+    destroyImageLayer() {
+      if (activeLi) {
+        activeLi.classList.remove('active');
+        activeLi = null;
+      }
+      if (nLayer) {
+        Viewer1.imageryLayers.remove(nLayer, true);
+        nLayer = null;
+      }
+    },
+    changeLeftMap(event, item, index) {
+      let liObj = event.currentTarget;
+      if (activeLi) {
+        activeLi.classList.remove('active');
+        activeLi = null;
+      }
+      liObj.classList.add('active');
+      activeLi = liObj;
+      this.loadImageLayer(item);
+    },
+    loadImageLayer(year) {
+      if (nLayer) {
+        Viewer1.imageryLayers.remove(nLayer, true);
+        nLayer = null;
+      }
+      nLayer = this.loadBJ54ImageLayer(year);
+    },
+    loadBJ54ImageLayer(year) {
+      let url = "http://172.26.64.84/service/ImageEngine/picdis/abc";
+      //let url = option.url;
+      //let year = option.year;
+      let paramUrl = `${url}?user=jjjskfq&password=Jjjskfq@2022&layer=Sate_${year}&style=&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fpng&TileMatrix={z}&TileCol={nx}&TileRow={ny}`;
+      let minx = 113.168199 * Math.PI / 180.0;
+      let miny = 39.230551 * Math.PI / 180.0;
+      let maxx = 118.562362 * Math.PI / 180.0;
+      let maxy = 41.294714 * Math.PI / 180.0;
+      let rectangle = new Cesium.Rectangle(minx, miny, maxx, maxy);
+      let tilingScheme = new Cesium.GeographicTilingScheme({
+        rectangle: rectangle,
+        numberOfLevelZeroTilesX: 2,
+        numberOfLevelZeroTilesY: 1
+      });
+      var dx = {
+        url: paramUrl,
+        tilingScheme: tilingScheme,
+        customTags: {
+          nx: function (imageryProvider, x, y, level) {
+            return (2 << (level - 1)) + x;
+          },
+          ny: function (imageryProvider, x, y, level) {
+            return (2 << (level - 1)) + y;
+          }
+        }
+      };
+      var imageryProvider = new Cesium.UrlTemplateImageryProvider(dx);
+      let imageLayer = new Cesium.ImageryLayer(imageryProvider, { alpha: 1, brightness: 1.0 });
+      Viewer1.imageryLayers.add(imageLayer, 2);
+      return imageLayer;
+    },
+    loadTDGLLayer() {
+      let treeNode = URLInCode.tdglTmsCode;
+      TDLayer = sgworld1.Creator.createImageryProvider(
+        treeNode.name,
+        "tms",
+        {
+          id: treeNode.id,
+          url: treeNode.urls,
+          fileExtension: treeNode.img || "png",
+          enablePickFeatures: false,
+          level: treeNode.Level,
+          minimumLevel: treeNode.minimumLevel,
+          maximumLevel: treeNode.maximumLevel,
+          tilingScheme:
+            treeNode.tileType === "Geo"
+              ? new Cesium.GeographicTilingScheme()
+              : new Cesium.WebMercatorTilingScheme(),
+          alpha: treeNode.alpha,
+        },
+        "0",
+        treeNode.zIndex,
+        true,
+        ""
+      );
+
+    },
+    addEvent() {
+      let type = 0;
+      //鐐瑰嚮宸︿晶鏄剧ず鑼冨洿銆佽鎯�
+      handler1 = new Cesium.ScreenSpaceEventHandler(Viewer1.scene.canvas);
+      handler1.setInputAction((event) => {
+        if (this.isLand) {
+          let that = this;
+          this.clearInfoPanel();
+          let p;
+          if (type === 0) {
+            p = sgworld1.Navigate.getMouseDegrees(event);
+          } else {
+            p = sgworld1.Navigate.getMousePosition(event);
+          }
+          // alert(JSON.stringify(p))
+          // console.log(p);
+          if (p) {
+            if (line) {
+              sgworld.Creator.DeleteObject(line);
+              line = null;
+            }
+            if (line1) {
+              sgworld1.Creator.DeleteObject(line1);
+              line1 = null;
+            }
+            if (divPoint) {
+              sgworld.Creator.DeleteObject(divPoint);
+              divPoint = null;
+            }
+            if (divPoint1) {
+              sgworld1.Creator.DeleteObject(divPoint1);
+              divPoint1 = null;
+            }
+            axios
+              .get(
+                "http://10.10.4.115:8022/geowinmap_xncs/ds?r=0.9158559377752831&serviceproviderid=map.vectorserviceprovider&serviceid=queryfeature&featcls=225%25E8%258C%2583%25E5%259B%25B4%25E5%2588%2586%25E5%258C%25BA%25E8%25A7%2584%25E5%2588%2592.geojson&lng=" +
+                p.lon +
+                "&lat=" +
+                p.lat +
+                "&geom=true&requesttype=json"
+              )
+              .then((response) => {
+                let center = { lon: 0, lat: 0 };
+                let polygon = that.read(response.data.geometry);
+                if (polygon.length > 0) {
+                  var geometry = [];
+                  let points = polygon[0].split(",");
+                  for (let i = 0; i < points.length; i++) {
+                    let point = points[i].replace(/^\s+|\s+$/g, "").split(" ");
+                    center.lon += parseFloat(point[0]) / points.length;
+                    center.lat += parseFloat(point[1]) / points.length;
+                    geometry.push({
+                      x: parseFloat(point[0]),
+                      y: parseFloat(point[1]),
+                      z: 0,
+                    });
+                  }
+                  if (line) {
+                    sgworld.Creator.DeleteObject(line);
+                    line = null;
+                  }
+                  if (line1) {
+                    sgworld1.Creator.DeleteObject(line1);
+                    line1 = null;
+                  }
+                  line = sgworld.Creator.createPolyline(
+                    geometry,
+                    "#ff0000",
+                    1,
+                    0,
+                    "绾�"
+                  );
+                  line1 = sgworld1.Creator.createPolyline(
+                    geometry,
+                    "#ff0000",
+                    1,
+                    0,
+                    "绾�"
+                  );
+                }
+                if (center.lon != 0 && center.lat != 0) {
+                  axios
+                    .get(
+                      "http://10.10.4.115:8022//poisearch/guihuacon/getInfo?ydbm=" +
+                      response.data.NO
+                    )
+                    .then(
+                      (info) => {
+                        try {
+                          if (divPoint) {
+                            sgworld.Creator.DeleteObject(divPoint);
+                            divPoint = null;
+                          }
+                          if (divPoint1) {
+                            sgworld1.Creator.DeleteObject(divPoint1);
+                            divPoint1 = null;
+                          }
+                          // console.log(info.data.data);
+                          //鍏抽棴寮圭獥
+                          layuiLayer.close(SmartEarthPopupData.layerProp);
+                          //鍏抽棴鍙充晶淇℃伅寮圭獥
+                          Bus.$emit("closeRightPop", true);
+                          this.showTDinfo = true;
+                          let data = info.data.data;
+                          if (data.yongdishuju === null) {
+                            this.dikuanxinxi = true;
+                            return;
+                          } else {
+                            this.dikuanxinxi = false;
+                          }
+                          this.qiyexinxi = info.data.data.qiyexinxi;
+                          this.qysl = data.qiyexinxi.length;
+
+                          if (this.qysl > 0) {
+                            this.ydbm = data.qiyexinxi[0]["鍦板潡缂栧彿"];
+                          } else {
+                            this.ydbm = data.churangxinxi["ydbh"];
+                          }
+                          try {
+                            this.ydlx = data.yongdishuju["ydlxmc"];
+                          } catch (e) { }
+                          try {
+                            this.cyfx = data.yongdishuju["cyfx"];
+                          } catch (e) { }
+                          try {
+                            // this.crzt = response.data["ZT"];
+                            switch (response.data["ZT"]) {
+                              case 3:
+                                this.crzt = "宸插嚭璁�";
+                                break;
+                              case 4:
+                                this.crzt = "鏈嚭璁�";
+                                break;
+                            }
+                          } catch (e) { }
+                          try {
+                            this.ydmj = parseFloat(
+                              "" + data.yongdishuju["ydmj"]
+                            ).toFixed(0);
+                          } catch (e) { }
+                          try {
+                            this.crnx = data.churangxinxi["crnx"];
+                          } catch (e) { }
+                          try {
+                            this.crnf = data.churangxinxi["crnf"];
+                          } catch (e) { }
+                          try {
+                            this.rjl = data.yongdishuju["rjl"];
+                          } catch (e) { }
+                          try {
+                            this.jzxg = data.yongdishuju["jzxg"];
+                          } catch (e) { }
+                          try {
+                            this.jzmd = data.yongdishuju["jzmd"];
+                          } catch (e) { }
+                        } catch (e) { }
+                      },
+                      (info) => {
+                        this.$notify.error({
+                          title: "鎻愮ず",
+                          message: "鏈煡璇㈠埌鏁版嵁锛�",
+                        });
+                        // alert("鏈煡璇㈠埌鏁版嵁锛�");
+                        console.log("鏌ヨ澶辫触锛�");
+                      }
+                    );
+                }
+              });
+          }
+        }
+      }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
+
+    },
     dialogClose() {
       this.queryForm.content = "";
       this.queryForm.type = "浼佷笟鍚嶇О";
@@ -552,7 +566,7 @@
       const tableData = this.qiyexinxi;
       // 鎼滅储鍑虹殑缁撴灉
       let searchTable = this.tableRes(this.queryForm.content, tableData);
-     
+
       // 鎼滅储鍑虹殑鏁伴噺杩涜鍒嗛〉
       this.searchNum = searchTable.length;
       //鏍规嵁椤电爜灞曠ず鍐呭
@@ -1049,6 +1063,7 @@
   background-size: 100% 100%;
   margin: 0 auto;
 }
+
 .tdInfo .title li {
   margin-left: 32px;
   /* width: 78px; */
@@ -1060,6 +1075,7 @@
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
 }
+
 .content1,
 .content2,
 .content3 {
@@ -1070,6 +1086,7 @@
   flex-direction: column;
   justify-content: space-between;
 }
+
 .content1 li,
 .content2 li,
 .content3 li {
@@ -1079,14 +1096,17 @@
   line-height: 26px;
   text-shadow: 0px 1px 6px rgba(3, 10, 26, 0.5);
 }
+
 .content1 {
   height: 136px;
   padding: 19px 0;
 }
+
 .content2 {
   height: 132px;
   padding: 21px 0;
 }
+
 .content3 {
   height: 116px;
   padding-top: 21px;
@@ -1121,13 +1141,13 @@
   box-shadow: 0px 1px 10px 0px rgba(3, 10, 26, 0.38);
 }
 
-.aboutDialog >>> .el-dialog__body {
+.aboutDialog>>>.el-dialog__body {
   height: 77%;
   padding: 0px !important;
   padding: 15px !important;
 }
 
-.aboutDialog >>> .el-dialog__header {
+.aboutDialog>>>.el-dialog__header {
   padding: 10px 20px;
   height: 25px;
   line-height: 25px;
@@ -1136,28 +1156,28 @@
   background: transparent;
 }
 
-.aboutDialog >>> .el-dialog__title {
+.aboutDialog>>>.el-dialog__title {
   color: #fff;
   font-size: 1.1rem;
 }
 
-.aboutDialog >>> .el-dialog__headerbtn .el-dialog__close {
+.aboutDialog>>>.el-dialog__headerbtn .el-dialog__close {
   color: #fff;
 }
 
-.aboutDialog >>> .el-dialog__headerbtn:hover .el-dialog__close {
+.aboutDialog>>>.el-dialog__headerbtn:hover .el-dialog__close {
   color: #fff;
 }
 
-.aboutDialog >>> .el-dialog__headerbtn {
+.aboutDialog>>>.el-dialog__headerbtn {
   top: 13px;
 }
 
-.aboutDialog >>> .el-form-item {
+.aboutDialog>>>.el-form-item {
   margin-bottom: 10px;
 }
 
-.el-form >>> .el-form-item__label {
+.el-form>>>.el-form-item__label {
   color: #fff;
 }
 
@@ -1206,46 +1226,79 @@
   background-color: transparent;
 }
 
-.el-table /deep/ .el-table__body tr.current-row > td {
+.el-table /deep/ .el-table__body tr.current-row>td {
   background-color: transparent;
 }
 
-.el-table--enable-row-hover /deep/ .el-table__body tr:hover > td {
+.el-table--enable-row-hover /deep/ .el-table__body tr:hover>td {
   background-color: rgba(0, 32, 70, 0.7) !important;
 }
 
-.el-table__body /deep/ tr.current-row > td {
+.el-table__body /deep/ tr.current-row>td {
   background-color: rgba(0, 32, 70, 0.7) !important;
 }
 
-.aboutDialog .el-dialog-div .dialog-footer {
-}
+.aboutDialog .el-dialog-div .dialog-footer {}
 
 .el-pagination {
   color: #fff;
 }
 
-.el-pagination >>> .el-pagination__total,
-.el-pagination >>> .btn-next,
-.el-pagination >>> .btn-prev {
+.el-pagination>>>.el-pagination__total,
+.el-pagination>>>.btn-next,
+.el-pagination>>>.btn-prev {
   background: transparent;
   color: #fff;
   font-size: 1rem;
 }
 
-.el-pagination >>> .el-pager li {
+.el-pagination>>>.el-pager li {
   line-height: 27px;
   background-color: transparent;
   font-size: 1rem;
 }
 
-.el-pagination >>> .el-pager li.btn-quicknext,
-.el-pagination >>> .el-pager li.btn-quickprev {
+.el-pagination>>>.el-pager li.btn-quicknext,
+.el-pagination>>>.el-pager li.btn-quickprev {
   font-size: 1rem;
   line-height: 28px;
   color: #fff;
 }
 
+.listBox {
+  position: absolute;
+  right: 20px;
+  top: 100px;
+
+}
+
+.listBox .active {
+
+  background: rgba(255, 166, 0, 0.808);
+
+}
+
+.listBox li {
+  padding: 2px;
+  margin-top: 1px;
+  border-radius: 2px;
+  color: white;
+  background: rgba(14, 50, 143, 0.6);
+  font-size: 14px;
+  cursor: pointer;
+}
+
+/* 灞忓箷鍒嗚鲸鐜囨斁澶т负 125 */
+@media (-webkit-min-device-pixel-ratio: 1.25) {
+  .listBox li {
+    font-size: 12px;
+  }
+}
+
+.listBox li:hover {
+  background: rgba(255, 166, 0, 0.808);
+}
+
 ::-webkit-scrollbar {
   /*婊氬姩鏉℃暣浣撴牱寮�*/
   width: 4px;
diff --git a/src/components/menu/bottom-menu.vue b/src/components/menu/bottom-menu.vue
index badb2fb..288b38e 100644
--- a/src/components/menu/bottom-menu.vue
+++ b/src/components/menu/bottom-menu.vue
@@ -1,6 +1,6 @@
 <template>
   <div class="specialTool">
-    <div class="bottomwrapper" :class="{ 'top-btn-active': viewer1Show }">
+    <div class="bottomwrapper" :class="{ 'top-btn-active': viewer1Show && isLand }">
       <div class="imgbox" @click="tdglHandle">
         <img src="@assets/img/new/tudiguanli.png" alt="" />
       </div>
@@ -9,7 +9,7 @@
       </div>
     </div>
 
-    <div class="bottomwrapper" @click="historyHandle">
+    <div class="bottomwrapper" @click="historyHandle" :class="{ 'top-btn-active': viewer1Show && !isLand }">
       <div class="imgbox">
         <img src="@assets/img/new/chengshigengxin.png" alt="" />
       </div>
@@ -25,29 +25,13 @@
         <div class="textbox">
           <span> 缁煎悎鎵╁睍 </span>
         </div>
-        <el-dropdown-menu
-          slot="dropdown"
-          :append-to-body="false"
-          class="popper-dropdown"
-        >
-          <el-dropdown-item command="stdsjHandle"
-            >瑙嗗浘澶ф暟鎹钩鍙�</el-dropdown-item
-          >
-          <el-dropdown-item command="bzdSystem"
-            >鏍囧噯鍦扮洃绠″钩鍙�</el-dropdown-item
-          >
-          <el-dropdown-item v-if="isShowSPJK" command="spjkHandle"
-            >瑙嗛闆嗘垚涓庡彲瑙嗗寲</el-dropdown-item
-          >
-          <el-dropdown-item v-else command="closeSpjk"
-            >鍏抽棴瑙嗛鐐逛綅鍒嗗竷</el-dropdown-item
-          >
-          <el-dropdown-item v-if="isShowSjxl" command="sjxlHandle"
-            >鎵嬫満淇′护鐑姏鍒嗗竷</el-dropdown-item
-          >
-          <el-dropdown-item v-else command="closeSjxl"
-            >鍏抽棴淇′护鐑姏鍒嗗竷</el-dropdown-item
-          >
+        <el-dropdown-menu slot="dropdown" :append-to-body="false" class="popper-dropdown">
+          <el-dropdown-item command="stdsjHandle">瑙嗗浘澶ф暟鎹钩鍙�</el-dropdown-item>
+          <el-dropdown-item command="bzdSystem">鏍囧噯鍦扮洃绠″钩鍙�</el-dropdown-item>
+          <el-dropdown-item v-if="isShowSPJK" command="spjkHandle">瑙嗛闆嗘垚涓庡彲瑙嗗寲</el-dropdown-item>
+          <el-dropdown-item v-else command="closeSpjk">鍏抽棴瑙嗛鐐逛綅鍒嗗竷</el-dropdown-item>
+          <el-dropdown-item v-if="isShowSjxl" command="sjxlHandle">鎵嬫満淇′护鐑姏鍒嗗竷</el-dropdown-item>
+          <el-dropdown-item v-else command="closeSjxl">鍏抽棴淇′护鐑姏鍒嗗竷</el-dropdown-item>
           <el-dropdown-item command="csgxHandle">鍩庡競鏇存柊</el-dropdown-item>
         </el-dropdown-menu>
       </el-dropdown>
@@ -60,75 +44,15 @@
         <div class="textbox">
           <span> 绮炬ā绀鸿寖 </span>
         </div>
-        <el-dropdown-menu
-          slot="dropdown"
-          :append-to-body="false"
-          class="popper-dropdown"
-        >
+        <el-dropdown-menu slot="dropdown" :append-to-body="false" class="popper-dropdown">
           <el-dropdown-item command="fcfhHandle">鍒嗗眰鍒嗘埛</el-dropdown-item>
           <!-- <el-dropdown-item command="sprhHandle">鍦烘櫙瑙嗛铻嶅悎</el-dropdown-item> -->
-          <el-dropdown-item v-if="isShowSPRH" command="jiqirendahui"
-            >鍦烘櫙瑙嗛铻嶅悎</el-dropdown-item
-          >
-          <el-dropdown-item v-else command="jiqirendahui"
-            >鍏抽棴瑙嗛铻嶅悎</el-dropdown-item
-          >
+          <el-dropdown-item v-if="isShowSPRH" command="jiqirendahui">鍦烘櫙瑙嗛铻嶅悎</el-dropdown-item>
+          <el-dropdown-item v-else command="jiqirendahui">鍏抽棴瑙嗛铻嶅悎</el-dropdown-item>
         </el-dropdown-menu>
       </el-dropdown>
     </div>
 
-    <!-- <el-tooltip
-      class="item"
-      effect="dark"
-      content="鍦熷湴绠$悊"
-      placement="bottom"
-      popper-class="item_tooltip"
-    >
-      <i
-        @click="tdglHandle"
-        class="iconfont icon-nongcuntudiwenti"
-        :class="{ 'top-btn-active': viewer1Show }"
-      ></i>
-    </el-tooltip>
-    <el-tooltip
-      class="item"
-      effect="dark"
-      content="鍩庡競閮ㄤ欢鍙鍖�"
-      placement="top"
-    >
-      <el-dropdown placement="top" @command="handleCommand" trigger="click">
-        <span class="el-dropdown-link">
-          <i class="el-icon-arrow-down el-icon--right"></i>
-        </span>
-        <el-dropdown-menu slot="dropdown">
-          <el-dropdown-item command="qytj">鎰熺煡璁惧涓�寮犲浘</el-dropdown-item>
-          <el-dropdown-item command="spjkHandle"
-            >瑙嗛闆嗘垚涓庡彲瑙嗗寲灞曠ず</el-dropdown-item
-          >
-          <el-dropdown-item command="stdsjHandle">
-            瑙嗛鏅鸿兘鍒嗘瀽鎴愭灉灞曠ず</el-dropdown-item
-          >
-        </el-dropdown-menu>
-      </el-dropdown>
-    </el-tooltip>
-
-   
-    <el-tooltip class="item" effect="dark" content="鍦烘櫙娴忚" placement="right">
-      <el-dropdown>
-        <span class="el-dropdown-link">
-          <i class="el-icon-position"></i>
-        </span>
-        <el-dropdown-menu slot="dropdown">
-          <el-dropdown-item
-            v-for="item in romanOption"
-            :key="item.name"
-            @click="setRomanFly(item)"
-          >
-            {{ item.name }}</el-dropdown-item
-          >
-        </el-dropdown-menu>
-      </el-dropdown>
-    </el-tooltip> -->
     <div class="funcBox" v-if="testSHIPINRONGHE">
       <el-form ref="form" label-width="80px">
         <el-form-item label="鍥涘懆鏂瑰悜:">
@@ -139,128 +63,33 @@
             @input="updateVideo"
           >
           </el-slider> -->
-          <el-slider
-            :min="0"
-            :max="360"
-            v-model="robotVideoList[3].heading"
-            @input="updateVideo"
-          >
+          <el-slider :min="0" :max="360" v-model="robotVideoList[3].heading" @input="updateVideo">
           </el-slider>
         </el-form-item>
         <el-form-item label="淇话瑙掑害:">
-          <el-slider
-            :min="-89"
-            :max="89"
-            v-model="robotVideoList[3].pitch"
-            @input="updateVideo"
-          >
+          <el-slider :min="-89" :max="89" v-model="robotVideoList[3].pitch" @input="updateVideo">
           </el-slider>
         </el-form-item>
         <el-form-item label="姘村钩瑙嗚:">
-          <el-slider
-            :min="30"
-            :max="120"
-            v-model="robotVideoList[3].horizonAngle"
-            @input="updateVideo"
-          >
+          <el-slider :min="30" :max="120" v-model="robotVideoList[3].horizonAngle" @input="updateVideo">
           </el-slider>
         </el-form-item>
         <el-form-item label="鍨傜洿瑙嗚:">
-          <el-slider
-            :min="30"
-            :max="120"
-            v-model="robotVideoList[3].verticalAngle"
-            @input="updateVideo"
-          >
+          <el-slider :min="30" :max="120" v-model="robotVideoList[3].verticalAngle" @input="updateVideo">
           </el-slider>
         </el-form-item>
         <el-form-item label="鏈�杩滄姇灏�:">
-          <el-slider
-            :min="100"
-            :max="300"
-            v-model="robotVideoList[3].far"
-            @input="updateVideo"
-          >
+          <el-slider :min="100" :max="300" v-model="robotVideoList[3].far" @input="updateVideo">
           </el-slider>
         </el-form-item>
         <el-form-item label="閫忔槑搴�:">
-          <el-slider
-            :step="0.1"
-            :min="0"
-            :max="1"
-            v-model="robotVideoList[3].alpha"
-            @input="updateVideo"
-          >
+          <el-slider :step="0.1" :min="0" :max="1" v-model="robotVideoList[3].alpha" @input="updateVideo">
           </el-slider>
         </el-form-item>
       </el-form>
     </div>
 
-    <!-- <el-tooltip
-      class="item"
-      effect="dark"
-      content="瑙嗗浘澶ф暟鎹钩鍙�"
-      placement="bottom"
-      popper-class="item_tooltip"
-    >
-      <i @click="stdsjHandle" class="el-icon-data-line"> </i>
-    </el-tooltip>
-    <el-tooltip
-      class="item"
-      effect="dark"
-      content="鍦熷湴绠$悊"
-      placement="bottom"
-      popper-class="item_tooltip"
-    >
-      <i
-        @click="tdglHandle"
-        class="iconfont icon-nongcuntudiwenti"
-        :class="{ 'top-btn-active': viewer1Show }"
-      ></i>
-    </el-tooltip> -->
-    <!-- <el-tooltip
-      class="item"
-      effect="dark"
-      content="鏁版嵁姹囪仛"
-      placement="bottom"
-      popper-class="item_tooltip"
-    >
-      <i
-        @click="qytj"
-        class="el-icon-pie-chart"
-        :class="{ 'top-btn-active': qyEchartsShow }"
-      ></i>
-    </el-tooltip> -->
-    <!-- 
-    <el-tooltip
-      class="item"
-      effect="dark"
-      content="鍦烘櫙婕父"
-      placement="bottom"
-      popper-class="item_tooltip"
-    >
-      <i @click="sceneRoaming()" class="el-icon-position"></i>
-    </el-tooltip> -->
-    <!-- <el-tooltip
-      class="item"
-      effect="dark"
-      content="瑙嗛铻嶅悎"
-      placement="bottom"
-      popper-class="item_tooltip"
-    >
-      <i @click="shipinronghe(videoList)" class="el-icon-position"></i>
-    </el-tooltip>
-    <div id="scroll" class="scroll_div">
-      <ul>
-        <li
-          v-for="item in romanOption"
-          :key="item.name"
-          @click="setRomanFly(item)"
-        >
-          {{ item.name }}
-        </li>
-      </ul>
-    </div> -->
+
   </div>
 </template>
 
@@ -277,17 +106,21 @@
   display: flex;
   justify-content: space-between;
 }
+
 .specialTool .bottomwrapper:nth-of-type(2),
 .specialTool .bottomwrapper:nth-of-type(3) {
   /* background: red; */
   position: relative;
   top: -18px;
 }
+
 .bottomwrapper {
   display: flex;
   flex-direction: column;
   align-items: center;
+  cursor: pointer;
 }
+
 .imgbox {
   width: 84px;
   height: 81px;
@@ -295,6 +128,7 @@
   background-size: 100% 100%;
   position: relative;
 }
+
 .imgbox img {
   width: 38px;
   position: absolute;
@@ -302,6 +136,7 @@
   left: 52.5%;
   transform: translate(-50%, -50%);
 }
+
 .textbox {
   margin-top: 2px;
   width: 100px;
@@ -309,6 +144,7 @@
   background-image: url("~@/assets/img/new/textbg.png");
   background-size: 100% 100%;
 }
+
 .textbox span {
   text-align: center;
   display: block;
@@ -319,12 +155,14 @@
   line-height: 28px;
   text-shadow: 0px 2px 2px rgba(32, 32, 32, 0.8);
 }
+
 .list {
   position: absolute;
   background: rgba(14, 50, 143, 0.6);
   bottom: 124px;
   box-shadow: 0px 0px 10px 5px rgba(11, 78, 179, 0.7) inset;
 }
+
 .list li {
   min-width: 154px;
   height: 35px;
@@ -346,12 +184,15 @@
   width: 155px;
   border: none;
 }
-.el-dropdown /deep/ .el-dropdown-selfdefine{
+
+.el-dropdown /deep/ .el-dropdown-selfdefine {
   margin-left: 8px !important;
 }
+
 .csbj .el-dropdown-menu {
   top: -215px !important;
 }
+
 .jxmx .el-dropdown-menu {
   top: -110px !important;
 }
@@ -360,9 +201,11 @@
   color: #fff;
   line-height: 35px;
 }
+
 .el-dropdown-menu /deep/ .popper__arrow {
   border: none;
 }
+
 .csbj .el-popper /deep/ .popper__arrow::after {
   border-top-color: rgba(14, 50, 143, 0.6);
   border-top-width: 6px;
@@ -370,6 +213,7 @@
   top: 201px;
   left: 37px;
 }
+
 .jxmx .el-popper /deep/ .popper__arrow::after {
   border-top-color: rgba(14, 50, 143, 0.6);
   border-top-width: 6px;
@@ -410,6 +254,7 @@
 .scroll_div li:hover {
   color: #0987ff;
 }
+
 .funcBox {
   width: 230px;
   position: absolute;
@@ -455,6 +300,7 @@
           lon: 116.51507,
           lat: 39.79686,
           height: 40,
+          isLand: true,
           // 鍥涘懆鏂瑰悜
           heading: 305,
           // 淇话瑙掑害
@@ -469,63 +315,7 @@
           far: 3000,
           cameraIndexCode: "2b046ef675704975a8d45f1b00cd946b",
         },
-        // {
-        //   name: "video3",
-        //   lon: 116.5146339,
-        //   lat: 39.7967196,
-        //   height: 80,
-        //   // 鍥涘懆鏂瑰悜
-        //   heading: 62,
-        //   // 淇话瑙掑害
-        //   pitch: -43,
-        //   // 姘村钩瑙掑害
-        //   horizonAngle: 45,
-        //   // 鍨傜洿瑙掑害
-        //   verticalAngle: 64,
-        //   // 閫忔槑搴�
-        //   alpha: 1,
-        //   // 閫忔槑搴�
-        //   far: 166,
-        //   cameraIndexCode: "a0ffb1dedde7468187d0b0f91d431475",
-        // },
-        // {
-        //   name: "video4",
-        //   lon: 116.51496,
-        //   lat: 39.796854,
-        //   height: 80,
-        //   // 鍥涘懆鏂瑰悜
-        //   heading: 148,
-        //   // 淇话瑙掑害
-        //   pitch: -39,
-        //   // 姘村钩瑙掑害
-        //   horizonAngle: 40,
-        //   // 鍨傜洿瑙掑害
-        //   verticalAngle: 58,
-        //   // 閫忔槑搴�
-        //   alpha: 1,
-        //   // 閫忔槑搴�
-        //   far: 219,
-        //   cameraIndexCode: "e6ec9aaf9320455ab6c5ea224f3f5f38",
-        // },
-        //  {
-        //   name: "video1",
-        //   lon: 116.51522,
-        //   lat: 39.79724,
-        //   height: 80,
-        //   // 鍥涘懆鏂瑰悜
-        //   heading: 64,
-        //   // 淇话瑙掑害
-        //   pitch: -47,
-        //   // 姘村钩瑙掑害
-        //   horizonAngle: 30,
-        //   // 鍨傜洿瑙掑害
-        //   verticalAngle: 60,
-        //   // 閫忔槑搴�
-        //   alpha: 1,
-        //   // 閫忔槑搴�
-        //   far: 166,
-        //   cameraIndexCode: "1523335e47a5476f9f65f90f9983e875",
-        // },
+
       ],
       robotVideoList: [
         {
@@ -623,10 +413,10 @@
     };
   },
   computed: {
-    ...mapState(["viewer1Show", "yqfk", "qyEchartsShow"]),
+    ...mapState(["viewer1Show", "isLand", "yqfk", "qyEchartsShow"]),
   },
   methods: {
-    ...mapMutations(["setViewer1Show", "setqyEchartsShow"]),
+    ...mapMutations(["setViewer1Show", "setIsLand", "setqyEchartsShow"]),
     showList(index) {
       switch (index) {
         case "csbj":
@@ -676,20 +466,57 @@
           break;
       }
     },
-    tdglHandle() {
-      if (!this.viewer1Show) {
-        const loading = this.$loading({
-          lock: true,
-          text: "鍦熷湴绠$悊鍔熻兘鍔犺浇涓紝璇风◢鍚�",
-          spinner: "el-icon-loading",
-          background: "rgba(0, 0, 0, 0.7)",
-        });
-        setTimeout(() => {
-          loading.close();
-        }, 3500);
+    historyHandle() {
+      if (this.isLand) {
+        this.$parent.changeMode('褰卞儚搴曞浘');
+        if (!this.viewer1Show) {
+          window.loading = this.$loading({
+            lock: true,
+            text: "褰卞儚瀵规瘮鍔熻兘鍔犺浇涓紝璇风◢鍚�",
+            spinner: "el-icon-loading",
+            background: "rgba(0, 0, 0, 0.7)",
+          });
+        }
+        this.setIsLand(false);
+        this.setViewer1Show(true);
+      } else {
+        if (!this.viewer1Show) {
+          this.$parent.changeMode('褰卞儚搴曞浘');
+          window.loading = this.$loading({
+            lock: true,
+            text: "褰卞儚瀵规瘮鍔熻兘鍔犺浇涓紝璇风◢鍚�",
+            spinner: "el-icon-loading",
+            background: "rgba(0, 0, 0, 0.7)",
+          });
+        }
+        this.setIsLand(false);
+        this.setViewer1Show(!this.viewer1Show);
       }
-
-      this.setViewer1Show(!this.viewer1Show);
+    },
+    tdglHandle() {
+      if (!this.isLand) {
+        if (!this.viewer1Show) {
+          window.loading = this.$loading({
+            lock: true,
+            text: "鍦熷湴绠$悊鍔熻兘鍔犺浇涓紝璇风◢鍚�",
+            spinner: "el-icon-loading",
+            background: "rgba(0, 0, 0, 0.7)",
+          });
+        }
+        this.setIsLand(true);
+        this.setViewer1Show(true);
+      } else {
+        if (!this.viewer1Show) {
+          window.loading = this.$loading({
+            lock: true,
+            text: "鍦熷湴绠$悊鍔熻兘鍔犺浇涓紝璇风◢鍚�",
+            spinner: "el-icon-loading",
+            background: "rgba(0, 0, 0, 0.7)",
+          });
+        }
+        this.setIsLand(true);
+        this.setViewer1Show(!this.viewer1Show);
+      }
     },
     stdsjHandle() {
       // window.location.href =
@@ -745,9 +572,9 @@
         heatMapItem.deleteObject();
       }
     },
-    historyHandle() {
-      this.$store.commit("showHistory", true);
-    },
+    // historyHandle() {
+    //   this.$store.commit("showHistory", true);
+    // },
     csgxHandle() {
       Bus.$emit("openMyResourcePop", true);
     },
diff --git a/src/components/right/right-top.vue b/src/components/right/right-top.vue
index 0be5280..c265228 100644
--- a/src/components/right/right-top.vue
+++ b/src/components/right/right-top.vue
@@ -409,6 +409,7 @@
   color: #fff;
   padding: 10px;
   box-sizing: border-box;
+  z-index: 9999;
 }
 .transition-box ul li {
   /* min-width: 154px; */
diff --git a/src/store/index.js b/src/store/index.js
index 27cb7b7..aa388bb 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -19,6 +19,7 @@
 let store = new Vuex.Store({
   state: {
     viewer1Show: false,
+    isLand: true,
     qyEchartsShow: false,
     layerTreeTwoScreen: false,
     yqfk: false,
@@ -52,6 +53,9 @@
     setCesiumInit(state, b) {
       state.cesiumInit = b
     },
+    setIsLand(state, b) {
+      state.isLand = b;
+    },
     setViewer1Show(state, b) {
       state.viewer1Show = b;
     },

--
Gitblit v1.9.3