| | |
| | | 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) |
| | | } |
| | | |
| | | /** |
| | |
| | | * @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 |
| | |
| | | * @param layer 待显示图层引用 |
| | | * @param isHideOthers 是否先关闭其他图层,默认是true |
| | | */ |
| | | showBasemap = (code, isHideOthers = true) => { |
| | | showBasemap = (code, showAnnotation, isHideOthers = true) => { |
| | | const 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.basemapLayerGroup.clearLayers() |
| | | } |
| | | this.map.addLayer(basemap.layer) |
| | | this.map.addLayer(basemap.annotation) |
| | | this.basemapLayerGroup.addLayer(basemap.layer) |
| | | if (showAnnotation) { |
| | | this.basemapLayerGroup.addLayer(basemap.annotation) |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | // 公网创建地图部分 |
| | | _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) |
| | |
| | | |
| | | // 内网地图创建部分 |
| | | // 获取内网地图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) |