From 68d9f6b85690aa6402a69a1bc748be7129f39ed1 Mon Sep 17 00:00:00 2001
From: chenzeping <ChenZeping02609@163.com>
Date: 星期一, 12 四月 2021 17:42:12 +0800
Subject: [PATCH] 功能底图切换标注

---
 src/components/helpers/BasemapHelper.js |  156 ++++++++++++++++++++++++++--------------------------
 1 files changed, 78 insertions(+), 78 deletions(-)

diff --git a/src/components/helpers/BasemapHelper.js b/src/components/helpers/BasemapHelper.js
index 498e54b..9fc4059 100644
--- a/src/components/helpers/BasemapHelper.js
+++ b/src/components/helpers/BasemapHelper.js
@@ -1,30 +1,32 @@
 /* eslint-disable no-debugger */
 import AjaxUtils from '@/utils/AjaxUtils'
+// import * as utils from '../../utils/utils'
 /**
  * 搴曞浘绠$悊鍔╂墜锛岃礋璐e簳鍥惧垱寤哄強寮�鍏�
  */
-class BasemapHelper{
-    constructor(options) {
-        this.map = options.map
-        this.L = options.L
-        this.basemapList = []
-        this.basemapMap = new Map()
-        this.basemapLayerGroup = options.L.layerGroup().addTo(options.map)
-    }
+class BasemapHelper {
+  constructor (options) {
+    this.map = options.map
+    this.L = window.L
+    this.basemapList = []
+    this.basemapMap = new Map()
+    this.basemapLayerGroup = this.L.layerGroup().addTo(options.map)
+    this.currentBaseMapCode = null
+  }
 
     /**
      * 璇ユ柟娉曡礋璐e悇绉嶅簳鍥惧姞杞藉埌鍦板浘涓�
      * @param map
      * @param defBasemapName 鍒濆鍖栧畬鎴愬悗锛岄粯璁ゆ樉绀虹殑鍥惧眰
      */
-    initBasemap = (mapConfig, isIntranet) => {
-        if(isIntranet) { // 鍐呯綉
-            this._getToken(mapConfig); // 鑾峰彇token鍚庯紝骞舵寜閰嶇疆鍔犺浇鍦板浘
-        }else { // 澶栫綉
-            this._createBasemapByConfig(mapConfig)
-        }
+    initBasemap =async (config, isIntranet) => {
+      if (isIntranet) { // 鍐呯綉
+        this._getToken(config) // 鑾峰彇token鍚庯紝骞舵寜閰嶇疆鍔犺浇鍦板浘
+      } else { // 澶栫綉
+        this._createBasemapByConfig(config)
+      }
 
-        return this.basemapMap
+      return this.basemapMap
     }
 
     /**
@@ -32,7 +34,7 @@
      * @returns {null} 缁撴瀯锛歔{鍚嶇О, 鍥惧眰寮曠敤}]
      */
     getBasemapList = () => {
-        return this.basemapList
+      return this.basemapList
     }
 
     /**
@@ -41,95 +43,93 @@
      * @param code 鍚嶇О
      */
     getBasemap = (map, code) => {
-        return this.basemapMap.get(code)
+      return this.basemapMap.get(code)
     }
 
     /**
      * 鏄剧ず鏌愪釜鍥惧眰
-     * @param map 鍦板浘瀵硅薄
      * @param layer 寰呮樉绀哄浘灞傚紩鐢�
      * @param isHideOthers 鏄惁鍏堝叧闂叾浠栧浘灞傦紝榛樿鏄痶rue
      */
-    showBasemap = (map, code, isHideOthers = true) => {
-        let basemap = this.basemapMap.get(code)
-        if(isHideOthers) {
-            for(let i = 0, len = this.basemapList.length; i < len; ++i){
-                map.removeLayer(this.basemapList[i])
-            }
-        }
-        map.addLayer(basemap.layer)
-        map.addLayer(basemap.annotation)
+    showBasemap = (code, showAnnotation, isHideOthers = true) => {
+      const basemap = this.basemapMap.get(code)
+      if (isHideOthers) {
+        this.basemapLayerGroup.clearLayers()
+      }
+      this.basemapLayerGroup.addLayer(basemap.layer)
+      if (showAnnotation) {
+        this.basemapLayerGroup.addLayer(basemap.annotation)
+      } else {
+        this.basemapLayerGroup.removeLayer(basemap.annotation)
+      }
     }
 
     /**
      * 闅愯棌鏌愪釜鍥惧眰
-     * @param map 鍦板浘瀵硅薄
      * @param layer 寰呭叧闂浘灞傚紩鐢�
      */
-    hideBasemap = (map, code) => {
-        let basemap = this.basemapMap.get(code)
-        map.removeLayer(basemap.layer)
-        map.removeLayer(basemap.annotation)
+    hideBasemap = (code) => {
+      const basemap = this.basemapMap.get(code)
+      this.map.removeLayer(basemap.layer)
+      this.map.removeLayer(basemap.annotation)
     }
 
     // 鍏綉鍒涘缓鍦板浘閮ㄥ垎
-    _createBasemapByConfig(mapConfig){
-        console.log(mapConfig)
-        let internetBasemaps = mapConfig.mapConfig.InternetBaseMaps
-        for(let i = 0, len = internetBasemaps.length; i < len; ++i) {
-            let basemapConfig = internetBasemaps[i]
-            let basemapLayer = this.L.tileLayer(basemapConfig.map.url, basemapConfig.map.option)
-            let basemapAnnotationLayer = this.L.tileLayer(basemapConfig.annotation.url, basemapConfig.annotation.option)
+    _createBasemapByConfig (config) {
+      const internetBasemaps = config.mapConfig.InternetBaseMaps
+      for (let i = 0, len = internetBasemaps.length; i < len; ++i) {
+        const basemapConfig = internetBasemaps[i]
+        const basemapLayer = this.L.tileLayer(basemapConfig.map.url, basemapConfig.map.option)
+        const basemapAnnotationLayer = this.L.tileLayer(basemapConfig.annotation.url, basemapConfig.annotation.option)
 
-            let basemap = {
-                code: basemapConfig.code,
-                name: basemapConfig.name,
-                conf: basemapConfig,
-                layer: basemapLayer,
-                annotation: basemapAnnotationLayer
-            }
-         
-            this.basemapList.push(basemap);
-            this.basemapMap.set(basemapConfig.code, basemap)
-            if(typeof basemapConfig.isAddToMap !== 'undefined' && basemapConfig.isAddToMap) {
-                this.basemapLayerGroup.addLayer(basemapLayer)
-                this.basemapLayerGroup.addLayer(basemapAnnotationLayer)
-            }
+        const basemap = {
+          code: basemapConfig.code,
+          name: basemapConfig.name,
+          conf: basemapConfig,
+          layer: basemapLayer,
+          annotation: basemapAnnotationLayer
         }
+
+        this.basemapList.push(basemap)
+        this.basemapMap.set(basemapConfig.code, basemap)
+        if (typeof basemapConfig.isAddToMap !== 'undefined' && basemapConfig.isAddToMap) {
+          this.basemapLayerGroup.addLayer(basemapLayer)
+          this.basemapLayerGroup.addLayer(basemapAnnotationLayer)
+        }
+      }
     }
 
     // 鍐呯綉鍦板浘鍒涘缓閮ㄥ垎
     // 鑾峰彇鍐呯綉鍦板浘token锛屽苟鍔犺浇鍒板湴鍥句腑
-    _getToken = (mapConfig) => {
-        let params = mapConfig.TokenConfig
-        AjaxUtils.GetDataAsynByUrl(params.url, params.option, (token) => {
-            this._showTDT(token, mapConfig)
-        })
+    _getToken = async (config) => {
+      const params = config.TokenConfig
+      const token = await AjaxUtils.GetDataAsynByUrl(params.url, params.option)
+      this._showTDT(token, config)
     }
 
     // 鍐呯綉鍦板浘鍔犺浇锛屽苟鍔犺浇鍒板湴鍥�
-    _showTDT = (token, mapConfig) => {
-        let intranetBasemaps = mapConfig.mapConfig.IntranetBaseMaps
-        for(let i = 0, len = intranetBasemaps.length; i < len; ++i) {
-            let basemapConfig = intranetBasemaps[i]
-            let basemapLayer = this.L.tileLayer(basemapConfig.map.url, basemapConfig.map.option)
-            let basemapAnnotationLayer = this.L.tileLayer(basemapConfig.annotation.url, basemapConfig.annotation.option)
+    _showTDT = (token, config) => {
+      const intranetBasemaps = config.mapConfig.IntranetBaseMaps
+      for (let i = 0, len = intranetBasemaps.length; i < len; ++i) {
+        const basemapConfig = intranetBasemaps[i]
+        const basemapLayer = this.L.tileLayer(basemapConfig.map.url + '&token=' + token, basemapConfig.map.option)
+        const basemapAnnotationLayer = this.L.tileLayer(basemapConfig.annotation.url + '&token=' + token, basemapConfig.annotation.option)
 
-            let basemap = {
-                code: basemapConfig.code,
-                name: basemapConfig.name,
-                conf: basemapConfig,
-                layer: basemapLayer,
-                annotation: basemapAnnotationLayer
-            }
-         
-            this.basemapList.push(basemap);
-            this.basemapMap.set(basemapConfig.code, basemap)
-            if(typeof basemapConfig.isAddToMap !== 'undefined' && basemapConfig.isAddToMap) {
-                this.basemapLayerGroup.addLayer(basemapLayer)
-                this.basemapLayerGroup.addLayer(basemapAnnotationLayer)
-            }
+        const basemap = {
+          code: basemapConfig.code,
+          name: basemapConfig.name,
+          conf: basemapConfig,
+          layer: basemapLayer,
+          annotation: basemapAnnotationLayer
         }
+
+        this.basemapList.push(basemap)
+        this.basemapMap.set(basemapConfig.code, basemap)
+        if (typeof basemapConfig.isAddToMap !== 'undefined' && basemapConfig.isAddToMap) {
+          this.basemapLayerGroup.addLayer(basemapLayer)
+          this.basemapLayerGroup.addLayer(basemapAnnotationLayer)
+        }
+      }
     }
 }
 

--
Gitblit v1.8.0