From 02d584c8d0f31b56f24e367681aa034cd2acf0e9 Mon Sep 17 00:00:00 2001 From: wangrui <zephyrs0894@163.com> Date: 星期六, 19 十二月 2020 02:20:38 +0800 Subject: [PATCH] 重构地图加载的逻辑 --- src/components/helpers/BasemapHelper.js | 72 +++++++++++++++++++++++++++++------- 1 files changed, 58 insertions(+), 14 deletions(-) diff --git a/src/components/helpers/BasemapHelper.js b/src/components/helpers/BasemapHelper.js index ddd6c32..6ff5085 100644 --- a/src/components/helpers/BasemapHelper.js +++ b/src/components/helpers/BasemapHelper.js @@ -1,15 +1,15 @@ +/* eslint-disable no-debugger */ import AjaxUtils from '@/utils/AjaxUtils' -import CommonLayerLoad from '../mapmodules/CommonLayerLoad' /** * 搴曞浘绠$悊鍔╂墜锛岃礋璐e簳鍥惧垱寤哄強寮�鍏� */ class BasemapHelper{ - constructor(map, L) { - this.map = map - this.L = L + constructor(options) { + this.map = options.map + this.L = options.L this.basemapList = [] this.basemapMap = new Map() - this.basemapLayerGroup = L.layerGroup().addTo(map) + this.basemapLayerGroup = options.L.layerGroup().addTo(options.map) } /** @@ -18,10 +18,11 @@ * @param defBasemapName 鍒濆鍖栧畬鎴愬悗锛岄粯璁ゆ樉绀虹殑鍥惧眰 */ initBasemap = (mapConfig, isIntranet) => { + debugger if(isIntranet) { - this._getToken(mapConfig); + this._getToken(mapConfig); // 鑾峰彇token锛屽苟鎸夐厤缃姞杞藉湴鍥� }else { - // + this._createBasemapByConfig(mapConfig) } return this.basemapMap @@ -64,19 +65,62 @@ console.log(map, layer) } + // 鍏綉鍒涘缓鍦板浘閮ㄥ垎 + _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.options) + let basemapAnnotationLayer = this.L.tileLayer(basemapConfig.annotation.url, basemapConfig.annotation.options) + + let basemap = { + code: basemapConfig.code, + name: basemapConfig.name, + 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) + this._showTDT(token, mapConfig) }) } - _showTDT = (token) => { - let commonLayerLoad = new CommonLayerLoad() - const imgMapm = commonLayerLoad.loadIntranetImgMap(token) - const imgMapa = commonLayerLoad.loadIntranetImgMapCia(token) - this.basemapLayerGroup.addLayer(imgMapm) - this.basemapLayerGroup.addLayer(imgMapa) + // 鍐呯綉鍦板浘鍔犺浇锛屽苟鍔犺浇鍒板湴鍥� + _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.options) + let basemapAnnotationLayer = this.L.tileLayer(basemapConfig.annotation.url, basemapConfig.annotation.options) + + let basemap = { + code: basemapConfig.code, + name: basemapConfig.name, + 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