From 95ff3cadc7685f6470a0d6c78429dbfd5b1451d9 Mon Sep 17 00:00:00 2001 From: YANGDL <114714267@qq.com> Date: 星期一, 08 三月 2021 17:53:30 +0800 Subject: [PATCH] 天地图瓦片切换增加淡入淡出效果 --- src/components/helpers/BasemapHelper.js | 43 +++++++++++++++++++++++++++---------------- 1 files changed, 27 insertions(+), 16 deletions(-) diff --git a/src/components/helpers/BasemapHelper.js b/src/components/helpers/BasemapHelper.js index 60fc9e8..d17a606 100644 --- a/src/components/helpers/BasemapHelper.js +++ b/src/components/helpers/BasemapHelper.js @@ -7,10 +7,11 @@ 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 = (config, isIntranet) => { if (isIntranet) { // 鍐呯綉 - this._getToken(mapConfig) // 鑾峰彇token鍚庯紝骞舵寜閰嶇疆鍔犺浇鍦板浘 + this._getToken(config) // 鑾峰彇token鍚庯紝骞舵寜閰嶇疆鍔犺浇鍦板浘 } else { // 澶栫綉 - this._createBasemapByConfig(mapConfig) + this._createBasemapByConfig(config) } return this.basemapMap @@ -52,13 +53,23 @@ */ 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) - } + setTimeout(() => { + // const layer = this.basemapLayerGroup.hasLayer(basemap.layer) + // if (!layer) { + this.basemapLayerGroup.addLayer(basemap.layer) + // } + + if (showAnnotation) { + // if() + this.basemapLayerGroup.addLayer(basemap.annotation) + } else { + this.basemapLayerGroup.removeLayer(basemap.annotation) + } + }, 300) } /** @@ -72,8 +83,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,16 +109,16 @@ // 鍐呯綉鍦板浘鍒涘缓閮ㄥ垎 // 鑾峰彇鍐呯綉鍦板浘token锛屽苟鍔犺浇鍒板湴鍥句腑 - _getToken = (mapConfig) => { - const params = mapConfig.TokenConfig + _getToken = (config) => { + const params = config.TokenConfig AjaxUtils.GetDataAsynByUrl(params.url, params.option, (token) => { - this._showTDT(token, mapConfig) + 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) -- Gitblit v1.8.0