From 2681b362f5e4445c65083c5210e2f2730fc4b684 Mon Sep 17 00:00:00 2001 From: wangrui <zephyrs0894@163.com> Date: 星期六, 19 十二月 2020 02:29:08 +0800 Subject: [PATCH] ba --- src/components/helpers/BasemapHelper.js | 99 +++++++++++++++++++++++++++++++++++++------------ 1 files changed, 75 insertions(+), 24 deletions(-) diff --git a/src/components/helpers/BasemapHelper.js b/src/components/helpers/BasemapHelper.js index ddd6c32..b8700b1 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) } /** @@ -19,9 +19,9 @@ */ initBasemap = (mapConfig, isIntranet) => { if(isIntranet) { - this._getToken(mapConfig); + this._getToken(mapConfig); // 鑾峰彇token锛屽苟鎸夐厤缃姞杞藉湴鍥� }else { - // + this._createBasemapByConfig(mapConfig) } return this.basemapMap @@ -31,18 +31,17 @@ * 鑾峰彇鎵�鏈夌殑搴曞浘鍒楄〃 * @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) } /** @@ -51,8 +50,15 @@ * @param layer 寰呮樉绀哄浘灞傚紩鐢� * @param isHideOthers 鏄惁鍏堝叧闂叾浠栧浘灞傦紝榛樿鏄痶rue */ - showBasemap = (map, layer, isHideOthers) => { - console.log(map, layer, isHideOthers) + 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) } /** @@ -60,23 +66,68 @@ * @param map 鍦板浘瀵硅薄 * @param layer 寰呭叧闂浘灞傚紩鐢� */ - hideBasemap = (map, layer) => { - console.log(map, layer) + hideBasemap = (map, code) => { + let basemap = this.basemapMap.get(code) + map.removeLayer(basemap.layer) + 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.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