/**
|
* 业务相关矢量图管理助手,负责业务相关矢量图创建及开关
|
*/
|
function VectorLayerHelper (options) {
|
this.map = options.map
|
this.L = window.L
|
this.vectorLayerMap = new Map()
|
this.vectorLayerList = []
|
this.vectorLayerGroup = null
|
this.vueState = {} // 用户图层权限
|
/**
|
* 该方法负责各种底图加载到地图上
|
* 不同页面加载图层不同根据模块类型选择加载不同图层
|
* @param map
|
*/
|
this.initVectorLayers = (vueState) => {
|
this.vectorLayerGroup = this.L.layerGroup().addTo(options.map)
|
this.vueState = vueState
|
}
|
|
/**
|
* 获取所有的图层列表
|
* @returns {null} 结构:[{名称, 图层引用}]
|
*/
|
this.getVectorLayerList = () => {
|
return this.vectorLayerList
|
}
|
|
/**
|
* 通过名称获取图层对象
|
* @param name 名称
|
*/
|
this.getVectorLayer = (code) => {
|
return this.vectorLayerMap[code]
|
}
|
|
/**
|
* 显示某个图层
|
* @param name 图层名称
|
*/
|
this.showVectorLayer = (code) => {
|
const layer = this.vectorLayerMap.get(code)
|
this.map.addLayer(layer)
|
}
|
|
/**
|
* 隐藏某个图层
|
* @param name 图层名称
|
*/
|
this.hideVectorLayer = (code) => {
|
const layer = this.vectorLayerMap.get(code)
|
this.map.removeLayer(layer)
|
}
|
}
|
|
export default VectorLayerHelper
|