From fcb9ad20cfb4f1d691f76f575e3bcf09729be7c9 Mon Sep 17 00:00:00 2001
From: lixuliang <lixuliang_hd@126.com>
Date: 星期三, 13 十二月 2023 16:51:16 +0800
Subject: [PATCH] 最新

---
 static/NameConf.js                    |   21 +
 src/utils/poiKeys.js                  |   11 
 config/index.js                       |    5 
 src/components/map/history.vue        |    2 
 src/components/map/viewer1.vue        |  230 ++++++++++++-----
 src/components/left/leftmenu.vue      |    5 
 src/components/left/left-ztfx.vue     |    2 
 src/components/menu/tools/special.vue |  487 +++++++++++++++++++++++++++++++-----
 8 files changed, 617 insertions(+), 146 deletions(-)

diff --git a/config/index.js b/config/index.js
index 96f07f4..f4c8d16 100644
--- a/config/index.js
+++ b/config/index.js
@@ -65,7 +65,10 @@
      * Source Maps
      */
 
-    productionSourceMap: true,
+
+    
+    productionSourceMap: true,//娴忚鍣ㄦ簮浠g爜鍙互鐪嬪埌
+    // productionSourceMap: false,
     // https://webpack.js.org/configuration/devtool/#production
     devtool: '#source-map',
 
diff --git a/src/components/left/left-ztfx.vue b/src/components/left/left-ztfx.vue
index a870d38..7a78aab 100644
--- a/src/components/left/left-ztfx.vue
+++ b/src/components/left/left-ztfx.vue
@@ -405,7 +405,7 @@
             }
             pickFeature = nPickFeature;
             imgUrl = nPickFeature.primitive.image;
-            nPickFeature.primitive.image = "http://10.10.4.116:8080/YZXNCS/static/SmartEarthSDK/Workers/image/red.png"
+            nPickFeature.primitive.image = window.SmartEarthRootUrl + "Workers/image/point.png";
             // console.log(nPickFeature);
             this.$store.commit("description", nPickFeature.id.attributes);
           }
diff --git a/src/components/left/leftmenu.vue b/src/components/left/leftmenu.vue
index 3d1ffed..f5ea46b 100644
--- a/src/components/left/leftmenu.vue
+++ b/src/components/left/leftmenu.vue
@@ -2682,8 +2682,7 @@
     // },
 
     initCluster(treeNode) {
-      this.$set(treeNode, "disabled", true); //缁檛reeNode娣诲姞disabled灞炴��
-
+      // this.$set(treeNode, "disabled", true); //缁檛reeNode娣诲姞disabled灞炴��
       let that = this;
       let imgUrl;
       new Cesium.GeoJsonDataSource.load(
@@ -2691,7 +2690,7 @@
           "?version=1.3.0&request=GetFeature&format=json&typename=" +
           treeNode.layer
       ).then((dataSource) => {
-        that.$set(treeNode, "disabled", false);
+        // that.$set(treeNode, "disabled", false);
         Viewer.dataSources.add(dataSource);
         clusterItemList.push({ name: treeNode.id, dataSource: dataSource });
         // window.clusterItem = dataSource;
diff --git a/src/components/map/history.vue b/src/components/map/history.vue
index 8de9fa9..40e4d72 100644
--- a/src/components/map/history.vue
+++ b/src/components/map/history.vue
@@ -54,7 +54,7 @@
 }
 let LwSource = new Tile({
   source: new WMTS({
-    url: "http://172.26.64.84:80/service/ImageEngine/picdis/abc?user=jjjskfq&password=Jjjskfq@2022",
+    url: "http://172.26.64.84/service/ImageEngine/picdis/abc?user=jjjskfq&password=Jjjskfq@2022",
     layer: "Shiliang_Lw_2019",
     style: "",
     format: "image/png",
diff --git a/src/components/map/viewer1.vue b/src/components/map/viewer1.vue
index e98b143..52090a8 100644
--- a/src/components/map/viewer1.vue
+++ b/src/components/map/viewer1.vue
@@ -3,12 +3,19 @@
     <div id="sdkContainer1" style="height: 100%"></div>
     <div class="listBox" v-show="!isLand">
       <ul id="viewer1_lsyx">
-        <li v-for="(item, index) in arr" :key="index" @click="changeLeftMap($event, item, index)">
+        <li
+          v-for="(item, index) in arr"
+          :key="index"
+          @click="changeLeftMap($event, item, index)"
+        >
           {{ item }}
         </li>
       </ul>
     </div>
-    <layerTreeTwoScreenRight v-if="layerTreeTwoScreen" id="layerTreeTwoScreen111" />
+    <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>
@@ -45,7 +52,12 @@
         <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>
             瀹�
@@ -82,11 +94,19 @@
               :model="queryForm"
               :inline="true"
             >
-              <el-form-item label="鏌ヨ鍐呭" prop="name">
-                <el-input v-model="queryForm.content" placeholder="璇疯緭鍏ユ煡璇㈠唴瀹�" />
+              <el-form-item label="鏌ヨ鏉′欢" prop="name">
+                <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>
@@ -101,34 +121,35 @@
             <el-table-column
               property="浼佷笟鍚嶇О"
               label="浼佷笟鍚嶇О"
-              min-width="240"
+              min-width="220"
             ></el-table-column>
             <el-table-column
               property="浼佷笟绫诲瀷"
               label="浼佷笟绫诲瀷"
-              min-width="240"
+              min-width="220"
             ></el-table-column>
             <el-table-column
               property="鎴愮珛鏃堕棿"
               label="鎴愮珛鏃堕棿"
-              width="120"
+              min-width="90"
             ></el-table-column>
             <!-- <el-table-column
               property="鎵�灞炶涓�"
               label="鎵�灞炶涓�"
             ></el-table-column> -->
-            <el-table-column
-              property="娉曚汉"
-              label="娉曚汉"
-              width="80"
-            ></el-table-column>
+            <el-table-column property="娉曚汉" label="娉曚汉"></el-table-column>
             <!-- <el-table-column
               property="娉ㄥ唽鍦板潃"
               label="娉ㄥ唽鍦板潃"
             ></el-table-column> -->
-            <el-table-column label="鎿嶄綔" width="80">
+            <el-table-column label="鎿嶄綔" width="60">
               <template slot-scope="scope">
-                <el-button @click="handleClick(scope.row)" type="text" size="small">璇︽儏</el-button>
+                <el-button
+                  @click="handleClick(scope.row)"
+                  type="text"
+                  size="small"
+                  >璇︽儏</el-button
+                >
               </template>
             </el-table-column>
           </el-table>
@@ -219,7 +240,7 @@
       offset: "0%",
     };
   },
-  created() { },
+  created() {},
   computed: {
     ...mapState(["viewer1Show", "isLand", "layerTreeTwoScreen"]),
   },
@@ -240,8 +261,6 @@
             );
           }
         }, 2000);
-
-
       },
     },
     isLand(newvalue, oldvalue) {
@@ -309,8 +328,7 @@
           );
           if (this.isLand) {
             this.loadTDGLLayer();
-          }
-          else {
+          } else {
             this.initLSYX();
           }
           var p = {
@@ -354,7 +372,7 @@
   methods: {
     initLSYX() {
       let ul = document.getElementById("viewer1_lsyx");
-      let lis = ul.getElementsByTagName('li');
+      let lis = ul.getElementsByTagName("li");
       lis[9].click();
     },
     setImageComparison(isStart) {
@@ -395,8 +413,7 @@
       nLayer = this.loadBJ54ImageLayer(year);
 
       if (!LWLayer1 || Viewer1.imageryLayers.indexOf(LWLayer1) < 0) {
-        if(LWLayer1)
-        {
+        if (LWLayer1) {
           LWLayer1.destroy();
         }
         LWLayer1 = this.loadBJ54LWLayer1();
@@ -512,8 +529,6 @@
           } else {
             p = sgworld1.Navigate.getMousePosition(event);
           }
-          // alert(JSON.stringify(p))
-          // console.log(p);
           if (p) {
             if (line) {
               sgworld.Creator.DeleteObject(line);
@@ -534,10 +549,10 @@
             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"
+                  p.lon +
+                  "&lat=" +
+                  p.lat +
+                  "&geom=true&requesttype=json"
               )
               .then((response) => {
                 let center = { lon: 0, lat: 0 };
@@ -582,7 +597,7 @@
                   axios
                     .get(
                       "http://10.10.4.115:8022//poisearch/guihuacon/getInfo?ydbm=" +
-                      response.data.NO
+                        response.data.NO
                     )
                     .then(
                       (info) => {
@@ -618,10 +633,10 @@
                           }
                           try {
                             this.ydlx = data.yongdishuju["ydlxmc"];
-                          } catch (e) { }
+                          } catch (e) {}
                           try {
                             this.cyfx = data.yongdishuju["cyfx"];
-                          } catch (e) { }
+                          } catch (e) {}
                           try {
                             // this.crzt = response.data["ZT"];
                             switch (response.data["ZT"]) {
@@ -632,28 +647,28 @@
                                 this.crzt = "鏈嚭璁�";
                                 break;
                             }
-                          } catch (e) { }
+                          } catch (e) {}
                           try {
                             this.ydmj = parseFloat(
                               "" + data.yongdishuju["ydmj"]
                             ).toFixed(0);
-                          } catch (e) { }
+                          } catch (e) {}
                           try {
                             this.crnx = data.churangxinxi["crnx"];
-                          } catch (e) { }
+                          } catch (e) {}
                           try {
                             this.crnf = data.churangxinxi["crnf"];
-                          } catch (e) { }
+                          } catch (e) {}
                           try {
                             this.rjl = data.yongdishuju["rjl"];
-                          } catch (e) { }
+                          } catch (e) {}
                           try {
                             this.jzxg = data.yongdishuju["jzxg"];
-                          } catch (e) { }
+                          } catch (e) {}
                           try {
                             this.jzmd = data.yongdishuju["jzmd"];
-                          } catch (e) { }
-                        } catch (e) { }
+                          } catch (e) {}
+                        } catch (e) {}
                       },
                       (info) => {
                         this.$notify.error({
@@ -737,8 +752,8 @@
     handleClick(row) {
       window.open(
         "https://qylweb.bda.gov.cn/alldetails/#/newEnterprisedetails?uscc=" +
-        row["缁熶竴绀句細淇$敤浠g爜"] +
-        "&systemName=涓皬寰�"
+          row["缁熶竴绀句細淇$敤浠g爜"] +
+          "&systemName=涓皬寰�"
       );
     },
     detectZoom() {
@@ -1256,7 +1271,7 @@
   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: 10px 10px 8px !important;
@@ -1271,30 +1286,32 @@
   background: transparent;
 }
 
-.aboutDialog>>>.el-dialog__title {
+.aboutDialog >>> .el-dialog__title {
   color: #fff;
-  font-size: 1.1rem;
+  font-size: 18px;
 }
 
-.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-top: 5px;
   margin-bottom: 10px;
 }
 
-.el-form>>>.el-form-item__label {
+.el-form >>> .el-form-item__label {
   color: #fff;
   margin-left: 10px;
+  font-size: 16px;
 }
 
 .aboutDialog .el-dialog-div {
@@ -1350,41 +1367,42 @@
   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;
+  font-size: 14px;
 }
 
-.el-pagination>>>.el-pager li {
+.el-pagination >>> .el-pager li {
   line-height: 27px;
   background-color: transparent;
-  font-size: 1rem;
+  font-size: 14px;
 }
 
-.el-pagination>>>.el-pager li.btn-quicknext,
-.el-pagination>>>.el-pager li.btn-quickprev {
-  font-size: 1rem;
+.el-pagination >>> .el-pager li.btn-quicknext,
+.el-pagination >>> .el-pager li.btn-quickprev {
+  font-size: 14px;
   line-height: 28px;
   color: #fff;
 }
@@ -1411,13 +1429,95 @@
 
 /* 灞忓箷鍒嗚鲸鐜囨斁澶т负 125 */
 @media (-webkit-min-device-pixel-ratio: 1.25) {
+  .tdInfo_close {
+    position: absolute;
+    right: 10px;
+    top: 8px;
+    border-radius: 3px;
+    width: 20px;
+    height: 20px;
+    background-color: rgba(0, 0, 0, 0.2);
+    cursor: pointer;
+    text-align: center;
+    line-height: 19px;
+    font-size: 20px;
+  }
+
+  .tdInfo .title li {
+    margin-left: 25px;
+    line-height: 25px;
+    font-size: 15px;
+    font-weight: bold;
+    background: linear-gradient(0deg, #9cd2ff 0%, #ffffff 100%);
+    -webkit-background-clip: text;
+    -webkit-text-fill-color: transparent;
+  }
+
+  .content1,
+  .content2,
+  .content3 {
+    /* width: 100%; */
+    box-sizing: border-box;
+    /* margin-left: 42px; */
+    min-width: 220px;
+    max-width: 280px;
+    margin: 0 25px;
+    display: flex;
+    padding: 10px 0;
+  }
+
+  .content1 li,
+  .content2 li,
+  .content3 li {
+    font-size: 13px;
+  }
+
+  .tdInfo a {
+    font-size: 16px;
+  }
   .listBox li {
     font-size: 12px;
   }
-
+  .aboutDialog >>> .el-dialog__title {
+    color: #fff;
+    font-size: 14px;
+  }
   .el-table {
     font-size: 12px;
   }
+  .el-table /deep/ .el-button--text {
+    font-size: 12px;
+  }
+  .el-form >>> .el-form-item__label {
+    font-size: 13px;
+  }
+  .el-pagination >>> .el-pager li {
+    font-size: 13px;
+  }
+  .el-pagination >>> .el-pagination__total,
+  .el-pagination >>> .btn-next,
+  .el-pagination >>> .btn-prev {
+    font-size: 12px;
+  }
+  .el-pagination >>> .el-pager li.btn-quicknext,
+  .el-pagination >>> .el-pager li.btn-quickprev {
+    font-size: 12px;
+  }
+
+  .inquire >>> .el-form-item--mini .el-form-item__content,
+  .inquire >>> .el-form-item--mini .el-form-item__label {
+    line-height: 24px;
+  }
+  .inquire >>> .el-input__inner {
+    height: 26px;
+    line-height: 26px;
+  }
+  .inquire >>> .el-button--mini {
+    padding: 6px 11px;
+  }
+  .inquire >>> .el-form-item {
+    margin-right: 5px;
+  }
 }
 
 .listBox li:hover {
diff --git a/src/components/menu/tools/special.vue b/src/components/menu/tools/special.vue
index f82c78e..e9ef033 100644
--- a/src/components/menu/tools/special.vue
+++ b/src/components/menu/tools/special.vue
@@ -2,28 +2,52 @@
   <div class="special" id="special">
     <div class="specialTools">
       <div class="specialTool" @click="tdglHandle">
-        <el-tooltip class="item" effect="dark" content="鍦熷湴绠$悊" placement="top-start" popper-class="item_tooltip">
+        <el-tooltip
+          class="item"
+          effect="dark"
+          content="鍦熷湴绠$悊"
+          placement="top-start"
+          popper-class="item_tooltip"
+        >
           <el-button>
             <img src="@/assets/img/left/ztfx/tdgl.png" />
           </el-button>
         </el-tooltip>
       </div>
       <div class="specialTool" @click="stdsj">
-        <el-tooltip class="item" effect="dark" content="瑙嗗浘澶ф暟鎹钩鍙�" placement="top-start" popper-class="item_tooltip">
+        <el-tooltip
+          class="item"
+          effect="dark"
+          content="瑙嗗浘澶ф暟鎹钩鍙�"
+          placement="top-start"
+          popper-class="item_tooltip"
+        >
           <el-button>
             <img src="@/assets/img/left/ztfx/dashuju.png" />
           </el-button>
         </el-tooltip>
       </div>
       <div class="specialTool" @click="spjkHandle">
-        <el-tooltip class="item" effect="dark" content="瑙嗛鐩戞帶" placement="top-start" popper-class="item_tooltip">
+        <el-tooltip
+          class="item"
+          effect="dark"
+          content="瑙嗛鐩戞帶"
+          placement="top-start"
+          popper-class="item_tooltip"
+        >
           <el-button>
             <img src="@/assets/img/left/ztfx/spjk.png" />
           </el-button>
         </el-tooltip>
       </div>
       <div class="specialTool" @click="jjHandle">
-        <el-tooltip class="item" effect="dark" content="琛楁櫙" placement="top-start" popper-class="item_tooltip">
+        <el-tooltip
+          class="item"
+          effect="dark"
+          content="琛楁櫙"
+          placement="top-start"
+          popper-class="item_tooltip"
+        >
           <el-button>
             <img src="@/assets/img/left/ztfx/jiejing.png" />
           </el-button>
@@ -31,12 +55,26 @@
       </div>
 
       <div class="specialTool" @click="qytj">
-        <el-tooltip class="item" effect="dark" content="鏁版嵁姹囪仛" placement="top-start" popper-class="item_tooltip">
-          <el-button> <img src="@/assets/img/left/ztfx/yqfk.png" /> </el-button></el-tooltip>
+        <el-tooltip
+          class="item"
+          effect="dark"
+          content="鏁版嵁姹囪仛"
+          placement="top-start"
+          popper-class="item_tooltip"
+        >
+          <el-button> <img src="@/assets/img/left/ztfx/yqfk.png" /> </el-button
+        ></el-tooltip>
       </div>
       <div class="specialTool" @click="rangeQuery()">
-        <el-tooltip class="item" effect="dark" content="鑼冨洿鏌ヨ" placement="top-start" popper-class="item_tooltip">
-          <el-button> <img src="@/assets/img/left/ztfx/sjxq.png" /> </el-button></el-tooltip>
+        <el-tooltip
+          class="item"
+          effect="dark"
+          content="鑼冨洿鏌ヨ"
+          placement="top-start"
+          popper-class="item_tooltip"
+        >
+          <el-button> <img src="@/assets/img/left/ztfx/sjxq.png" /> </el-button
+        ></el-tooltip>
       </div>
       <!-- <div class="specialTool" @click="guanxian(openGX)">
         <el-tooltip
@@ -186,25 +224,35 @@
   background: rgba(0, 168, 255, 0.16);
 }
 </style>
-
+<style>
+#pointInfoBox {
+  /* width: 350px; */
+  padding: 20px;
+  text-align: left;
+  background-image: url("~@/assets/img/new/listbg.png");
+  /* border: 5px #08235f solid; */
+  /* border-radius: 7px; */
+  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.5);
+  color: #fff;
+}
+</style>
 <script>
 import axios from "axios";
 import { mapState, mapMutations } from "vuex";
 import Bus from "../../tools/Bus";
 import { roman } from "../../../assets/json/index.js";
 import URLInCode from "@/assets/js/urlInCode";
+import keyName from "@/utils/poiKeys";
 let handler;
-let pickFeature;
 let tooltipHTML;
-let divPoint1;
-let imgUrl;
-let scale;
+window.divPoint1 = null;
+window.pickFeature = null;
+window.imgUrl = null;
+window.scale = null;
+let buildingPolygon;
 let tooltip;
 let lineArr = [];
 let video;
-let video2;
-let video3;
-let video4;
 let promiseS3M;
 //浜ら�氬浘灞�
 let panoramaLayer;
@@ -318,7 +366,7 @@
     ...mapState(["viewer1Show", "yqfk", "cesiumInit"]),
     ...mapState(["viewer1Show", "yqfk", "qyEchartsShow"]),
   },
-  mounted() { },
+  mounted() {},
   watch: {
     cesiumInit: {
       handler(newVal, oldVal) {
@@ -393,7 +441,7 @@
               sgworld.drawObj &&
                 (sgworld.drawObj.drawHandler &&
                   sgworld.drawObj.drawHandler.destroy(),
-                  sgworld.drawObj.end && sgworld.drawObj.end());
+                sgworld.drawObj.end && sgworld.drawObj.end());
 
               let props = pick.id.properties;
               let screenHeight =
@@ -472,7 +520,7 @@
           {},
           "0",
           true,
-          function () { }
+          function () {}
         );
         window.panoramaHandler = new Cesium.ScreenSpaceEventHandler(
           Viewer.scene.canvas
@@ -484,7 +532,7 @@
           panorama.open({
             id: "qjMap",
             closeId: "panoramaClose",
-            lng: p.lon,
+            lon: p.lon,
             lat: p.lat,
           });
 
@@ -498,7 +546,7 @@
       } else {
         try {
           window.panoramaLayer.deleteObject();
-        } catch (e) { }
+        } catch (e) {}
         window.panoramaHandler.destroy();
         window.panoramaHandler = undefined;
       }
@@ -521,26 +569,34 @@
       }
     },
     clearSelectObject() {
-      if (pickFeature && pickFeature.primitive) {
-        pickFeature.primitive.image = imgUrl;
-        pickFeature.primitive.scale = scale;
-        pickFeature = null;
+      if (window.pickFeature && window.pickFeature.primitive) {
+        window.pickFeature.primitive.image = imgUrl;
+        window.pickFeature.primitive.scale = scale;
+        window.pickFeature = null;
       }
     },
     setCesuimHandle() {
+      var that = this;
+
       Bus.$on("clearSelectObject", this.clearSelectObject);
       handler && handler.destroy();
       handler = new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas);
       handler.setInputAction((event) => {
         let nPickFeature = sgworld.Viewer.scene.pick(event.position);
+
         if (Cesium.defined(nPickFeature)) {
+          this.resetImg();
+          if (buildingPolygon) {
+            sgworld.Creator.DeleteObject(buildingPolygon);
+            buildingPolygon = null;
+          }
           if (nPickFeature.primitive instanceof Cesium.Billboard) {
             if (nPickFeature.id.length > 0) {
               return;
             }
-            this.resetImg();
-            this.resetBorder();
-            pickFeature = nPickFeature;
+            // this.resetBorder();
+            window.pickFeature = nPickFeature;
+            // console.log(nPickFeature);
             imgUrl = nPickFeature.primitive.image;
             scale = nPickFeature.primitive.scale;
             nPickFeature.primitive.scale = 1;
@@ -548,7 +604,7 @@
               window.SmartEarthRootUrl + "Workers/image/point.png";
             //鐐瑰嚮寮规
             let obj = {};
-            let lng;
+            let lon;
             let lat;
             let isCamera = false;
             if (nPickFeature.id.tag) {
@@ -572,55 +628,136 @@
                 window.Viewer.scene.globe.ellipsoid.cartesianToCartographic(
                   nPickFeature.id.position._value
                 );
-              lng = Cesium.Math.toDegrees(cartographic.longitude);
+              lon = Cesium.Math.toDegrees(cartographic.longitude);
               lat = Cesium.Math.toDegrees(cartographic.latitude);
             } else {
               obj = nPickFeature.id.attributes;
-              lng = nPickFeature.id.positions[0];
+              lon = nPickFeature.id.positions[0];
               lat = nPickFeature.id.positions[1];
+            }
+            if (divPoint1) {
+              divPoint1.deleteObject();
             }
             if (!isCamera) {
               tooltipHTML = "";
-              // console.log(obj);
-
-              for (let i in obj) {
-                let value = obj[i];
-                value && (tooltipHTML += `<p>${i}锛�${value || "鏃�"}</p>`);
+              // 鍒犻櫎瀛楁
+              let { OBJECTID, ID, BZDZ, Latitude, Longtitude, ...userData } =
+                obj;
+              for (let i in userData) {
+                let value = userData[i];
+                let name = keyName[i] || i;
+                value && (tooltipHTML += `<p>${name}锛�${value || "鏃�"}</p>`);
+                console.log(tooltipHTML);
               }
-
-              if (tooltip) {
-                tooltip.show(false);
-                tooltip = null;
-              }
-              tooltip = sgworld.Core.CreateResultTooltip(window.Viewer, {
-                color: "black",
-                addY: -40,
-                far: 200000,
-                closeBtn: true,
-                close: () => {
-                  this.resetImg();
-                  this.resetBorder();
+              let description = `
+                   <div id="pointInfoBox" class="pointInfoBox" style="pointer-events:auto;">
+                    <span style="position: absolute; right: 12px; top: 6px;">脳</span>
+                    ${tooltipHTML}
+                  </div>
+                `;
+              divPoint1 = sgworld.Creator.createDivPoint(
+                "璇︾粏淇℃伅",
+                {
+                  lon: lon,
+                  lat: lat,
+                  height: 50,
                 },
-              });
-
-              let description = `<div style='background: 
-                                      rgba(14, 50, 143, 0.6);
-                                      border: 1px solid #205fbc;
-                                       border-radius: 5px;
-                                       color: #fff;
-                                       padding: 15px;  
-                                       box-shadow: 0px 1px 10px 0px rgba(3, 10, 26, 0.38);
-                                       '>${tooltipHTML}</div>`;
-
-              tooltip.showAt(
-                Cesium.Cartesian3.fromDegrees(lng, lat, 0),
-                description
+                {
+                  type: "custom",
+                  offset: ["c", 50],
+                  description,
+                  onclick(data) {
+                    // sgworld.Creator.DeleteObject(divPoint1);
+                    divPoint1 && divPoint1.deleteObject();
+                    if (window.pickFeature && window.pickFeature.primitive) {
+                      window.pickFeature.primitive.image = imgUrl;
+                      window.pickFeature.primitive.scale = scale;
+                      window.pickFeature = null;
+                    }
+                  },
+                }
               );
+              // if (tooltip) {
+              //   tooltip.show(false);
+              //   tooltip = null;
+              // }
+              // tooltip = sgworld.Core.CreateResultTooltip(window.Viewer, {
+              //   color: "black",
+              //   addY: -40,
+              //   far: 200000,
+              //   closeBtn: true,
+              //   close: () => {
+              //     this.resetImg();
+              //   },
+              // });
+
+              // let description = `<div style='background:
+              //                         rgba(14, 50, 143, 0.6);
+              //                         border: 1px solid #205fbc;
+              //                          border-radius: 5px;
+              //                          color: #fff;
+              //                          padding: 15px;
+              //                          box-shadow: 0px 1px 10px 0px rgba(3, 10, 26, 0.38);
+              //                          '>${tooltipHTML}</div>`;
+
+              // tooltip.showAt(
+              //   Cesium.Cartesian3.fromDegrees(lon, lat, 0),
+              //   description
+              // );
             }
             //鍏抽棴鍦板潡淇℃伅寮圭獥
             Bus.$emit("closeLandInfoPop", true);
             layuiLayer.close(SmartEarthPopupData.layerProp);
             this.$store.commit("description", obj);
+          } else if (nPickFeature.primitive instanceof Cesium.Cesium3DTileset) {
+            // let cartographic =
+            //   window.Viewer.scene.globe.ellipsoid.cartesianToCartographic(
+            //     nPickFeature.content.tile.boundingSphere.center
+            //   );
+            // let lon = Cesium.Math.toDegrees(cartographic.longitude);
+            // let lat = Cesium.Math.toDegrees(cartographic.latitude);
+            let p = sgworld.Navigate.getMouseDegrees(event);
+            let lon = p.lon;
+            let lat = p.lat;
+
+            axios
+              .get(
+                "http://10.10.4.121:8070/gisserver/wfsserver/yizhuang-building-wfs-1207",
+                {
+                  params: {
+                    version: "1.3.0",
+                    request: "GetFeature",
+                    typename: `浜﹀簞寤虹瓚澶栬疆寤�4326`,
+                    propertyname: "*",
+                    format: "json",
+                    filter: `<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"><ogc:Intersects><ogc:PropertyName>SAHEP</ogc:PropertyName><gml:Point > <gml:pos>${lon} ${lat}</gml:pos></gml:Point></ogc:Intersects></ogc:Filter>`,
+                  },
+                }
+              )
+              .then((response) => {
+                if (response.data.features.length > 0) {
+                  var geometry = [];
+                  let POIs = response.data.features[0].geometry.coordinates[0];
+                  for (let i = 0; i < POIs.length; i++) {
+                    geometry.push({
+                      x: parseFloat(POIs[i][0]),
+                      y: parseFloat(POIs[i][1]),
+                      z: 0,
+                    });
+                  }
+                  buildingPolygon = sgworld.Creator.createPolygon(
+                    geometry,
+                    {
+                      fillColor: "#00ff0050",
+                      outlineColor: "#ff0000",
+                      outlineWidth: 2,
+                    },
+                    1,
+                    0,
+                    "闈�"
+                  );
+                }
+              });
           }
           // else if (nPickFeature.primitive instanceof Cesium.GroundPrimitive) {
           //   let wmsLayer = this.$store.state.selectedLayers.filter((item) => {
@@ -718,20 +855,20 @@
       this.$parent.$parent.$parent.isShowSpeAnalyse = false;
     },
     resetImg() {
-      if (pickFeature && pickFeature.primitive) {
-        pickFeature.primitive.image = imgUrl;
-        pickFeature.primitive.scale = scale;
-        pickFeature = null;
+      if (window.pickFeature && window.pickFeature.primitive) {
+        window.pickFeature.primitive.image = imgUrl;
+        window.pickFeature.primitive.scale = scale;
+        window.pickFeature = null;
       }
     },
-    resetBorder() {
-      lineArr.forEach((item, index) => {
-        if (lineArr[index]) {
-          sgworld.Creator.DeleteObject(lineArr[index]);
-          lineArr[index] = null;
-        }
-      });
-    },
+    // resetBorder() {
+    //   lineArr.forEach((item, index) => {
+    //     if (lineArr[index]) {
+    //       sgworld.Creator.DeleteObject(lineArr[index]);
+    //       lineArr[index] = null;
+    //     }
+    //   });
+    // },
     stdsjHandle() {
       window.open(
         "http://10.9.2.29:8080/#/login?token=1ed14c5157acb8088efe65bc93a032c3"
@@ -873,6 +1010,206 @@
         });
       }
     },
+    read(wkt) {
+      var regExes = {
+        typeStr: /^\s*(\w+)\s*\(\s*(.*)\s*\)\s*$/,
+        emptyTypeStr: /^\s*(\w+)\s*EMPTY\s*$/,
+        spaces: /\s+/,
+        parenComma: /\)\s*,\s*\(/,
+        doubleParenComma: /\)\s*\)\s*,\s*\(\s*\(/, // can't use {2} here
+        trimParens: /^\s*\(?(.*?)\)?\s*$/,
+      };
+      /**
+       * Object with properties corresponding to the geometry types. Property values
+       * are functions that do the actual parsing.
+       * @private
+       */
+      var parse$1 = {
+        /**
+         * Return point geometry given a point WKT fragment.
+         *
+         * @param {String} str A WKT fragment representing the point.
+         * @return {Point} A point geometry.
+         * @private
+         */
+        point: function point(str) {
+          if (str === undefined) {
+            return [];
+          }
+
+          var coords = str.trim().split(regExes.spaces);
+          return [Number.parseFloat(coords[0]), Number.parseFloat(coords[1])];
+        },
+
+        /**
+         * Return a multipoint geometry given a multipoint WKT fragment.
+         *
+         * @param {String} str A WKT fragment representing the multipoint.
+         * @return {Point} A multipoint feature.
+         * @private
+         */
+        multipoint: function multipoint(str) {
+          var this$1 = this;
+
+          if (str === undefined) {
+            return [];
+          }
+
+          var point;
+          var points = str.trim().split(",");
+          var components = [];
+          for (var i = 0, len = points.length; i < len; ++i) {
+            point = points[i].replace(regExes.trimParens, "$1");
+            components.push(parse$1.point(point));
+          }
+          return components;
+        },
+
+        /**
+         * Return a linestring geometry given a linestring WKT fragment.
+         *
+         * @param {String} str A WKT fragment representing the linestring.
+         * @return {LineString} A linestring geometry.
+         * @private
+         */
+        linestring: function linestring(str) {
+          if (str === undefined) {
+            return [];
+          }
+
+          var points = str.trim().split(",");
+          var components = [];
+          var coords;
+          for (var i = 0, len = points.length; i < len; ++i) {
+            coords = points[i].trim().split(regExes.spaces);
+            components.push([
+              Number.parseFloat(coords[0]),
+              Number.parseFloat(coords[1]),
+            ]);
+          }
+          return components;
+        },
+
+        /**
+         * Return a linearring geometry given a linearring WKT fragment.
+         *
+         * @param {String} str A WKT fragment representing the linearring.
+         * @return {LinearRing} A linearring geometry.
+         * @private
+         */
+        linearring: function linearring(str) {
+          if (str === undefined) {
+            return [];
+          }
+
+          var points = str.trim().split(",");
+          var components = [];
+          var coords;
+          for (var i = 0, len = points.length; i < len; ++i) {
+            coords = points[i].trim().split(regExes.spaces);
+            components.push([
+              Number.parseFloat(coords[0]),
+              Number.parseFloat(coords[1]),
+            ]);
+          }
+          return components;
+        },
+
+        /**
+         * Return a multilinestring geometry given a multilinestring WKT fragment.
+         *
+         * @param {String} str A WKT fragment representing the multilinestring.
+         * @return {MultiLineString} A multilinestring geometry.
+         * @private
+         */
+        multilinestring: function multilinestring(str) {
+          var this$1 = this;
+
+          if (str === undefined) {
+            return [];
+          }
+
+          var line;
+          var lines = str.trim().split(regExes.parenComma);
+          var components = [];
+          for (var i = 0, len = lines.length; i < len; ++i) {
+            line = lines[i].replace(regExes.trimParens, "$1");
+            components.push(parse$1.linestring(line));
+          }
+          return components;
+        },
+
+        /**
+         * Return a polygon geometry given a polygon WKT fragment.
+         *
+         * @param {String} str A WKT fragment representing the polygon.
+         * @return {Polygon} A polygon geometry.
+         * @private
+         */
+        polygon: function polygon(str) {
+          var this$1 = this;
+
+          if (str === undefined) {
+            return [];
+          }
+
+          var ring, linestring, linearring;
+          var rings = str.trim().split(regExes.parenComma);
+          var shell;
+          var holes = [];
+          //for (var i = 0, len = rings.length; i < len; ++i) {
+          ring = rings[0].replace(regExes.trimParens, "$1");
+          linestring = ring;
+          //}
+          return linestring;
+        },
+
+        /**
+         * Return a multipolygon geometry given a multipolygon WKT fragment.
+         *
+         * @param {String} str A WKT fragment representing the multipolygon.
+         * @return {MultiPolygon} A multipolygon geometry.
+         * @private
+         */
+        multipolygon: function multipolygon(str) {
+          var this$1 = this;
+
+          if (str === undefined) {
+            return [];
+          }
+
+          var polygon;
+          var polygons = str.trim().split(regExes.doubleParenComma);
+          var components = [];
+          for (var i = 0, len = polygons.length; i < len; ++i) {
+            polygon = polygons[i].replace(regExes.trimParens, "$1");
+            components.push(parse$1.polygon(polygon));
+          }
+          return components;
+        },
+      };
+
+      var geometry, type, str;
+      wkt = wkt.replace(/[\n\r]/g, " ");
+      var matches = regExes.typeStr.exec(wkt);
+      if (wkt.search("EMPTY") !== -1) {
+        matches = regExes.emptyTypeStr.exec(wkt);
+        matches[2] = undefined;
+      }
+      if (matches) {
+        type = matches[1].toLowerCase();
+        str = matches[2];
+        if (parse$1[type]) {
+          geometry = parse$1[type].apply(this, [str]);
+        }
+      }
+
+      if (geometry === undefined) {
+        throw new Error("Could not parse WKT " + wkt);
+      }
+
+      return geometry;
+    },
   },
 };
 </script>
diff --git a/src/utils/poiKeys.js b/src/utils/poiKeys.js
new file mode 100644
index 0000000..255402f
--- /dev/null
+++ b/src/utils/poiKeys.js
@@ -0,0 +1,11 @@
+const keyName = {
+    SSDW: "鎵�灞炲崟浣�",
+    LXR: "鑱旂郴浜�",
+    DIZHI: "鍦板潃",
+    DZ: "鍦板潃",
+    QYMC: "浼佷笟鍚嶇О",
+    XYDM: "淇$敤浠g爜",
+    Name: "鍚嶇О",
+    
+}
+export default keyName
\ No newline at end of file
diff --git a/static/NameConf.js b/static/NameConf.js
new file mode 100644
index 0000000..586b07e
--- /dev/null
+++ b/static/NameConf.js
@@ -0,0 +1,21 @@
+const LayerField = {
+
+    ID: 0,
+    浜曞悕绉�: 0,
+    浜曠紪鍙�: 0,
+    鏍囨澶�: 0,
+    浣嶇疆: 0,
+    琛屾斂鍖�: 0,
+
+    閮ㄤ欢鍚嶇О: 0,
+    閮ㄤ欢缂栫爜: 0,
+    瀹夎鍦板潃: 0,
+    璺悕: 0,
+    璁惧鏉冨睘: 0,
+    閮ㄤ欢绫诲瀷: 0,
+    鎵�灞炲尯鍩�: 0,
+    缁忓害: 0,
+    绾害: 0
+
+}
+export default LayerField
\ No newline at end of file

--
Gitblit v1.9.3