| | |
| | | constructor (options) { |
| | | this.map = options.map |
| | | this.L = window.L |
| | | this.tileLayersMap = new Map() |
| | | this.tileLayersWMSArray = [] |
| | | this.loadedLayersMap = new Map() |
| | | this.tileLayerWmslayerGroup = this.L.layerGroup().addTo(this.map) |
| | | this.tileLayersWMTSArray = [] |
| | | this.tileLayersTileArray = [] |
| | | this.tileLayersWMTSArray = [] // 初始的WMTS集 |
| | | this.tileLayersTileArray = [] // 初始的Tile集 |
| | | this.tileLayersWMSArray = [] // 初始的WMS集 |
| | | this.mapConfig = {} |
| | | } |
| | | |
| | | getTileLayer (code) { |
| | | return this.tileLayersMap.get(code) |
| | | return this.loadedLayersMap.get(code) |
| | | } |
| | | |
| | | /** |
| | |
| | | console.debug('ServiceLayerHelper加载参数:', mapConfig) |
| | | for (let i = 0, len = mapConfig.mapConfig.ServiceLayers.length; i < len; ++i) { |
| | | const opt = mapConfig.mapConfig.ServiceLayers[i] |
| | | this.setArray(opt) |
| | | if (opt.type === 'wmts') { |
| | | this.loadWmtsLayer(opt, isAddToMap, mapConfig.mapConfig.ServiceLayers[i]) |
| | | opt.checked && this.loadWmtsLayer(opt, isAddToMap, mapConfig.mapConfig.ServiceLayers[i]) |
| | | } else if (opt.type === 'wms') { |
| | | this.loadWmsLayer(opt, isAddToMap, mapConfig.mapConfig.ServiceLayers[i]) |
| | | opt.checked && this.loadWmsLayer(opt, isAddToMap, mapConfig.mapConfig.ServiceLayers[i]) |
| | | } else if (opt.type === 'tile') { |
| | | this.loadTileLayer(opt, isAddToMap, mapConfig.mapConfig.ServiceLayers[i]) |
| | | opt.checked && this.loadTileLayer(opt, isAddToMap, mapConfig.mapConfig.ServiceLayers[i]) |
| | | } |
| | | } |
| | | } |
| | | |
| | | setArray (opt) { |
| | | var type = opt.type |
| | | if (type === 'wmts') { |
| | | this.tileLayersWMTSArray.push(opt) |
| | | } else if (type === 'wms') { |
| | | this.tileLayersWMSArray.push(opt) |
| | | } else if (type === 'tile') { |
| | | this.tileLayersTileArray.push(opt) |
| | | } |
| | | } |
| | | |
| | |
| | | if (isAddToMap) { |
| | | layer.addTo(this.map) |
| | | } |
| | | this.tileLayersMap.set(options.code, layer) |
| | | this.tileLayersWMTSArray.push(layer) |
| | | this.loadedLayersMap.set(options.code, layer) |
| | | } |
| | | |
| | | /** |
| | |
| | | if (isAddToMap) { |
| | | layer.addTo(this.tileLayerWmslayerGroup) |
| | | } |
| | | this.tileLayersMap.set(options.code, layer) |
| | | this.tileLayersWMSArray.push(layer) |
| | | this.loadedLayersMap.set(options.code, layer) |
| | | } |
| | | |
| | | /** |
| | |
| | | if (isAddToMap) { |
| | | layer.addTo(this.map) |
| | | } |
| | | this.tileLayersMap.set(options.code, layer) |
| | | this.tileLayersTileArray.push(layer) |
| | | this.loadedLayersMap.set(options.code, layer) |
| | | } |
| | | |
| | | /** |
| | |
| | | * @param {*} name |
| | | */ |
| | | hideTileLayer (code) { |
| | | if (this.tileLayersMap) { |
| | | const tileLayer = this.tileLayersMap.get(code) |
| | | if (this.loadedLayersMap) { |
| | | const tileLayer = this.loadedLayersMap.get(code) |
| | | this.map.removeLayer(tileLayer) |
| | | } |
| | | } |
| | |
| | | * @param {*} name |
| | | */ |
| | | showTileLayer (code) { |
| | | if (this.tileLayersMap) { |
| | | const tileLayer = this.tileLayersMap.get(code) |
| | | if (this.loadedLayersMap) { |
| | | const tileLayer = this.loadedLayersMap.get(code) |
| | | this.map.addLayer(tileLayer) |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 得到选中的图层列表 |
| | | * @param mapConfig |
| | | * @returns {[]} |
| | | */ |
| | | getCheckedLayers (mapConfig) { |
| | | var checkedLayers = [] |
| | | var serviceLayers = mapConfig.ServiceLayers |
| | | for (var i = 0; i < serviceLayers.length; i++) { |
| | | var serviceLayer = serviceLayers[i] |
| | | var layers = serviceLayer.layers |
| | | for (var j = 0; j < layers.length; j++) { |
| | | var layer = layers[j] |
| | | var checked = layer.checked |
| | | if (checked) { |
| | | checkedLayers.push(layer) |
| | | } |
| | | } |
| | | } |
| | | return checkedLayers |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | /** |
| | | * 根据线的选择,得到点的可选择图层数据 |
| | | */ |
| | | getFiltersGroup () { |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 通过code查找WMS的服务配置 |
| | | * @param {} code wms服务配置的code |
| | | */ |
| | | getWMSConfig (code) { |
| | | const mc = this.mapConfig |
| | | for (let i = 0, len = mc.mapConfig.ServiceLayers.length; i < len; ++i) { |
| | | if (code === mc.mapConfig.ServiceLayers[i].code && mc.mapConfig.ServiceLayers[i].type === 'wms') { |
| | | if (code === mc.mapConfig.ServiceLayers[i].code || mc.mapConfig.ServiceLayers[i].type === 'wms') { |
| | | return mc.mapConfig.ServiceLayers[i] |
| | | } |
| | | } |