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 |   36 +++++++++++++++++++-----------------
 1 files changed, 19 insertions(+), 17 deletions(-)

diff --git a/src/components/helpers/BasemapHelper.js b/src/components/helpers/BasemapHelper.js
index 60fc9e8..9fc4059 100644
--- a/src/components/helpers/BasemapHelper.js
+++ b/src/components/helpers/BasemapHelper.js
@@ -1,16 +1,17 @@
 /* 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.L = window.L
     this.basemapList = []
     this.basemapMap = new Map()
-    this.basemapLayerGroup = options.L.layerGroup().addTo(options.map)
+    this.basemapLayerGroup = this.L.layerGroup().addTo(options.map)
+    this.currentBaseMapCode = null
   }
 
     /**
@@ -18,11 +19,11 @@
      * @param map
      * @param defBasemapName 鍒濆鍖栧畬鎴愬悗锛岄粯璁ゆ樉绀虹殑鍥惧眰
      */
-    initBasemap = (mapConfig, isIntranet) => {
+    initBasemap =async (config, isIntranet) => {
       if (isIntranet) { // 鍐呯綉
-        this._getToken(mapConfig) // 鑾峰彇token鍚庯紝骞舵寜閰嶇疆鍔犺浇鍦板浘
+        this._getToken(config) // 鑾峰彇token鍚庯紝骞舵寜閰嶇疆鍔犺浇鍦板浘
       } else { // 澶栫綉
-        this._createBasemapByConfig(mapConfig)
+        this._createBasemapByConfig(config)
       }
 
       return this.basemapMap
@@ -58,6 +59,8 @@
       this.basemapLayerGroup.addLayer(basemap.layer)
       if (showAnnotation) {
         this.basemapLayerGroup.addLayer(basemap.annotation)
+      } else {
+        this.basemapLayerGroup.removeLayer(basemap.annotation)
       }
     }
 
@@ -72,8 +75,8 @@
     }
 
     // 鍏綉鍒涘缓鍦板浘閮ㄥ垎
-    _createBasemapByConfig (mapConfig) {
-      const internetBasemaps = mapConfig.mapConfig.InternetBaseMaps
+    _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)
@@ -98,20 +101,19 @@
 
     // 鍐呯綉鍦板浘鍒涘缓閮ㄥ垎
     // 鑾峰彇鍐呯綉鍦板浘token锛屽苟鍔犺浇鍒板湴鍥句腑
-    _getToken = (mapConfig) => {
-      const 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) => {
-      const intranetBasemaps = mapConfig.mapConfig.IntranetBaseMaps
+    _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, basemapConfig.map.option)
-        const basemapAnnotationLayer = this.L.tileLayer(basemapConfig.annotation.url, basemapConfig.annotation.option)
+        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)
 
         const basemap = {
           code: basemapConfig.code,

--
Gitblit v1.8.0