From 023e57a24b3ce05de8a8921387538ec7558f8fd3 Mon Sep 17 00:00:00 2001
From: 少年 <1392120328@qq.com>
Date: 星期二, 06 二月 2024 17:27:51 +0800
Subject: [PATCH] 11

---
 src/components/viewer2.vue            |   63 +
 src/components/poplayer/poplayer2.vue |  138 +++
 src/components/poplayer/main2.vue     |   26 
 src/utils/map2.js                     |   44 
 src/utils/map2 copy.js                | 2331 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 2,552 insertions(+), 50 deletions(-)

diff --git a/src/components/poplayer/main2.vue b/src/components/poplayer/main2.vue
new file mode 100644
index 0000000..89169de
--- /dev/null
+++ b/src/components/poplayer/main2.vue
@@ -0,0 +1,26 @@
+<template>
+  <div v-if="state.show">
+      <poplayer :list="list" />
+  </div>
+</template>
+
+<script>
+import poplayer from "./poplayer2.vue";
+import store from "@/utils/store";
+export default {
+  name: "Main",
+  components: {
+    poplayer,
+  },
+  data() {
+    return {
+      state: store.Poplayer,
+    };
+  },
+  mounted() {
+  },
+};
+</script>
+
+<style scoped>
+</style>
diff --git a/src/components/poplayer/poplayer2.vue b/src/components/poplayer/poplayer2.vue
new file mode 100644
index 0000000..f045059
--- /dev/null
+++ b/src/components/poplayer/poplayer2.vue
@@ -0,0 +1,138 @@
+<template>
+  <div style="z-index: 100000000">
+    <div class="Poplayer">
+      <div class="close" @click.stop="closehandle"></div>
+      <div class="title">鐐逛綅璇︽儏</div>
+      <div class="content">
+        <div class="con-item" v-for="(item, index) in KEY" :key="index">
+          <span class="name">{{ index }}锛�</span>
+          <span class="value">{{ state.list[item] }}</span>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import store from "@/utils/store2";
+import keys from "@/utils/poiKeys";
+export default {
+  name: "Main",
+  components: {},
+  props: {
+    keys: {
+      type: Object,
+    },
+    list: {
+      type: Object,
+    },
+  },
+  data() {
+    return {
+      state: store.Poplayer,
+      KEY: {},
+    };
+  },
+  computed: {},
+  mounted() {
+    if (this.list) {
+      this.state.list = this.list;
+    }
+    this.KEY = keys[this.state.list.POITYPE];
+  },
+  watch: {
+    "state.list": function (val) {
+      this.KEY = keys[val.POITYPE];
+    },
+  },
+  methods: {
+    closehandle() {
+      if (window.pickFeature && window.pickFeature.primitive) {
+        window.pickFeature.primitive.image = window.imgUrl;
+        window.pickFeature = null;
+      }
+      store.setPoplayerListAction({});
+      divPoint3 && divPoint3.deleteObject();
+      store.setPoplayerShowAction(false);
+      if (window.tdglLine) {
+        sgworld.Creator.DeleteObject(window.tdglLine);
+        window.tdglLine = null;
+      }
+    },
+  },
+};
+</script>
+
+<style scoped>
+.Poplayer {
+  /* min-width: 350px; */
+  width: 80vw;
+  /* min-height: 180px; */
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  background-image: url("./img/bg.png");
+  z-index: 999;
+  color: #fff;
+  font-family: SourceHanSansSC-R;
+  /* padding: 20px; */
+  padding: 10px 5px 10px 5px;
+  box-sizing: border-box;
+  font-size: 16px;
+  pointer-events: all;
+}
+
+.title {
+  text-align: center;
+  font-size: 20px;
+  font-weight: 700;
+  letter-spacing: 4px;
+  padding-left: 26px;
+}
+
+/* .title {
+  display: none;
+  width: 100%;
+  height: 30px;
+  line-height: 30px;
+  padding-left: 20px;
+  margin-top: 10px;
+} */
+
+.close {
+  pointer-events: all;
+  width: 28px;
+  height: 28px;
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  background-image: url("./img/close.png");
+  float: right;
+  margin-top: 8px;
+  margin-right: 5px;
+  cursor: pointer;
+}
+
+.content {
+  width: 100%;
+  margin: auto;
+}
+
+.con-item {
+  width: 90%;
+  overflow: hidden;
+  margin-bottom: 7px;
+  margin-left: 25px;
+  margin-right: 20px;
+  word-break: break-all;
+}
+
+.name {
+  /* min-width: 100px; */
+  float: left;
+}
+
+.value {
+  max-width: 400px;
+  float: left;
+  color: aqua;
+}
+</style>
diff --git a/src/components/viewer2.vue b/src/components/viewer2.vue
index bd213aa..b8e22f5 100644
--- a/src/components/viewer2.vue
+++ b/src/components/viewer2.vue
@@ -4,8 +4,9 @@
     <div id="openlayerContainer" @click="clicktoclose"></div>
 
     <div id="ponitPanel">
+      <div id="ponitPanel-close" @click.stop="closehandle"></div>
       <div class="title">鐐逛綅璇︽儏</div>
-      <div class="content">
+      <div id="ponitPanel-content">
 
       </div>
 
@@ -86,7 +87,7 @@
 import layerTreePanel from "./sideMenu/layerTreePanel/main2.vue";
 import history from "./poplayer/history.vue";
 import landAdminInfo from "./poplayer/landAdmin.vue";
-import poplayer from "./poplayer/main.vue";
+import poplayer from "./poplayer/main2.vue";
 import sliderAlpha from "./sideMenu/sliderAlpha/main.vue";
 import Axios from "axios";
 
@@ -184,7 +185,7 @@
         resolutions[z] = width / (256 * Math.pow(2, z));
         matrixIds[z] = z;
       }
-      let wmtsTileGrid = new  ol.tilegrid.WMTS({
+      let wmtsTileGrid = new ol.tilegrid.WMTS({
         origin: origin,
         resolutions: resolutions,
         matrixIds: matrixIds,
@@ -265,7 +266,7 @@
       setClick(true)
       // var url =
       //   "https://skyzt.bda.gov.cn/gisserver/tmsserver/chengshiguihua_dikuaibianhao_tms/";
-      
+
       // var tmslayer = new ol.layer.Tile({
       //   source: new ol.source.XYZ({
       //     projection: projection,
@@ -418,7 +419,7 @@
   width: 100%;
   height: 100%;
   background: black;
-  position: absolute !important;
+  /* position: absolute !important; */
   z-index: 0;
 }
 
@@ -456,7 +457,7 @@
 }
 
 #ponitPanel {
-  display: none;
+  /* display: none; */
   width: 80vw;
   background-repeat: no-repeat;
   background-size: 100% 100%;
@@ -465,13 +466,55 @@
   color: #fff;
   font-family: SourceHanSansSC-R;
   padding: 10px 5px 10px 5px;
-  box-sizing: border-box;
   font-size: 16px;
   pointer-events: all;
-  position: absolute;
-  bottom: 12px;
-  left: -50px;
+}
+
+.title {
+  width: 100%;
+  text-align: center;
+  font-size: 20px;
+  font-weight: 700;
+  letter-spacing: 4px;
+  padding-left: 26px;
 }
 
 
+#ponitPanel-close {
+  pointer-events: all;
+  width: 28px;
+  height: 28px;
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  background-image: url("./poplayer/img/close.png");
+  margin-top: 8px;
+  margin-right: 5px;
+  float: right;
+  cursor: pointer;
+}
+
+#ponitPanel-content {
+  width: 100%;
+  margin: auto;
+}
+
+.ponitPanel-item {
+  width: 90%;
+  overflow: hidden;
+  margin-bottom: 7px;
+  margin-left: 25px;
+  margin-right: 20px;
+  word-break: break-all;
+}
+
+.ponitPanel-name {
+  /* min-width: 100px; */
+  float: left;
+}
+
+.ponitPanel-value {
+  max-width: 400px;
+  float: left;
+  color: aqua;
+}
 </style>
diff --git a/src/utils/map2 copy.js b/src/utils/map2 copy.js
new file mode 100644
index 0000000..89f6cf8
--- /dev/null
+++ b/src/utils/map2 copy.js
@@ -0,0 +1,2331 @@
+// import { Feature } from "ol";
+// import VectorLayer from "ol/layer/Vector";
+// import VectorSource from "ol/source/Vector";
+// import { Style, Icon, Fill, Stroke, Text, Circle as CircleStyle } from "ol/style";
+// import { Point, LineString } from "ol/geom";
+// import Overlay from 'ol/Overlay.js';
+// import { unByKey } from "ol/Observable.js"; //绉婚櫎浜嬩欢
+import Vue from 'vue';
+import axios from "axios";
+import _GLOBAL from '@/assets/GLOBAL2';
+import poiLayer from '@/components/poplayer/main';
+import store from "@/utils/store2";
+import { Message } from 'element-ui';
+let tdglLine, qiyexinxi, qysl, ydbm, ydlx, cyfx, crzt, ydmj, crnx, crnf, rjl, jzxg, jzmd;
+let objdata;
+var clickEvent;
+
+window.tdglLine = tdglLine
+let PoiLayerConstructor = Vue.extend(poiLayer);
+/**鏍稿績鍖� */
+export function loadHXQ() {
+    let urls = window.gisBaseUrl + "/gisserver/wmsserver/YZ_BJ60";
+    window.HXQ = sgworld.Creator.createImageryProvider('hxqgisserver', "wms", {
+        url: urls,
+        layers: '',
+        parameters: {
+            format: "image/png",
+            transparent: true,
+        }
+    }, "0", undefined, true, function () {
+        Viewer.camera.flyTo({
+            destination: Cesium.Cartesian3.fromDegrees(116.52556, 39.71046, 34189.97),
+            orientation: {//璁剧疆鐩告満鐨凥eading锛孭itch锛孯oll锛屽弬鐓т笂鍥�
+                heading: Cesium.Math.toRadians(360.0),
+                pitch: Cesium.Math.toRadians(-90.0),
+                roll: 0.0
+            },
+            duration: 3
+        });
+    });
+}
+/**缁忓紑鍖� */
+export function loadJKQ() {
+    let urls = window.gisBaseUrl + "/gisserver/wmsserver/YZ_BJ";
+    window.JKQ = sgworld.Creator.createImageryProvider('jkqgisserver', "wms", {
+        url: urls,
+        layers: '',
+        parameters: {
+            format: "image/png",
+            transparent: true,
+        }
+    }, "0", undefined, true, function () {
+        Viewer.camera.flyTo({
+            destination: Cesium.Cartesian3.fromDegrees(116.52902, 39.67853, 59383.65),
+            orientation: {//璁剧疆鐩告満鐨凥eading锛孭itch锛孯oll锛屽弬鐓т笂鍥�
+                heading: Cesium.Math.toRadians(360.0),
+                pitch: Cesium.Math.toRadians(-90.0),
+                roll: 0.0
+            },
+            duration: 3
+        });
+    });
+
+}
+/**涔¢晣 */
+export function loadXZ() {
+    let urls = window.gisBaseUrl + "/gisserver/wmsserver/xiangzhen";
+    window.XZ = sgworld.Creator.createImageryProvider('xzgisserver', "wms", {
+        url: urls,
+        layers: '',
+        parameters: {
+            format: "image/png",
+            transparent: true,
+        }
+    }, "0", undefined, true, function () {
+        Viewer.camera.flyTo({
+            destination: Cesium.Cartesian3.fromDegrees(116.55718, 39.65440, 53149.25),
+            orientation: {//璁剧疆鐩告満鐨凥eading锛孭itch锛孯oll锛屽弬鐓т笂鍥�
+                heading: Cesium.Math.toRadians(360.0),
+                pitch: Cesium.Math.toRadians(-90.0),
+                roll: 0.0
+            },
+            duration: 3
+        });
+    });
+
+}
+/**绐ㄤ簳 */
+export function loadManhole() {
+    window.clusterLayer && window.clusterLayer.clear();
+    axios
+        .get(window.gisBaseUrl + '/gisserver/wfsserver/yinjing?version=1.3.0&request=GetFeature&format=json&typename=yz浜曟暟鎹�')
+        .then(res => {
+            // let manholeList = JSON.parse(res.data);
+            store.setLayerPanelShow(false);
+            res.data.features.forEach((item, index) => {
+                window.clusterLayer.add(
+                    new SmartEarth.Degrees(item.geometry.coordinates[0], item.geometry.coordinates[1], 15),
+                    {
+                        name: `YINJ-${item.properties.ID}-${item.properties['浜曞悕绉�']}-${item.properties['浜曟繁']}-${item.properties['浜曠被鍨�']}-${item.properties['浜曠紪鍙�']}-${item.properties['浣嶇疆']}-${item.properties['鏍囨澶囨敞']}-${item.properties['琛屾斂鍖虹紪鐮�']}-${item.geometry.coordinates[0]}-${item.geometry.coordinates[1]}`,
+                        image: SmartEarthRootUrl + 'Workers/image/mark.png',
+                        scale: 0.5
+                    }
+                )
+            });
+
+            Viewer.camera.flyTo({
+                destination: Cesium.Cartesian3.fromDegrees(116.54555, 39.74727, 20565.49),
+                orientation: {//璁剧疆鐩告満鐨凥eading锛孭itch锛孯oll锛屽弬鐓т笂鍥�
+                    heading: Cesium.Math.toRadians(360.0),
+                    pitch: Cesium.Math.toRadians(-90.0),
+                    roll: 0.0
+                },
+                duration: 3
+            });
+        })
+    // let url = window.gisBaseUrl + '/gisserver/wfsserver/yinjing';
+    // let sgwfs = new SmartEarth.WFSTool(Viewer);
+    // sgwfs.CreateWfs('point', {
+    //     urls: url,
+    //     layer: 'yz浜曟暟鎹�',
+    //     text: '[浜曞悕绉癩',
+    //     image: SmartEarthRootUrl + 'Workers/image/mark.png',
+    //     //offsetX: 20,
+    //     offsetY: -40,
+    //     color: '#de3',
+    //     disableDepthTestDistance: Infinity
+    // })
+}
+/**浼佷笟 */
+export function loadEnterprise() {
+    new Cesium.GeoJsonDataSource.load(
+        window.gisBaseUrl + '/gisserver/wfsserver/qiyelianqiye?version=1.3.0&request=GetFeature&format=json&typename=浼佷笟閾句紒涓�'
+    )
+        // axios.get(window.gisBaseUrl + '/gisserver/wfsserver/qiyelianqiye?version=1.3.0&request=GetFeature&format=json&typename=浼佷笟閾句紒涓�')
+        .then(dataSource => {
+            console.log(dataSource);
+            store.qiyeJsonInfo = dataSource
+        })
+        .catch((err) => {
+            console.log(err);
+        });
+}
+// export function loadEnterprise() {
+//     window.clusterLayer && window.clusterLayer.clear();
+//     axios
+//         .get(window.gisBaseUrl + '/gisserver/wfsserver/qiyelianqiye?version=1.3.0&request=GetFeature&format=json&typename=浼佷笟閾句紒涓�')
+//         .then(res => {
+//             // let manholeList = JSON.parse(res.data);
+//             store.setLayerPanelShow(false);
+//             res.data.features.forEach((item, index) => {
+//                 window.clusterLayer.add(
+//                     new SmartEarth.Degrees(item.geometry.coordinates[0], item.geometry.coordinates[1], 15),
+//                     {
+//                         name: `QY&${item.properties.ID}&${item.properties['QYMC']}&${item.properties['DZ']}&${item.properties['BZDZ']}&${item.properties['XYDM']}&${item.geometry.coordinates[0]}&${item.geometry.coordinates[1]}`,
+//                         image: SmartEarthRootUrl + 'Workers/image/mark.png',
+//                         scale: 0.5
+//                     }
+//                 )
+//             });
+
+//             Viewer.camera.flyTo({
+//                 destination: Cesium.Cartesian3.fromDegrees(116.54555, 39.74727, 20565.49),
+//                 orientation: {//璁剧疆鐩告満鐨凥eading锛孭itch锛孯oll锛屽弬鐓т笂鍥�
+//                     heading: Cesium.Math.toRadians(360.0),
+//                     pitch: Cesium.Math.toRadians(-90.0),
+//                     roll: 0.0
+//                 },
+//                 duration: 3
+//             });
+//         })
+//     // let url = window.gisBaseUrl + '/gisserver/wfsserver/yinjing';
+//     // let sgwfs = new SmartEarth.WFSTool(Viewer);
+//     // sgwfs.CreateWfs('point', {
+//     //     urls: url,
+//     //     layer: 'yz浜曟暟鎹�',
+//     //     text: '[浜曞悕绉癩',
+//     //     image: SmartEarthRootUrl + 'Workers/image/mark.png',
+//     //     //offsetX: 20,
+//     //     offsetY: -40,
+//     //     color: '#de3',
+//     //     disableDepthTestDistance: Infinity
+//     // })
+// }
+/**鎽勫儚澶� */
+export function loadCamera() {
+    window.clusterLayer && window.clusterLayer.clear();
+    axios
+        .get(window.gisBaseUrl + '/gisserver/wfsserver/YZ_SPJK_NEW_wfs?version=1.3.0&request=GetFeature&format=json&typename=鎽勫儚澶�0423')
+        .then(res => {
+            store.setLayerPanelShow(false);
+            res.data.features.forEach((item, index) => {
+                window.clusterLayer.add(
+                    new SmartEarth.Degrees(item.geometry.coordinates[0], item.geometry.coordinates[1], 15),
+                    {
+                        name: `SPJK-${item.properties['IP鍦板潃']}-${item.properties['JK鍐呯爜']}-${item.properties['JK鍖哄煙']}-${item.properties['JK鍚嶇О']}-${item.properties['JK绫诲瀷']}-${item.properties['JK缂栧彿']}`,
+                        image: SmartEarthRootUrl + 'Workers/image/mark1.png',
+                        scale: 1
+                    }
+                )
+            });
+            Viewer.camera.flyTo({
+                destination: Cesium.Cartesian3.fromDegrees(116.51463, 39.73972, 19586.80),
+                orientation: {//璁剧疆鐩告満鐨凥eading锛孭itch锛孯oll锛屽弬鐓т笂鍥�
+                    heading: Cesium.Math.toRadians(360.0),
+                    pitch: Cesium.Math.toRadians(-90.0),
+                    roll: 0.0
+                },
+                duration: 3
+            });
+        })
+    // let url = window.gisBaseUrl + '/gisserver/wfsserver/YZ_SPJK_NEW_wfs';
+    // let sgwfs2 = new SmartEarth.WFSTool(Viewer);
+    // sgwfs2.CreateWfs('point', {
+    //     urls: url,
+    //     layer: '鎽勫儚澶�0423',
+    //     text: '[JK鍚嶇О]',
+    //     image: SmartEarthRootUrl + 'Workers/image/mark.png',
+    //     //offsetX: 20,
+    //     offsetY: -40,
+    //     color: '#de3',
+    //     disableDepthTestDistance: Infinity
+    // })
+}
+/**娓呴櫎鐭㈤噺鍦板浘 */
+export function clearMap() {
+    window.HXQ && window.HXQ.deleteObject();
+    window.JKQ && window.JKQ.deleteObject();
+    window.XZ && window.XZ.deleteObject();
+}
+// 宸﹀嚮浜嬩欢
+window.divPoint3 = null;
+window.instance = null;
+window.pickFeature = null;
+window.imgUrl = null;
+window.scale = null;
+window.clickPOI = null
+function 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;
+}
+export function leftClick() {
+    try {
+        // 鐐瑰嚮浜嬩欢
+        let handler = new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas);
+        // let nPickFeature;
+        // 榧犳爣鐐瑰嚮浜嬩欢
+        handler.setInputAction(event => {
+            window.clickPOI = sgworld.Navigate.getMouseDegrees(event);
+            // console.log(window.clickPOI);
+            if (window.clickPOI) {
+                // 闅愯棌搴曢儴鍥惧眰闈㈢増
+                store.setLayerPanelShow(false);
+                // 闅愯棌鍙充笂瑙掕彍鍗曢潰鏉�
+                store.setMenuListShow(false);
+                // 闅愯棌搴曢儴婕父闈㈡澘
+                store.setRoamPanelShow(false);
+
+            }
+            // 鍦熷湴绠$悊
+            if (store.tdglInfo.flag) {
+                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=" +
+                        window.gisBaseUrl + "yzxncsApi/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=" +
+                        window.clickPOI.lon +
+                        "&lat=" +
+                        window.clickPOI.lat +
+                        "&geom=true&requesttype=json"
+                    ).then(response => {
+                        let center = { lon: 0, lat: 0 };
+                        let polygon = 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 (window.tdglLine) {
+                                sgworld.Creator.DeleteObject(window.tdglLine);
+                                window.tdglLine = null;
+                            }
+                            window.tdglLine = sgworld.Creator.createPolyline(
+                                geometry,
+                                "#ff0000",
+                                1,
+                                0,
+                                "绾�"
+                            );
+                            if (center.lon != 0 && center.lat != 0) {
+                                Viewer.camera.flyTo({
+                                    destination: Cesium.Cartesian3.fromDegrees(
+                                        center.lon,
+                                        center.lat,
+                                        1000
+                                    ),
+                                    duration: 1.0,
+                                });
+                            }
+                        }
+                        if (center.lon != 0 && center.lat != 0) {
+                            axios
+                                .get(
+                                    // "http://10.10.4.115:8022//poisearch/guihuacon/getInfo?ydbm=" +
+                                    window.gisBaseUrl + "yzxncsApi/poisearch/guihuacon/getInfo?ydbm=" +
+                                    response.data.NO
+                                )
+                                .then(
+                                    info => {
+                                        let data = info.data.data;
+                                        if (data.yongdishuju === null) {
+                                            objdata = {
+                                                POITYPE: "NOTDGL",
+                                                zwxx: "鏆傛棤淇℃伅",
+                                                lon: window.clickPOI.lon,
+                                                lat: window.clickPOI.lat,
+                                            }
+                                        } else {
+                                            qiyexinxi = info.data.data.qiyexinxi;
+                                            qysl = data.qiyexinxi.length;
+                                            if (qysl > 0) {
+                                                ydbm = data.qiyexinxi[0]["鍦板潡缂栧彿"];
+                                            } else {
+                                                ydbm = data.churangxinxi["ydbh"];
+                                            }
+                                            try {
+                                                ydlx = data.yongdishuju["ydlxmc"];
+                                            } catch (e) { }
+                                            try {
+                                                cyfx = data.yongdishuju["cyfx"];
+                                            } catch (e) { }
+                                            try {
+                                                // this.crzt = response.data["ZT"];
+                                                switch (response.data["ZT"]) {
+                                                    case 3:
+                                                        crzt = "宸插嚭璁�";
+                                                        break;
+                                                    case 4:
+                                                        crzt = "鏈嚭璁�";
+                                                        break;
+                                                }
+                                            } catch (e) { }
+                                            try {
+                                                ydmj = parseFloat(
+                                                    "" + data.yongdishuju["ydmj"]
+                                                ).toFixed(0);
+                                            } catch (e) { }
+                                            try {
+                                                crnx = data.churangxinxi["crnx"];
+                                            } catch (e) { }
+                                            try {
+                                                crnf = data.churangxinxi["crnf"];
+                                            } catch (e) { }
+                                            try {
+                                                rjl = data.yongdishuju["rjl"];
+                                            } catch (e) { }
+                                            try {
+                                                jzxg = data.yongdishuju["jzxg"];
+                                            } catch (e) { }
+                                            try {
+                                                jzmd = data.yongdishuju["jzmd"];
+                                            } catch (e) { }
+                                            objdata = {
+                                                POITYPE: "TDGL",
+                                                ydbm,
+                                                ydlx,
+                                                cyfx,
+                                                crzt,
+                                                ydmj,
+                                                ydbm,
+                                                crnx,
+                                                crnf,
+                                                rjl,
+                                                jzxg,
+                                                jzmd,
+                                                lon: window.clickPOI.lon,
+                                                lat: window.clickPOI.lat,
+                                            }
+                                        }
+
+                                        store.setTdglShow(false);
+                                        store.setTdlgInfo({});
+                                        store.setTdglShow(true);
+                                        store.setTdlgInfo(objdata);
+
+                                        // divPoint3 && divPoint3.deleteObject();
+                                        // store.setPoplayerShowAction(false);
+                                        // store.setPoplayerListAction({});
+                                        // store.setPoplayerShowAction(true);
+
+                                        // store.setPoplayerListAction(objdata);
+                                        // if (window.instance) {
+                                        //     window.instance.$destroy();
+                                        // }
+                                        // window.instance = new PoiLayerConstructor({
+                                        //     data: {
+                                        //         list: objdata
+                                        //     }
+                                        // });
+                                        // window.instance.$mount();
+                                        // divPoint3 = window.sgworld.Creator.createDivPoint('', {
+                                        //     lon: objdata.lon,
+                                        //     lat: objdata.lat,
+                                        //     height: 5
+                                        // }, {
+                                        //     type: "custom",
+                                        //     offset: ["c", 20],
+                                        //     description: window.instance.$el,
+                                        //     near: 0,
+                                        //     far: 100000
+                                        // });
+                                    }
+                                );
+                        }
+                    })
+            }
+            let nPickFeature = sgworld.Viewer.scene.pick(event.position);
+            // console.log(nPickFeature);
+            // if (nPickFeature == undefined) {
+            //     window.flyPoint && Viewer.entities.remove(window.flyPoint);
+            //     window.flyPoint = undefined;
+            // }
+            // console.log(event.position);//灞忓箷浣嶇疆
+            if (!nPickFeature || !nPickFeature.id) {
+                return
+            } else if (nPickFeature.primitive instanceof Cesium.Billboard) {
+                let cartographic =
+                    window.Viewer.scene.globe.ellipsoid.cartesianToCartographic(
+                        nPickFeature.primitive.position
+                    );
+                let lon = Cesium.Math.toDegrees(cartographic.longitude);
+                let lat = Cesium.Math.toDegrees(cartographic.latitude);
+                let p = sgworld.Navigate.getDegrees();
+                let flyHeight
+                if (p.height > 2000) {
+                    flyHeight = p.height / 1.8
+                } else if (p.height > 500) {
+                    flyHeight = 500
+                } else {
+                    flyHeight = p.height
+                }
+                // console.log(p);
+                Viewer.camera.flyTo({
+                    destination: Cesium.Cartesian3.fromDegrees(
+                        window.clickPOI.lon,
+                        window.clickPOI.lat,
+                        flyHeight
+                    ),
+                    duration: 1.0,
+                });
+
+                if (nPickFeature.id.length > 0) {
+                    return;
+                }
+                // 閲嶇疆鍥炬爣
+                if (window.pickFeature && window.pickFeature.primitive) {
+                    window.pickFeature.primitive.image = imgUrl;
+                    window.pickFeature.primitive.scale = scale;
+                    window.pickFeature = null;
+                }
+                // 澶囦唤鎷惧彇鐨勫璞�
+                window.pickFeature = nPickFeature;
+                imgUrl = nPickFeature.primitive.image;
+                scale = nPickFeature.primitive.scale;
+                nPickFeature.primitive.scale = 1;
+                nPickFeature.primitive.image =
+                    window.SmartEarthRootUrl + "Workers/image/point.png";
+                //鐐瑰嚮寮规(閮ㄤ欢銆佷紒涓氥�佺洃鎺�)
+                if (nPickFeature.id.tag || nPickFeature.id.show) {
+                    let properties = nPickFeature.id.properties;
+                    let propertyNames = nPickFeature.id.properties.propertyNames;
+                    if (propertyNames.indexOf("鐩戞帶鍚�") !== -1) {
+                        // objdata = {
+                        //     POITYPE: "SPJK",
+                        //     name: properties["JK鍚嶇О"]._value,
+                        //     type: properties["JK绫诲瀷"]._value,
+                        //     function: properties["鍔熻兘"]._value,
+                        //     area: properties["鎵�鍦ㄥ尯"]._value,
+                        //     number: properties["JK缂栧彿"]._value,
+                        //     code: properties["JK鍐呯爜"]._value,
+                        //     lon: lon,
+                        //     lat: lat,
+                        // }
+                        Message({
+                            message: '杩炴帴鐘舵�佹煡璇腑',
+                            type: 'info',
+                            offset: 60,
+                            center: true,
+                            duration: 1000,
+                        });
+                        layerOpen(properties["JK鍚嶇О"]._value, {
+                            width: "100%",
+                            height: "40%",
+                            // offset: [offsetTop + "px", "380px"],
+                            url: "../../static/video/video.html?code=" + properties["JK鍐呯爜"]._value,
+                            fn: {
+                                success: (layero, index) => {
+                                    SmartEarthPopupData.layerContainer = layero;
+                                },
+                                end: () => {
+
+                                },
+                                cancel: () => {
+                                    // 閲嶇疆鍥炬爣
+                                    if (window.pickFeature && window.pickFeature.primitive) {
+                                        window.pickFeature.primitive.image = imgUrl;
+                                        window.pickFeature.primitive.scale = scale;
+                                        window.pickFeature = null;
+                                    }
+                                    sgworld.drawObj &&
+                                        sgworld.drawObj.end &&
+                                        sgworld.drawObj.end("cancel");
+                                },
+                            },
+                        });
+                        return
+                    } else if (propertyNames.indexOf("閮ㄤ欢鍚嶇О") !== -1) {
+                        objdata = {
+                            // 鐐逛綅绫诲瀷锛堜腑鑻辨枃閰嶇疆琛╬oiKeys.js)
+                            POITYPE: "CSBJ",
+                            // 灞曠ず瀛楁
+                            name: properties["閮ㄤ欢鍚嶇О"]._value,
+                            address: properties["瀹夎鍦板潃"]._value,
+                            code: properties["閮ㄤ欢缂栫爜"]._value,
+                            type: properties["閮ㄤ欢绫诲瀷"]._value,
+                            // 寮规缁忕含搴�
+                            lon: lon,
+                            lat: lat,
+                        }
+                    } else if (propertyNames.indexOf("浜曠紪鍙�") !== -1) {
+                        objdata = {
+                            POITYPE: "YINJ",
+                            name: properties["浜曞悕绉�"]._value,
+                            depth: properties["浜曟繁"]._value,
+                            type: properties["浜曠被鍨�"]._value,
+                            location: properties["浣嶇疆"]._value,
+                            code: properties["浜曠紪鍙�"]._value,
+                            lon: lon,
+                            lat: lat,
+                        }
+                    } else if (propertyNames.indexOf("QYMC") !== -1) {
+                        objdata = {
+                            POITYPE: "QY",
+                            QYMC: properties["QYMC"]._value,
+                            XYDM: properties["XYDM"]._value,
+                            BZDZ: properties["BZDZ"]._value,
+                            DZ: properties["DZ"]._value,
+                            lon: lon,
+                            lat: lat,
+                        }
+                    } else if (propertyNames.includes("id")) {
+                        objdata = {
+                            POITYPE: "POINT",
+                            name: properties["_name"]._value,
+                            address: properties["_address"]._value,
+                            lat: properties["_lat"]._value,
+                            lon: properties["_lng"]._value,
+                        }
+                    }
+                    divPoint3 && divPoint3.deleteObject();
+                    store.setPoplayerShowAction(false);
+                    store.setPoplayerListAction({});
+                    store.setPoplayerShowAction(true);
+                    // let arr = nPickFeature.id.name.split('&');
+                    // console.log(arr);
+                    // let objdata = {
+                    //     POITYPE: "QY",
+                    //     QYMC: arr[2],
+                    //     DZ: arr[3],
+                    //     BZDZ: arr[4],
+                    //     XYDM: arr[5],
+                    //     lon: arr[6],
+                    //     lat: arr[7],
+                    // }
+                    store.setPoplayerListAction(objdata);
+                    if (window.instance) {
+                        window.instance.$destroy();
+                    }
+                    window.instance = new PoiLayerConstructor({
+                        data: {
+                            list: objdata
+                        }
+                    });
+                    window.instance.$mount();
+                    divPoint3 = window.sgworld.Creator.createDivPoint('', {
+                        lon: objdata.lon,
+                        lat: objdata.lat,
+                        height: 5
+                    }, {
+                        type: "custom",
+                        offset: ["c", 20],
+                        description: window.instance.$el,
+                        near: 0,
+                        far: 100000
+                    });
+                    return;
+                }
+                // 
+            }
+            // if (nPickFeature.id && nPickFeature.id.name.indexOf('YINJ') != -1) {
+            //     divPoint3 && divPoint3.deleteObject();
+            //     store.setPoplayerShowAction(false);
+            //     store.setPoplayerListAction({});
+            //     store.setPoplayerShowAction(true);
+            //     let arr = nPickFeature.id.name.split('-');
+            //     let objdata = {
+            //         POITYPE: "YINJ",
+            //         name: arr[2],
+            //         depth: arr[3],
+            //         type: arr[4],
+            //         code: arr[5],
+            //         location: arr[6],
+            //         text: arr[7],
+            //         areaCode: arr[8],
+            //         lon: arr[9],
+            //         lat: arr[10]
+            //     }
+            //     store.setPoplayerListAction(objdata);
+            //     if (window.instance) {
+            //         window.instance.$destroy();
+            //     }
+            //     window.instance = new PoiLayerConstructor({
+            //         data: {
+            //             list: objdata
+            //         }
+            //     });
+            //     window.instance.$mount();
+            //     divPoint3 = window.sgworld.Creator.createDivPoint('', {
+            //         lon: objdata.lon,
+            //         lat: objdata.lat,
+            //         height: 5
+            //     }, {
+            //         type: "custom",
+            //         offset: ["c", 20],
+            //         description: window.instance.$el,
+            //         near: 0,
+            //         far: 100000
+            //     });
+            //     return;
+            // }
+            // else if (nPickFeature.id && nPickFeature.id.name.indexOf('QY') != -1) {
+            //     divPoint3 && divPoint3.deleteObject();
+            //     store.setPoplayerShowAction(false);
+            //     store.setPoplayerListAction({});
+            //     store.setPoplayerShowAction(true);
+            //     let arr = nPickFeature.id.name.split('&');
+            //     // console.log(arr);
+            //     let objdata = {
+            //         POITYPE: "QY",
+            //         QYMC: arr[2],
+            //         DZ: arr[3],
+            //         BZDZ: arr[4],
+            //         XYDM: arr[5],
+            //         lon: arr[6],
+            //         lat: arr[7],
+            //     }
+            //     store.setPoplayerListAction(objdata);
+            //     if (window.instance) {
+            //         window.instance.$destroy();
+            //     }
+            //     window.instance = new PoiLayerConstructor({
+            //         data: {
+            //             list: objdata
+            //         }
+            //     });
+            //     window.instance.$mount();
+            //     divPoint3 = window.sgworld.Creator.createDivPoint('', {
+            //         lon: objdata.lon,
+            //         lat: objdata.lat,
+            //         height: 5
+            //     }, {
+            //         type: "custom",
+            //         offset: ["c", 20],
+            //         description: window.instance.$el,
+            //         near: 0,
+            //         far: 100000
+            //     });
+            //     return;
+            // }
+            else {
+                // return;
+            }
+        }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
+
+    } catch (e) { }
+}
+
+//鍔犺浇涓夌淮鍥惧眰
+export function loadLayer(treeNode) {
+    console.log('loadLayer', treeNode);
+    let layer;
+    switch (treeNode.sourceType) {
+        case "tms":
+            layer = sgworld.Creator.createImageryProvider(
+                treeNode.name,
+                "tms",
+                {
+                    id: treeNode.id,
+                    url: treeNode.urls,
+                    fileExtension: treeNode.img || "png",
+                    enablePickFeatures: false,
+                    alpha: treeNode.alpha,
+                },
+                "0",
+                undefined,
+                true,
+                ""
+            );
+            return layer;
+            break;
+        case "local-map":
+            // 娣诲姞鏈湴鍦板浘
+            if (treeNode.tms) {
+                layer = sgworld.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,
+                        minificationFilter: Cesium.TextureMinificationFilter.NEAREST_MIPMAP_LINEAR,
+                        magnificationFilter: Cesium.TextureMinificationFilter.NEAREST_MIPMAP_LINEAR,
+                        tilingScheme:
+                            treeNode.tileType === "Geo"
+                                ? new Cesium.GeographicTilingScheme()
+                                : new Cesium.WebMercatorTilingScheme(),
+                        alpha: treeNode.alpha,
+                    },
+                    "0",
+                    treeNode.zIndex,
+                    true,
+                    ""
+                );
+            } else {
+                layer = sgworld.Creator.createUrlTemplateImageryProvider(
+                    treeNode.name,
+                    {
+                        id: treeNode.id,
+                        url: `${treeNode.urls}/${treeNode.tile || "{z}/{x}/{y}"}.${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,
+                    ""
+                );
+            }
+            break;
+        case "kml":
+            // 娣诲姞kml鏁版嵁
+            layer = sgworld.Creator.addKmlLayer(
+                treeNode.name,
+                {
+                    id: treeNode.id,
+                    url: treeNode.urls,
+                },
+                true
+            );
+            break;
+        case "google":
+            // 娣诲姞璋锋瓕鍦板浘
+            layer = sgworld.Creator.createUrlTemplateImageryProvider(
+                treeNode.name,
+                {
+                    id: treeNode.id,
+                    url: treeNode.urls,
+                    enablePickFeatures: false,
+                    level: treeNode.Level,
+                    minimumLevel: treeNode.minimumLevel,
+                    maximumLevel: treeNode.maximumLevel,
+                    alpha: treeNode.alpha,
+                },
+                "0",
+                treeNode.zIndex,
+                true,
+                ""
+            );
+            break;
+        case "arcgis":
+            // arcgis鍦板浘
+            layer = sgworld.Creator.createArcGisImageryLayer(
+                treeNode.name,
+                {
+                    id: treeNode.id,
+                    url: treeNode.urls,
+                    enablePickFeatures: false,
+                    level: treeNode.Level,
+                    usePreCachedTilesIfAvailable: treeNode.GCJ02 ? false : true, // 鏄惁浣跨敤鏈嶅姟鐨勫唴缃殑鍒囩墖鏂规锛屽亸绉荤籂姝i渶瑕佷娇鐢ㄥ涓嬭嚜瀹氫箟鐨勬柟妗�
+                    tilingScheme: treeNode.GCJ02
+                        ? sgworld.Core.getOffsetTilingScheme()
+                        : undefined, // 鍋忕Щ绾犳
+                    minimumLevel: treeNode.minimumLevel,
+                    maximumLevel: treeNode.maximumLevel,
+                    alpha: treeNode.alpha,
+                },
+                "0",
+                treeNode.zIndex,
+                true,
+                ""
+            );
+            return layer;
+            break;
+        case "mapbox":
+            // mapbox鍦板浘
+            layer = sgworld.Creator.createImageryProvider(
+                treeNode.name,
+                "MapBox",
+                {
+                    id: treeNode.id,
+                    name: treeNode.name,
+                    level: treeNode.Level,
+                    enablePickFeatures: false,
+                    mapId: treeNode.mapId,
+                    minimumLevel: treeNode.minimumLevel,
+                    maximumLevel: treeNode.maximumLevel,
+                    alpha: treeNode.alpha,
+                    accessToken:
+                        treeNode.token ||
+                        "pk.eyJ1IjoibWFyc2dpcyIsImEiOiJja2Fod2xlanIwNjJzMnhvMXBkMnNqcjVpIn0.WnxikCaN2KV_zn9tLZO77A",
+                },
+                "0",
+                treeNode.zIndex,
+                true,
+                ""
+            );
+            break;
+        case "tdmap":
+            // 澶╁湴鍥�
+            layer = sgworld.Creator.createWebMapTileServerImageLayer(
+                treeNode.name,
+                {
+                    id: treeNode.id,
+                    url: treeNode.urls,
+                    level: treeNode.Level,
+                    minimumLevel: treeNode.minimumLevel,
+                    maximumLevel: 18,
+                    style: treeNode.style,
+                    layer: treeNode.layer,
+                    format: treeNode.format,
+                    enablePickFeatures: false,
+                    tileMatrixSetID: "tiff",
+                    show: true,
+                    subdomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],
+                    alpha: treeNode.alpha,
+                },
+                "0",
+                treeNode.zIndex,
+                true,
+                ""
+            );
+            return layer;
+            break;
+
+        case "yzsate":
+            layer = sgworld.Creator.createWebMapTileServerImageLayer(
+                treeNode.name,
+                {
+                    id: treeNode.id,
+                    url: treeNode.urls,
+                    layer: treeNode.layer,
+                    enablePickFeatures: false,
+                    show: true,
+                    tileMatrixSetID: treeNode.ttileMatrixSetId
+                        ? treeNode.ttileMatrixSetId
+                        : "Sate_2019",
+                    tilingScheme: new Cesium.WebMercatorTilingScheme({
+                        rectangleSouthwestInMeters: new Cesium.Cartesian2(0, -229396.5),
+                        rectangleNortheastInMeters: new Cesium.Cartesian2(
+                            917580,
+                            688193.5
+                        ),
+                        //rectangleSouthwestInMeters:new Cesium.Cartesian2(0,0) ,
+                        // rectangleNortheastInMeters:new Cesium.Cartesian2(20037508.3427892, 20037508.3427892),
+                        numberOfLevelZeroTilesX: 4,
+                        numberOfLevelZeroTilesY: 4,
+                        projection: new Cesium.GeographicProjection(),
+                    }),
+                },
+                pID,
+                undefined,
+                treeNode.checked,
+                ""
+            );
+            treeNode.id = layer.treeobj.id;
+            break;
+        case "yzmap":
+            layer = sgworld.Creator.createWebMapTileServerImageLayer(
+                treeNode.name,
+                {
+                    id: treeNode.id,
+                    url: treeNode.urls,
+                    layer: treeNode.layer,
+                    enablePickFeatures: false,
+                    show: true,
+                },
+                pID,
+                undefined,
+                treeNode.checked,
+                ""
+            );
+            treeNode.id = layer.treeobj.id;
+            break;
+
+        case "yztile":
+            layer = new YZWMS(treeNode);
+            sgworld._Viewer.imageryLayers.addImageryProvider(layer);
+            break;
+        case "tdt_label":
+            // 澶╁湴鍥句笁缁存敞璁�
+            layer = sgworld.Creator.GeoWTFS({
+                token: treeNode.token || "c53eb074c3fcba5ac86103d4d711bbe8",
+                url: treeNode.urls,
+                subdomains: ["0", "1", "2", "3", "4", "5", "6", "7"],
+            });
+            break;
+        case "txmap":
+            // 鑵捐鍦板浘
+            layer = sgworld.Creator.createUrlTemplateImageryProvider(
+                treeNode.name,
+                {
+                    id: treeNode.id,
+                    url: treeNode.urls,
+                    level: treeNode.Level,
+                    enablePickFeatures: false,
+                    minimumLevel: treeNode.minimumLevel,
+                    maximumLevel: 18,
+                    alpha: treeNode.alpha,
+                    tilingScheme: sgworld.Core.getOffsetTilingScheme(), // 鍋忕Щ绾犳
+                    customTags: {
+                        sx: (_imageryProvider, x) => {
+                            return x >> 4;
+                        },
+                        sy: (_imageryProvider, _x, y, level) => {
+                            return ((1 << level) - y) >> 4;
+                        },
+                    },
+                },
+                "0",
+                treeNode.zIndex,
+                true,
+                ""
+            );
+            return layer;
+            break;
+        case "gdmap":
+            // 楂樺痉鍦板浘
+            layer = sgworld.Creator.createUrlTemplateImageryProvider(
+                treeNode.name,
+                {
+                    id: treeNode.id,
+                    url: treeNode.urls,
+                    enablePickFeatures: false,
+                    level: treeNode.Level,
+                    minimumLevel: treeNode.minimumLevel,
+                    maximumLevel: 18,
+                    tilingScheme: sgworld.Core.getOffsetTilingScheme(), // 鍋忕Щ绾犳
+                    alpha: treeNode.alpha,
+                },
+                "0",
+                treeNode.zIndex,
+                true,
+                ""
+            );
+            return layer;
+            break;
+        case "bdmap":
+            // 鐧惧害鍦板浘
+            layer = sgworld.Creator.createImageryProvider(
+                treeNode.name,
+                "BaiduMap",
+                {
+                    id: treeNode.id,
+                    level: treeNode.Level,
+                    enablePickFeatures: false,
+                    style: treeNode.style,
+                    minimumLevel: treeNode.minimumLevel,
+                    maximumLevel: treeNode.maximumLevel,
+                    alpha: treeNode.alpha,
+                },
+                "0",
+                treeNode.zIndex,
+                true,
+                ""
+            );
+            break;
+        case "cesiumblack":
+            // cesiumIon榛戝鍦板浘
+            layer = sgworld.Creator.createImageryProvider(
+                treeNode.name,
+                "cesiumBlack",
+                {
+                    id: treeNode.id,
+                    url: treeNode.urls,
+                    flipXY: true,
+                    enablePickFeatures: false,
+                    level: treeNode.Level,
+                    minimumLevel: treeNode.minimumLevel,
+                    maximumLevel: treeNode.maximumLevel,
+                    alpha: treeNode.alpha,
+                },
+                "0",
+                treeNode.zIndex,
+                true,
+                ""
+            );
+            break;
+        case "osm":
+            // osm鍦板浘
+            layer = sgworld.Creator.createImageryProvider(
+                treeNode.name,
+                "OpenStreetMap",
+                {
+                    id: treeNode.id,
+                    url: treeNode.urls,
+                    enablePickFeatures: false,
+                    level: treeNode.Level,
+                    minimumLevel: treeNode.minimumLevel,
+                    maximumLevel: treeNode.maximumLevel,
+                    alpha: treeNode.alpha,
+                },
+                "0",
+                treeNode.zIndex,
+                true,
+                ""
+            );
+            break;
+        case "wmts":
+            // wmts褰卞儚
+            layer = sgworld.Creator.createWebMapTileServerImageLayer(
+                treeNode.name,
+                {
+                    id: treeNode.id,
+                    url: treeNode.urls,
+                    level: treeNode.Level,
+                    style: treeNode.style,
+                    layer: treeNode.layer,
+                    enablePickFeatures: false,
+                    format: treeNode.format,
+                    tileMatrixSetID: treeNode.srs,
+                    tilingScheme:
+                        treeNode.tileType === "Geo"
+                            ? new Cesium.GeographicTilingScheme()
+                            : new Cesium.WebMercatorTilingScheme(),
+                    show: true,
+                    minimumLevel: treeNode.minimumLevel,
+                    maximumLevel: treeNode.maximumLevel,
+                    alpha: treeNode.alpha,
+                },
+                "0",
+                treeNode.zIndex,
+                true,
+                ""
+            );
+            return layer;
+            break;
+        case "gis_wmts":
+            // gisserver wmst褰卞儚
+            layer = sgworld.Creator.createUrlTemplateImageryProvider(
+                treeNode.name,
+                {
+                    id: treeNode.id,
+                    url: Cesium.buildModuleUrl(
+                        treeNode.urls + "/{z}/{x}/{reverseY}.png"
+                    ),
+                    enablePickFeatures: false,
+                    level: treeNode.Level,
+                    minimumLevel: treeNode.minimumLevel,
+                    maximumLevel: treeNode.maximumLevel,
+                    alpha: treeNode.alpha,
+                },
+                "0",
+                treeNode.zIndex,
+                true,
+                ""
+            );
+            break;
+        case "wmts_zj":
+            // 琛屽垪鍙峰樊涓ゅ�嶇殑wmts
+            var geotil = new Cesium.GeographicTilingScheme({
+                rectangle: Cesium.Rectangle.MAX_VALUE,
+            });
+            if (treeNode.addLevel && treeNode.addLevel === 2) {
+                geotil.positionToTileXY = function (position, level, result) {
+                    level > 0 && level++;
+                    var rectangle = this._rectangle;
+                    if (!Cesium.Rectangle.contains(rectangle, position)) {
+                        // outside the bounds of the tiling scheme
+                        return undefined;
+                    }
+
+                    var xTiles = this.getNumberOfXTilesAtLevel(level);
+                    var yTiles = this.getNumberOfYTilesAtLevel(level);
+
+                    var xTileWidth = rectangle.width / xTiles;
+                    var yTileHeight = rectangle.height / yTiles;
+
+                    var longitude = position.longitude;
+                    if (rectangle.east < rectangle.west) {
+                        longitude += Cesium.Math.TWO_PI;
+                    }
+
+                    var xTileCoordinate =
+                        ((longitude - rectangle.west) / xTileWidth) | 0;
+                    if (xTileCoordinate >= xTiles) {
+                        xTileCoordinate = xTiles - 1;
+                    }
+
+                    var yTileCoordinate =
+                        ((rectangle.north - position.latitude) / yTileHeight) | 0;
+                    if (yTileCoordinate >= yTiles) {
+                        yTileCoordinate = yTiles - 1;
+                    }
+
+                    if (!Cesium.defined(result)) {
+                        return new Cesium.Cartesian2(xTileCoordinate, yTileCoordinate);
+                    }
+
+                    result.x = xTileCoordinate;
+                    result.y = yTileCoordinate;
+                    return result;
+                };
+                geotil.tileXYToRectangle = function (x, y, level, result) {
+                    level > 0 && level++;
+                    var rectangle = this._rectangle;
+
+                    var xTiles = this.getNumberOfXTilesAtLevel(level);
+                    var yTiles = this.getNumberOfYTilesAtLevel(level);
+
+                    var xTileWidth = rectangle.width / xTiles;
+                    var west = x * xTileWidth + rectangle.west;
+                    var east = (x + 1) * xTileWidth + rectangle.west;
+
+                    var yTileHeight = rectangle.height / yTiles;
+                    var north = rectangle.north - y * yTileHeight;
+                    var south = rectangle.north - (y + 1) * yTileHeight;
+
+                    if (!Cesium.defined(result)) {
+                        result = new Cesium.Rectangle(west, south, east, north);
+                    }
+
+                    result.west = west;
+                    result.south = south;
+                    result.east = east;
+                    result.north = north;
+                    return result;
+                };
+            }
+            layer = sgworld.Creator.createWebMapTileServerImageLayer(
+                treeNode.name,
+                {
+                    id: treeNode.id,
+                    url: treeNode.urls,
+                    layer: treeNode.layer,
+                    level: treeNode.Level,
+                    minimumLevel: treeNode.minimumLevel,
+                    maximumLevel: treeNode.maximumLevel,
+                    style: "default",
+                    tileMatrixSetID: "esritilematirx",
+                    format: "image/png",
+                    tilingScheme: geotil,
+                    addLevel: treeNode.addLevel || 1, //灞傜骇鍔犱竴
+                    enablePickFeatures: false,
+                    show: true,
+                    alpha: treeNode.alpha,
+                },
+                "0",
+                treeNode.zIndex,
+                true,
+                ""
+            );
+            break;
+        case "wms":
+        case "wmsc":
+            // wms鏁版嵁
+            var parameters = {
+                service: "WMS",
+                format: "image/png",
+                transparent: true,
+            };
+            if (treeNode.removeNullValue) {
+                if (treeNode.nullvalue) {
+                    treeNode.nullvalue = treeNode.nullvalue.replace("rgb(", "");
+                    treeNode.nullvalue = treeNode.nullvalue.replace(")", "");
+                }
+                parameters.nullvalue = sgworld.Core.defaultValue(
+                    treeNode.nullvalue,
+                    "0,0,0"
+                );
+                parameters.nulltolerance = sgworld.Core.defaultValue(
+                    treeNode.nulltolerance,
+                    0
+                );
+            }
+            treeNode.token && (treeNode.urls += "?token=" + treeNode.token);
+            if (treeNode.sourceType === "wmsc") {
+                layer = sgworld.Creator.createCacheImageryProvider(
+                    treeNode.name,
+                    {
+                        id: treeNode.id,
+                        url: treeNode.urls || "",
+                        layers: treeNode.layer || "",
+                        level: treeNode.Level,
+                        enablePickFeatures: false,
+                        cacheUrl: treeNode.cacheUrl || treeNode.urls,
+                        fileExtension: treeNode.fileExtension,
+                        cacheMaxLevel: treeNode.cacheMaxLevel || 16,
+                        alpha: treeNode.alpha,
+                    },
+                    "0",
+                    treeNode.zIndex,
+                    treeNode.checked,
+                    ""
+                );
+            } else {
+                layer = sgworld.Creator.createImageryProvider(
+                    treeNode.name,
+                    "wms",
+                    {
+                        id: treeNode.id,
+                        url: treeNode.urls,
+                        layers: treeNode.layer || "",
+                        level: treeNode.Level,
+                        minimumLevel: treeNode.minimumLevel,
+                        maximumLevel: treeNode.maximumLevel,
+                        enablePickFeatures: false,
+                        parameters: parameters,
+                        alpha: treeNode.alpha,
+                    },
+                    "0",
+                    treeNode.zIndex,
+                    true,
+                    ""
+                );
+            }
+            break;
+        case "wmse":
+            layer = sgworld.Creator.createImageryProvider(
+                treeNode.name,
+                "wms",
+                {
+                    id: treeNode.id,
+                    url: treeNode.urls,
+                    level: treeNode.Level,
+                    minimumLevel: treeNode.minimumLevel,
+                    maximumLevel: treeNode.maximumLevel,
+                    enablePickFeatures: false,
+
+                    layers: treeNode.layer || "",
+                    alpha: treeNode.alpha,
+                    parameters: {
+                        format: "image/png",
+                        transparent: true,
+                    },
+                },
+                "0",
+                undefined,
+                true,
+                ""
+            );
+            break;
+        case "wfs":
+            // wfs鏁版嵁
+            layer = sgwfs.CreateWfs(treeNode.class, treeNode);
+            break;
+        case "geojson":
+            if (treeNode.class === "point") {
+                treeNode.disableDepthTestDistance === "Infinity" &&
+                    (treeNode.disableDepthTestDistance = Number.POSITIVE_INFINITY);
+
+                de = {
+                    id: treeNode.id,
+                    fillColor: sgworld.Core.defaultValue(treeNode.color, "#ffffff"),
+                    color: sgworld.Core.defaultValue(treeNode.imageColor, undefined),
+                    outlineColor: sgworld.Core.defaultValue(
+                        treeNode.outlineColor,
+                        "#ffffff"
+                    ),
+                    backgroundColor: sgworld.Core.defaultValue(
+                        treeNode.backgroundColor,
+                        "#ffffff"
+                    ),
+                    heightReference: sgworld.Core.defaultValue(
+                        treeNode.heightReference,
+                        0
+                    ),
+                    pointHeight: sgworld.Core.defaultValue(
+                        treeNode.pointHeight,
+                        undefined
+                    ),
+                    near: sgworld.Core.defaultValue(treeNode.near, 0),
+                    far: sgworld.Core.defaultValue(treeNode.far, 99999999999),
+                    bold: treeNode.bold,
+                    italic: treeNode.italic,
+                    showBackground: treeNode.showBackground,
+                    outlineWidth: sgworld.Core.defaultValue(treeNode.outlineWidth, 1),
+                    text: treeNode.text,
+                    image: treeNode.image,
+                    font_size: treeNode.size,
+                    font_family: sgworld.Core.defaultValue(
+                        treeNode.font_family,
+                        "寰蒋闆呴粦"
+                    ),
+                    disableDepthTestDistance: sgworld.Core.defaultValue(
+                        treeNode.disableDepthTestDistance,
+                        undefined
+                    ),
+                    labelData: treeNode.labelData,
+                    imageData: treeNode.imageData,
+                };
+
+                if (
+                    treeNode.text &&
+                    treeNode.image &&
+                    !treeNode.labelData &&
+                    !treeNode.imageData
+                ) {
+                    de.labelData = {
+                        horizontalOrigin: Cesium.HorizontalOrigin.LEFT,
+                        pixelOffset: new Cesium.Cartesian2(20, 0),
+                    };
+                    de.imageData = {
+                        horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
+                        pixelOffset: new Cesium.Cartesian2(0, 0),
+                    };
+                }
+                layer = sgworld.Creator.createLabelPointGeoJsonFeatureLayer(
+                    treeNode.name,
+                    treeNode.urls,
+                    de,
+                    "0",
+                    treeNode.checked
+                );
+            } else if (treeNode.class === "polyline") {
+                de = {
+                    id: treeNode.id,
+                    layertype: "polylinelayer",
+                    material: sgworld.Core.defaultValue(treeNode.color, "#ffffff"),
+                    outlineColor: sgworld.Core.defaultValue(
+                        treeNode.outlineColor,
+                        "#ffffff"
+                    ),
+                    outlineWidth: sgworld.Core.defaultValue(treeNode.outlineWidth, 0),
+                    height: sgworld.Core.defaultValue(treeNode.height, undefined),
+                    width: sgworld.Core.defaultValue(treeNode.width, 2),
+                    clampToGround: sgworld.Core.defaultValue(
+                        treeNode.clampToGround,
+                        true
+                    ),
+                    classificationType: treeNode.classificationType,
+                    dash: sgworld.Core.defaultValue(treeNode.dash, false),
+                    dashLength: sgworld.Core.defaultValue(treeNode.dashLength, 20),
+                    gapColor: sgworld.Core.defaultValue(
+                        treeNode.gapColor,
+                        "rgba(0,0,0,0)"
+                    ),
+                    near: sgworld.Core.defaultValue(treeNode.near, 0),
+                    far: sgworld.Core.defaultValue(treeNode.far, Infinity),
+                };
+
+                layer = sgworld.Creator.createPolylineGeoJsonFeatureLayer(
+                    treeNode.name,
+                    treeNode.urls,
+                    de,
+                    "0",
+                    treeNode.checked
+                );
+            } else if (treeNode.class === "polylineVolume") {
+                de = {
+                    id: treeNode.id,
+                    material: sgworld.Core.defaultValue(treeNode.color, "#ff0000"),
+                    slttype: "0",
+                    number: "4",
+                    exradius: "1",
+                    inradius: "1",
+                    orth_width: "2",
+                    orth_height: "2",
+                    radius: sgworld.Core.defaultValue(treeNode.radius, 5),
+                    cornerType: "0",
+                    heightReference: "0",
+                    height: sgworld.Core.defaultValue(treeNode.lineHeight, 0),
+                    near: "0",
+                    far: "99999999999",
+                    radiusScale: treeNode.radiusScale,
+                    connect: true,
+                };
+                layer = sgworld.Creator.createpolylineVolumeGeojsonPrimitiveLayer(
+                    treeNode.name,
+                    treeNode.urls,
+                    de,
+                    "0",
+                    true,
+                    function (data) {
+                        if (treeNode.flow) {
+                            let lines = data.entities.values;
+                            lines.forEach((line) => {
+                                line.polylineVolume.material =
+                                    sgworld.Core.getTrailLinkMaterial(
+                                        sgworld.Core.defaultValue(treeNode.color, "#ff0000"),
+                                        "../static/images/smoke.png",
+                                        9000
+                                    );
+                            });
+                        }
+                    }
+                );
+            } else if (treeNode.class === "model") {
+                de = {
+                    id: treeNode.id,
+                    collect: 0,
+                    uri: sgworld.Core.defaultValue(treeNode.model, ""),
+                    file: "",
+                    color: sgworld.Core.defaultValue(treeNode.color, "#ffffff"),
+                    scale: sgworld.Core.defaultValue(treeNode.scale, 1),
+                    heightReference: 0,
+                    height: sgworld.Core.defaultValue(treeNode.height, 0),
+                    near: "0",
+                    far: "99999999999",
+                };
+                layer = sgworld.Creator.createModelPointGeoJsonFeatureLayer(
+                    treeNode.name,
+                    treeNode.urls,
+                    de,
+                    "0",
+                    true
+                );
+            } else if (treeNode.class === "polygon") {
+                treeNode.disableDepthTestDistance === "Infinity" &&
+                    (treeNode.disableDepthTestDistance = Number.POSITIVE_INFINITY);
+
+                de = {
+                    id: treeNode.id,
+                    material: sgworld.Core.defaultValue(treeNode.color, "#ff0000"),
+                    height: sgworld.Core.defaultValue(treeNode.height, 0),
+                    outlineColor: sgworld.Core.defaultValue(
+                        treeNode.outlineColor,
+                        "#ff0000"
+                    ),
+                    extrudedHeight: sgworld.Core.defaultValue(
+                        treeNode.extrudedHeight,
+                        0
+                    ),
+                    outlineWidth: sgworld.Core.defaultValue(treeNode.outlineWidth, 0),
+                    outline: sgworld.Core.defaultValue(treeNode.outline, true),
+                    clampToGround: sgworld.Core.defaultValue(
+                        treeNode.clampToGround,
+                        treeNode.extrudedHeight === undefined &&
+                        treeNode.height === undefined
+                    ),
+                    classificationType: treeNode.classificationType,
+                    near: sgworld.Core.defaultValue(treeNode.near, 0),
+                    far: sgworld.Core.defaultValue(treeNode.far, Infinity),
+
+                    text: treeNode.text,
+                    font: sgworld.Core.defaultValue(treeNode.font, "寰蒋闆呴粦"),
+                    labelNear: treeNode.labelNear,
+                    labelFar: treeNode.labelFar,
+                    fontSize: sgworld.Core.defaultValue(treeNode.size, "18px"),
+                    italic: treeNode.italic,
+                    bold: treeNode.bold,
+                    pixelOffset: new Cesium.Cartesian2(
+                        sgworld.Core.defaultValue(treeNode.offsetX, 0),
+                        sgworld.Core.defaultValue(treeNode.offsetY, 0)
+                    ),
+                    labelOutlineWidth: 2,
+                    disableDepthTestDistance: treeNode.disableDepthTestDistance,
+
+                    water: treeNode.water,
+                };
+                layer = sgworld.Creator.createPolygonGeoJsonFeatureLayer(
+                    treeNode.name,
+                    treeNode.urls,
+                    de,
+                    "0",
+                    treeNode.checked
+                );
+            }
+            break;
+        case "pathLayer":
+            layer = sgworld.Creator.createPathLayer({
+                id: treeNode.id,
+                url: treeNode.url,
+                color: treeNode.color || "#0033FF", //绾跨殑棰滆壊
+                width: treeNode.width || 4.0, //绾跨殑瀹藉害
+                pointColor: treeNode.pointColor || "#FFFFFF", //绉诲姩鐐圭殑棰滆壊
+                speed: treeNode.speed || 5,
+                far: treeNode.far || 5000,
+            });
+            break;
+        case "vector": {
+            let urls = {
+                url: treeNode.urls,
+                layer: treeNode.layer,
+                srs: treeNode.srs,
+            };
+            if (
+                treeNode.class === "point" ||
+                treeNode.class === "label" ||
+                treeNode.class === "image"
+            ) {
+                treeNode.disableDepthTestDistance === "Infinity" &&
+                    (treeNode.disableDepthTestDistance = Number.POSITIVE_INFINITY);
+                if (treeNode.style) {
+                    // de = getVectorStyleFromSG(treeNode, treeNode.style);
+                } else {
+                    de = {
+                        id: treeNode.id,
+                        level_min: sgworld.Core.defaultValue(treeNode.minimumLevel, 10),
+                        level_max: sgworld.Core.defaultValue(treeNode.maximumLevel, 22),
+                        fillColor: sgworld.Core.defaultValue(treeNode.color, "#ffffff"),
+                        color: sgworld.Core.defaultValue(
+                            treeNode.imageColor,
+                            undefined
+                        ),
+                        outlineColor: sgworld.Core.defaultValue(
+                            treeNode.outlineColor,
+                            "#ffffff"
+                        ),
+                        backgroundColor: sgworld.Core.defaultValue(
+                            treeNode.backgroundColor,
+                            "#ffffff"
+                        ),
+                        heightReference: sgworld.Core.defaultValue(
+                            treeNode.heightReference,
+                            0
+                        ),
+                        pointHeight: sgworld.Core.defaultValue(
+                            treeNode.pointHeight,
+                            undefined
+                        ),
+                        near: sgworld.Core.defaultValue(treeNode.near, 0),
+                        far: sgworld.Core.defaultValue(treeNode.far, 99999999999),
+                        bold: treeNode.bold,
+                        italic: treeNode.italic,
+                        showBackground: treeNode.showBackground,
+                        outlineWidth: sgworld.Core.defaultValue(
+                            treeNode.outlineWidth,
+                            1
+                        ),
+                        text: treeNode.text,
+                        image: treeNode.image,
+                        font_size: treeNode.size,
+                        font_family: sgworld.Core.defaultValue(
+                            treeNode.font_family,
+                            "寰蒋闆呴粦"
+                        ),
+                        disableDepthTestDistance: sgworld.Core.defaultValue(
+                            treeNode.disableDepthTestDistance,
+                            undefined
+                        ),
+                        labelData: treeNode.labelData,
+                        imageData: treeNode.imageData,
+                    };
+                }
+
+                if (
+                    treeNode.text &&
+                    treeNode.image &&
+                    !treeNode.labelData &&
+                    !treeNode.imageData
+                ) {
+                    de.labelData = {
+                        horizontalOrigin: Cesium.HorizontalOrigin.LEFT,
+                        pixelOffset: new Cesium.Cartesian2(20, 0),
+                    };
+                    de.imageData = {
+                        horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
+                        pixelOffset: new Cesium.Cartesian2(0, 0),
+                    };
+                }
+                urls.upperLevelLimit = de.level_max;
+                urls.lowerLevelLimit = de.level_min;
+                layer = sgworld.Creator.createLabelImageGeoJsonFeatureLayerProvider(
+                    treeNode.name,
+                    urls,
+                    de,
+                    "0",
+                    treeNode.checked,
+                    function () { }
+                );
+            } else if (treeNode.class === "polylineVolume") {
+                de = {
+                    id: treeNode.id,
+                    level_min: sgworld.Core.defaultValue(treeNode.minimumLevel, 10),
+                    level_max: sgworld.Core.defaultValue(treeNode.maximumLevel, 22),
+                    material: sgworld.Core.defaultValue(treeNode.color, "#ff0000"),
+                    slttype: "0",
+                    number: "4",
+                    exradius: "1",
+                    inradius: "1",
+                    orth_width: "2",
+                    orth_height: "2",
+                    radius: sgworld.Core.defaultValue(treeNode.radius, 0.5),
+                    cornerType: "0",
+                    heightReference: "0",
+                    height: sgworld.Core.defaultValue(treeNode.height, 0),
+                    near: sgworld.Core.defaultValue(treeNode.near, 0),
+                    far: sgworld.Core.defaultValue(treeNode.far, 99999999999),
+                    radiusScale: treeNode.radiusScale,
+                };
+                urls.upperLevelLimit = de.level_max;
+                urls.lowerLevelLimit = de.level_min;
+                layer = sgworld.Creator.createVolumeGeoJsonFeatureLayerProvider(
+                    treeNode.name,
+                    urls,
+                    de,
+                    "0",
+                    treeNode.checked,
+                    function () { }
+                );
+            } else if (treeNode.class === "polyline") {
+                de = {
+                    id: treeNode.id,
+                    layertype: "polylinelayer",
+                    level_min: sgworld.Core.defaultValue(treeNode.minimumLevel, 10),
+                    level_max: sgworld.Core.defaultValue(treeNode.maximumLevel, 22),
+                    material: sgworld.Core.defaultValue(treeNode.color, "#ffffff"),
+                    outlineColor: sgworld.Core.defaultValue(
+                        treeNode.outlineColor,
+                        "#ffffff"
+                    ),
+                    outlineWidth: sgworld.Core.defaultValue(treeNode.outlineWidth, 0),
+                    height: sgworld.Core.defaultValue(treeNode.height, undefined),
+                    width: sgworld.Core.defaultValue(treeNode.width, 2),
+                    clampToGround: sgworld.Core.defaultValue(
+                        treeNode.clampToGround,
+                        true
+                    ),
+                    classificationType: treeNode.classificationType,
+                    dash: sgworld.Core.defaultValue(treeNode.dash, false),
+                    dashLength: sgworld.Core.defaultValue(treeNode.dashLength, 20),
+                    gapColor: sgworld.Core.defaultValue(
+                        treeNode.gapColor,
+                        "rgba(0,0,0,0)"
+                    ),
+                    near: sgworld.Core.defaultValue(treeNode.near, 0),
+                    far: sgworld.Core.defaultValue(treeNode.far, Infinity),
+                };
+                urls.upperLevelLimit = de.level_max;
+                urls.lowerLevelLimit = de.level_min;
+
+                layer =
+                    sgworld.Creator.createPrimitivePolylineVectorGeoJsonFeatureLayerProvider(
+                        treeNode.name,
+                        urls,
+                        de,
+                        "0",
+                        treeNode.checked,
+                        function () { }
+                    );
+            } else if (treeNode.class === "polygon") {
+                de = {
+                    id: treeNode.id,
+                    layertype: "polygonlayer",
+                    level_min: sgworld.Core.defaultValue(treeNode.minimumLevel, 10),
+                    level_max: sgworld.Core.defaultValue(treeNode.maximumLevel, 22),
+                    material: sgworld.Core.defaultValue(treeNode.color, "#ff0000"),
+                    heightReference: "1",
+                    height: sgworld.Core.defaultValue(treeNode.height, 0),
+                    extrudedHeight: sgworld.Core.defaultValue(
+                        treeNode.extrudedHeight,
+                        0
+                    ),
+                    extrudedHeightReference: "1",
+                    clampToGround: sgworld.Core.defaultValue(
+                        treeNode.clampToGround,
+                        false
+                    ),
+                    classificationType: treeNode.classificationType,
+                    near: sgworld.Core.defaultValue(treeNode.near, 0),
+                    far: sgworld.Core.defaultValue(treeNode.far, Infinity),
+                };
+                urls.upperLevelLimit = de.level_max;
+                urls.lowerLevelLimit = de.level_min;
+                layer =
+                    sgworld.Creator.createGeoJsonFeatureLayerProviderOptimization(
+                        treeNode.name,
+                        urls,
+                        de,
+                        "0",
+                        treeNode.checked,
+                        function () { }
+                    );
+            } else if (treeNode.class === "model") {
+                de = {
+                    id: treeNode.id,
+                    level_min: sgworld.Core.defaultValue(treeNode.minimumLevel, 10),
+                    level_max: sgworld.Core.defaultValue(treeNode.maximumLevel, 22),
+                    collect: 0,
+                    uri: sgworld.Core.defaultValue(treeNode.model, ""),
+                    file: "",
+                    color: sgworld.Core.defaultValue(treeNode.color, "#ffffff"),
+                    scale: sgworld.Core.defaultValue(treeNode.scale, 1),
+                    heightReference: 0,
+                    height: sgworld.Core.defaultValue(treeNode.height, 0),
+                    near: "0",
+                    far: "99999999999",
+                };
+                //妯″瀷鐐�
+                urls.upperLevelLimit = de.level_max;
+                urls.lowerLevelLimit = de.level_min;
+                layer = sgworld.Creator.createModelGeoJsonFeatureLayerProvider(
+                    treeNode.name,
+                    urls,
+                    de,
+                    "0",
+                    treeNode.checked,
+                    function () { }
+                );
+            }
+            layer && (treeNode.id = layer.treeobj.id);
+            break;
+        }
+        case "terrain":
+            layer = sgworld.Creator.createTerrain(
+                treeNode.name,
+                {
+                    id: treeNode.id,
+                    requestVertexNormals: true,
+                    url: treeNode.urls,
+                },
+                "0",
+                true,
+                ""
+            );
+            break;
+        case "sgsterrain":
+            layer = sgworld.Creator.sfsterrainprovider(
+                treeNode.name,
+                {
+                    id: treeNode.id,
+                    layerName: treeNode.layer,
+                    requestVertexNormals: true,
+                    url: treeNode.urls || "",
+                    token: treeNode.token,
+                    cacheUrl: treeNode.cacheUrl,
+                    cacheLevel: treeNode.cacheLevel,
+                },
+                "0",
+                true,
+                ""
+            );
+            break;
+        case "sgsterrain7.1":
+            layer = sgworld.Creator.sfsterrainprovider71(
+                treeNode.name,
+                {
+                    id: treeNode.id,
+                    layerName: treeNode.layer,
+                    requestVertexNormals: true,
+                    url: treeNode.urls,
+                    token: treeNode.token,
+                    cacheUrl: treeNode.cacheUrl,
+                    cacheLevel: treeNode.cacheLevel,
+                },
+                "0",
+                true,
+                ""
+            );
+            break;
+        case "arcgisterrain":
+            layer = sgworld.Creator.createArcGISTerrain(
+                treeNode.name,
+                {
+                    id: treeNode.id,
+                    requestVertexNormals: true,
+                    url: treeNode.urls,
+                },
+                "0",
+                true,
+                ""
+            );
+            break;
+        case "CesiumGlobeTerrain":
+            layer = sgworld.Creator.createCesiumTerrain(
+                treeNode.name,
+                {
+                    id: treeNode.id,
+                    requestVertexNormals: true,
+                },
+                "0",
+                true,
+                ""
+            );
+            break;
+        case "b3dm":
+            layer = sgworld.Creator.create3DTilesets(
+                treeNode.name,
+                treeNode.urls,
+                {
+                    id: treeNode.id,
+                    Level: treeNode.Level,
+                    maximumScreenSpaceError:
+                        treeNode.maximumScreenSpaceError &&
+                        parseInt(treeNode.maximumScreenSpaceError),
+                    maximumMemoryUsage:
+                        treeNode.maximumMemoryUsage &&
+                        parseInt(treeNode.maximumMemoryUsage),
+                    geometricError:
+                        treeNode.geometricError && parseInt(treeNode.geometricError),
+                },
+                {
+                    groundCenter: treeNode.Center,
+                    groundheight: treeNode.modelHeight,
+                    heading: treeNode.heading,
+                    pitch: treeNode.pitch,
+                    roll: treeNode.roll,
+                    effects: treeNode.effects || false,
+                    effectsMaxHeight: treeNode.effectsMaxHeight || 150,
+                    colors: treeNode.alpha
+                        ? "rgba(255,255,255," + treeNode.alpha + ")"
+                        : treeNode.color || undefined,
+                },
+                "0",
+                true
+            );
+            return layer;
+            break;
+        case "s3m":
+            layer = sgworld.Creator.createS3MLayer(
+                treeNode.urls,
+                sgworld._Viewer.scene,
+                function () { }
+            );
+            break;
+        case "gltf":
+            var position = [treeNode.lon, treeNode.lat, treeNode.height];
+            layer = sgworld.Creator.createModel(
+                position,
+                treeNode.urls,
+                {
+                    id: treeNode.id,
+                    scale: treeNode.scale || 1,
+                    heading: treeNode.heading,
+                    pitch: treeNode.pitch,
+                    roll: treeNode.roll,
+                },
+                "0",
+                treeNode.name,
+                ""
+            );
+            break;
+        case "SimpleGraphic":
+            treeNode.type = treeNode.class;
+            layer = sgworld.Creator.SimpleGraphic.addFeature(treeNode);
+            break;
+        case "videoPolygon":
+            layer = sgworld.Creator.addVideoPolygon(treeNode.positions, {
+                url: treeNode.url,
+                angle: treeNode.angle,
+            });
+            break;
+        case "MilitaryPlotting":
+            if (!treeNode.feature.id) {
+                treeNode.feature.id = treeNode.id;
+            }
+            if (!treeNode.feature.name) {
+                treeNode.feature.name = treeNode.name;
+            }
+            layer = sgworld.Creator.MilitaryPlotting.addFeature(treeNode.feature);
+            break;
+        case "ParticleEffect":
+            layer = sgworld.Analysis.createParticleEffect(
+                treeNode.name,
+                treeNode.position,
+                {
+                    translation: Cesium.Cartesian3.fromElements(0, 0, 0), //骞崇Щ
+                }
+            );
+            layer.name = treeNode.name;
+            break;
+        case "FlowField":
+            layer = sgworld.Creator.createTrailLine(
+                treeNode.positions,
+                treeNode.style
+            );
+            layer.boundingSphere = Cesium.BoundingSphere.fromPoints(
+                treeNode.positions
+            );
+
+            break;
+        case "MobileWall":
+            layer = sgworld.Creator.createTrailLineWall(
+                treeNode.LineInterpolation.positions,
+                treeNode.style
+            );
+            layer.boundingSphere = Cesium.BoundingSphere.fromPoints(
+                treeNode.LineInterpolation.positions
+            );
+            break;
+        case "link":
+            layer = sgworld.Creator.createLinkPro(
+                sgworld.Core.toDegrees(treeNode.posisitons[0]),
+                sgworld.Core.toDegrees(treeNode.posisitons[1]),
+                {
+                    clampToGround: true,
+                }
+            );
+            break;
+        case "DiffusionSource":
+            layer = sgworld.Analysis.createMultiCircleScan(
+                treeNode.position,
+                treeNode.maxRadius,
+                treeNode.maxRadius.color,
+                3000,
+                true
+            );
+            break;
+        case "RiskDiffusion":
+        case "CircularDiffusion":
+            layer = sgworld.Analysis.createCircleScan(
+                treeNode.position,
+                treeNode.maxRadius,
+                treeNode.color,
+                3000,
+                true
+            );
+            break;
+        case "FanDiffusion":
+            layer = sgworld.Analysis.createSectorScan(
+                treeNode.position,
+                treeNode.distance,
+                "#ff0000",
+                60,
+                treeNode.angle,
+                true,
+                4000,
+                true
+            );
+            break;
+        case "RadarMask":
+            layer = sgworld.Creator.createRectangularSensor(
+                treeNode.position,
+                treeNode.cylinder
+            );
+            break;
+        case "DynamicSatellite":
+            let dtwxzsData = sgworld.Creator.createConeRadar(treeNode.position, {
+                color: "#7b9ef7",
+                radius: 200000,
+            });
+            let weixin = sgworld.Creator.createModel(
+                treeNode.position,
+                window.SmartEarthRootUrl + "Workers/Model/weixin.gltf",
+                { scale: 15 },
+                "0",
+                "鍗槦"
+            );
+            layer = { dtwxzsData, weixin };
+            layer.sourceType = "DynamicSatellite";
+            break;
+        case "excavate":
+            var position = [treeNode.lon, treeNode.lat, treeNode.height];
+            layer = sgworld.Creator.createModel(
+                position,
+                treeNode.urls,
+                {
+                    id: treeNode.id,
+                    scale: treeNode.scale || 1,
+                },
+                pID,
+                treeNode.name,
+                ""
+            );
+            treeNode.id = layer.treeobj.id;
+            break;
+    }
+    return layer
+}
+
+export function clearLayerByTypeId(type) {
+    if (_GLOBAL.layers[type]) {
+        _GLOBAL.layers[type].forEach(item => {
+            item && item.deleteObject()
+        });
+        _GLOBAL.layers[type] = [];
+    }
+}
+
+export function clearLayerByTypeIdArr(arr) {
+    if (arr.length) {
+        arr.forEach(item => {
+            clearLayerByTypeId(item);
+        })
+    }
+}
+
+
+var pointArr = [];
+//openlayer 鍒涘缓鐐逛綅
+export function createPointMarker(position, obj) {
+    let startFeature = new ol.Feature({
+        geometry: new ol.geom.Point(position),
+    });
+    startFeature.setProperties({
+        desc: obj,
+    });
+
+    if(pointArr && pointArr.length > 0){
+        pointArr.forEach(item=>{
+            window.map.removeLayer(item);
+        })
+        pointArr = []
+    }
+    let MarkerLayer = new ol.layer.Vector({
+        id: 'LocationPoint',
+        name: '鏍囪鐐�',
+        source: new ol.source.Vector({
+            features: [startFeature],
+        }),
+        style: new ol.style.Style({
+            image: new ol.style.Icon({
+                src: require('@/assets/img/collection/scdw.png'),
+                anchorOrigin: "top-left",
+                anchorXUnits: "fraction",
+                anchorYUnits: "fraction",
+                offsetOrigin: "bottom-right",
+                scale: 0.6,
+                opacity: 1,
+            })
+        }),
+        zIndex: 1099,
+    })
+    pointArr.push(MarkerLayer)
+    return MarkerLayer;
+}
+
+//openlayer 鍦板浘鐐瑰嚮浜嬩欢
+export function setClick(state) {
+    let container = document.getElementById('ponitPanel');
+    let close = document.getElementById('ponitPanel-close');
+    let content = document.getElementById('ponitPanel-content');
+
+    let overlay = new ol.Overlay({
+        element: container,
+        autoPan: {
+            animation: {
+                duration: 250,
+            },
+        },
+    });
+    window.map.addOverlay(overlay);
+
+    // let _clickCallback = callback;
+    function handleClick(e) {
+        window.map.forEachFeatureAtPixel(e.pixel, function (feature) {
+            // console.log(feature, '111111')
+            if (feature && feature.values_.desc) {
+                ponitPanel.style.display = 'block'
+                let obj = feature.values_.desc
+                // content.innerHTML = `
+                //        <div class="ponitPanel-item">
+                //          <span>鍚嶇О锛�</span>
+                //          <span>${obj.name}</span>
+                //        </div>
+                //      <div class="ponitPanel-item"> 
+                //         <span>鍦板潃锛�</span>
+                //        <span>${obj.address}</span>
+                //     </div>`
+
+                setTimeout(() => {
+                    overlay.setPosition(e.coordinate);
+                }, 0)
+
+                // close.addEventListener("click", function () {
+                //     overlay.setPosition(undefined);
+                // });
+
+
+                // store.setPoplayerShowAction(true);
+                // store.setPoplayerListAction(objdata);
+                // if (window.instance) {
+                //     window.instance.$destroy();
+                // }
+                // window.instance = new PoiLayerConstructor({
+                //     data: {
+                //         list: objdata
+                //     }
+                // });
+                // window.instance.$mount();
+            }
+        });
+    }
+    if (state) {
+        clickEvent = window.map.on('click', handleClick);
+    } else {
+        ol.Observable.unByKey(clickEvent)
+        clickEvent = null
+    }
+}
+
+
+export function flyToPoint(posisitons) {
+    // let zoom = window.map.getView().getZoom();
+    // if (zoom >= 16) {
+    //     zoom = 12
+    // }
+    // let duration = 2000;
+    window.map.getView().animate({
+        center: posisitons,
+        zoom: 12,
+        duration: 1500
+    })
+    // window.map.getView().animate(
+    //     //鍔ㄧ敾寮�濮嬫椂
+    //     {
+    //         zoom: zoom > 16 ? zoom - 0.01 : zoom + 0.01,
+    //         duration: duration / 2,
+    //     },
+    //     //鍔ㄧ敾缁撴潫鏃�
+    //     {
+    //         zoom: zoom >= 16 ? 16 : zoom + 4,
+    //         duration: duration / 2,
+    //     }
+    // );
+}
\ No newline at end of file
diff --git a/src/utils/map2.js b/src/utils/map2.js
index 19e3c86..f7996ae 100644
--- a/src/utils/map2.js
+++ b/src/utils/map2.js
@@ -2244,14 +2244,10 @@
         },
     });
     window.map.addOverlay(overlay);
-
-    // let _clickCallback = callback;
     function handleClick(e) {
         window.map.forEachFeatureAtPixel(e.pixel, function (feature) {
-            // console.log(feature, '111111')
             if (feature && feature.values_.desc) {
                 ponitPanel.style.display = 'block'
-
                 let obj = feature.values_.desc
                 objdata = {
                     POITYPE: "POINT",
@@ -2260,24 +2256,9 @@
                     lon: obj.lng,
                     lat: obj.lat
                 }
-
-
-                ponitPanel.innerHTML = `
-                       <div class="ponitPanel-name">
-                         <span>鍚嶇О锛�</span>
-                         <span>${objdata.name}</span>
-                       </div>
-                     <div class="ponitPanel-value"> 
-                        <span>鍦板潃锛�</span>
-                       <span>${objdata.address}</span>
-                    </div>`
-
-                setTimeout(() => {
-                    overlay.setPosition(e.coordinate);
-                }, 0)
-
-                // store.setPoplayerShowAction(true);
-                // store.setPoplayerListAction(objdata);
+                overlay.setPosition(e.coordinate);
+                store.setPoplayerShowAction(true);
+                store.setPoplayerListAction(objdata);
                 // if (window.instance) {
                 //     window.instance.$destroy();
                 // }
@@ -2300,26 +2281,9 @@
 
 
 export function flyToPoint(posisitons) {
-    // let zoom = window.map.getView().getZoom();
-    // if (zoom >= 16) {
-    //     zoom = 12
-    // }
-    // let duration = 2000;
     window.map.getView().animate({
         center: posisitons,
-        zoom: 12,
+        zoom: 15,
         duration: 1500
     })
-    // window.map.getView().animate(
-    //     //鍔ㄧ敾寮�濮嬫椂
-    //     {
-    //         zoom: zoom > 16 ? zoom - 0.01 : zoom + 0.01,
-    //         duration: duration / 2,
-    //     },
-    //     //鍔ㄧ敾缁撴潫鏃�
-    //     {
-    //         zoom: zoom >= 16 ? 16 : zoom + 4,
-    //         duration: duration / 2,
-    //     }
-    // );
 }
\ No newline at end of file

--
Gitblit v1.9.3