From 3eda2a49edc60f3961604223f557dcd6ab6db94f Mon Sep 17 00:00:00 2001
From: wangrui <zephyrs0894@163.com>
Date: 星期三, 23 十二月 2020 16:52:54 +0800
Subject: [PATCH] 底图切换组件开发完成

---
 src/components/helpers/BasemapHelper.js |   50 ++++++++++++++++++++++++++++++--------------------
 1 files changed, 30 insertions(+), 20 deletions(-)

diff --git a/src/components/helpers/BasemapHelper.js b/src/components/helpers/BasemapHelper.js
index 6ff5085..652c7e8 100644
--- a/src/components/helpers/BasemapHelper.js
+++ b/src/components/helpers/BasemapHelper.js
@@ -18,10 +18,9 @@
      * @param defBasemapName 鍒濆鍖栧畬鎴愬悗锛岄粯璁ゆ樉绀虹殑鍥惧眰
      */
     initBasemap = (mapConfig, isIntranet) => {
-        debugger
-        if(isIntranet) {
-            this._getToken(mapConfig); // 鑾峰彇token锛屽苟鎸夐厤缃姞杞藉湴鍥�
-        }else {
+        if(isIntranet) { // 鍐呯綉
+            this._getToken(mapConfig); // 鑾峰彇token鍚庯紝骞舵寜閰嶇疆鍔犺浇鍦板浘
+        }else { // 澶栫綉
             this._createBasemapByConfig(mapConfig)
         }
 
@@ -32,37 +31,46 @@
      * 鑾峰彇鎵�鏈夌殑搴曞浘鍒楄〃
      * @returns {null} 缁撴瀯锛歔{鍚嶇О, 鍥惧眰寮曠敤}]
      */
-    getBasemapList = (map) => {
-        console.log(map)
-        return null
+    getBasemapList = () => {
+        return this.basemapList
     }
 
     /**
      * 閫氳繃鍚嶇О鑾峰彇搴曞浘瀵硅薄
      * @param map 缁撴瀯锛歔{鍚嶇О, 鍥惧眰寮曠敤}]
-     * @param name 鍚嶇О
+     * @param code 鍚嶇О
      */
-    getBasemap = (map, name) => {
-        console.log(map, name)
+    getBasemap = (map, code) => {
+        return this.basemapMap.get(code)
     }
 
     /**
      * 鏄剧ず鏌愪釜鍥惧眰
-     * @param map 鍦板浘瀵硅薄
      * @param layer 寰呮樉绀哄浘灞傚紩鐢�
      * @param isHideOthers 鏄惁鍏堝叧闂叾浠栧浘灞傦紝榛樿鏄痶rue
      */
-    showBasemap = (map, layer, isHideOthers) => {
-        console.log(map, layer, isHideOthers)
+    showBasemap = (code, isHideOthers = true) => {
+        debugger
+        let basemap = this.basemapMap.get(code)
+        if(isHideOthers) {
+            for(let i = 0, len = this.basemapList.length; i < len; ++i){
+                this.map.removeLayer(this.basemapList[i].layer)
+                this.map.removeLayer(this.basemapList[i].annotation)
+            }
+        }
+        this.map.addLayer(basemap.layer)
+        this.map.addLayer(basemap.annotation)
     }
 
     /**
      * 闅愯棌鏌愪釜鍥惧眰
-     * @param map 鍦板浘瀵硅薄
      * @param layer 寰呭叧闂浘灞傚紩鐢�
      */
-    hideBasemap = (map, layer) => {
-        console.log(map, layer)
+    hideBasemap = (code) => {
+        debugger
+        let basemap = this.basemapMap.get(code)
+        this.map.removeLayer(basemap.layer)
+        this.map.removeLayer(basemap.annotation)
     }
 
     // 鍏綉鍒涘缓鍦板浘閮ㄥ垎
@@ -71,12 +79,13 @@
         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.options)
-            let basemapAnnotationLayer = this.L.tileLayer(basemapConfig.annotation.url, basemapConfig.annotation.options)
+            let basemapLayer = this.L.tileLayer(basemapConfig.map.url, basemapConfig.map.option)
+            let basemapAnnotationLayer = this.L.tileLayer(basemapConfig.annotation.url, basemapConfig.annotation.option)
 
             let basemap = {
                 code: basemapConfig.code,
                 name: basemapConfig.name,
+                conf: basemapConfig,
                 layer: basemapLayer,
                 annotation: basemapAnnotationLayer
             }
@@ -104,12 +113,13 @@
         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.options)
-            let basemapAnnotationLayer = this.L.tileLayer(basemapConfig.annotation.url, basemapConfig.annotation.options)
+            let basemapLayer = this.L.tileLayer(basemapConfig.map.url, basemapConfig.map.option)
+            let basemapAnnotationLayer = this.L.tileLayer(basemapConfig.annotation.url, basemapConfig.annotation.option)
 
             let basemap = {
                 code: basemapConfig.code,
                 name: basemapConfig.name,
+                conf: basemapConfig,
                 layer: basemapLayer,
                 annotation: basemapAnnotationLayer
             }

--
Gitblit v1.8.0