| | |
| | | import AjaxUtils from '@/utils/AjaxUtils' |
| | | import store from '@/store' |
| | | |
| | | var myRenderer = window.L.canvas() |
| | | class ServiceLayerHelper { |
| | | constructor (options) { |
| | | this.map = options.map |
| | |
| | | this.geojsonArray = {} // 初始的geojson集 |
| | | this.layerConfig = {} |
| | | this.regex = /\{(.+?)\}/g // 匹配{} |
| | | this.popupComp = null |
| | | } |
| | | |
| | | getTileLayer (code) { |
| | |
| | | /** |
| | | * 根据配置文件初始化业务底图 |
| | | */ |
| | | initServiceLayers (layerConfig) { |
| | | initServiceLayers (layerConfig, popupComp) { |
| | | this.layerConfig = layerConfig |
| | | this.popupComp = popupComp |
| | | this.loadLayers(layerConfig.mapConfig.Layers.LayerSewersLine) |
| | | this.loadLayers(layerConfig.mapConfig.Layers.layerSewersPoint) |
| | | } |
| | | |
| | | /** |
| | |
| | | console.debug('ServiceLayerHelper加载参数:', layerConfig) |
| | | for (let i = 0, len = layerConfig.length; i < len; ++i) { |
| | | const opt = layerConfig[i] |
| | | if (opt.checked) { |
| | | if (opt.type === 'wmts') { |
| | | this.loadWmtsLayer(opt, isAddToMap) |
| | | this.tileLayersWMTSArray.push(opt) |
| | | } else if (opt.type === 'wms') { |
| | | this.loadWmsLayer(opt, isAddToMap) |
| | | this.tileLayersWMSArray.push(opt) |
| | | } else if (opt.type === 'tile') { |
| | | this.loadTileLayer(opt, isAddToMap) |
| | | this.tileLayersTileArray.push(opt) |
| | | } else if (opt.type === 'geojson') { |
| | | this.loadGeojsonLayers(opt) |
| | | } |
| | | if (opt.type === 'wmts') { |
| | | this.loadWmtsLayer(opt, isAddToMap) |
| | | this.tileLayersWMTSArray.push(opt) |
| | | } else if (opt.type === 'wms') { |
| | | this.loadWmsLayer(opt, isAddToMap) |
| | | this.tileLayersWMSArray.push(opt) |
| | | } else if (opt.type === 'tile') { |
| | | this.loadTileLayer(opt, isAddToMap) |
| | | this.tileLayersTileArray.push(opt) |
| | | } else if (opt.type === 'geojson') { |
| | | this.loadGeojsonLayers(opt) |
| | | } |
| | | } |
| | | } |
| | |
| | | loadGeojson (res, layer) { |
| | | var that = this |
| | | var icon = layer.icon |
| | | return that.L.geoJSON(res.features, { |
| | | const featureGroup = that.L.featureGroup().addTo(that.map) |
| | | that.L.geoJSON(res.features, { |
| | | style: function (feature) { |
| | | return { |
| | | fill: true, |
| | |
| | | size: [20, 20] |
| | | } |
| | | }) |
| | | }, |
| | | renderer: myRenderer |
| | | } |
| | | }).bindPopup(function (layer) { |
| | | return layer.feature.properties.linenumber |
| | | }).addTo(that.map) |
| | | that.popupComp.setDatas(layer) |
| | | that.popupComp.setShow() |
| | | return that.popupComp.$el |
| | | }, { |
| | | className: 's-map-popup', |
| | | minWidth: 300, |
| | | closeButton: false, |
| | | autoClose: false |
| | | }).addTo(featureGroup).bringToFront() |
| | | return featureGroup |
| | | } |
| | | |
| | | removeLayer (item) { |
| | |
| | | loadWmtsLayer (options, isAddToMap = true) { |
| | | const layer = this.L.tileLayer(options.url, options.option) |
| | | layer.config = options |
| | | |
| | | if (isAddToMap) { |
| | | layer.addTo(this.map) |
| | | var checked = options.checked |
| | | if (checked) { |
| | | if (isAddToMap) { |
| | | layer.addTo(this.map) |
| | | } |
| | | this.loadedLayersMap.set(options.code, layer) |
| | | } |
| | | this.loadedLayersMap.set(options.code, layer) |
| | | } |
| | | |
| | | /** |
| | |
| | | const layer = this.L.tileLayer.wms(options.url, options.option) |
| | | layer.config = options |
| | | |
| | | if (isAddToMap) { |
| | | layer.addTo(this.tileLayerWmslayerGroup) |
| | | var checked = options.checked |
| | | if (checked) { |
| | | if (isAddToMap) { |
| | | layer.addTo(this.tileLayerWmslayerGroup) |
| | | } |
| | | this.loadedLayersMap.set(options.code, layer) |
| | | } |
| | | this.loadedLayersMap.set(options.code, layer) |
| | | } |
| | | |
| | | /** |