派生自 wuyushui/SewerAndRainNetwork

chenzeping
2021-03-08 3cc9f0efa740810f88738788b062f348d8d9b48a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/**
 * 业务相关矢量图管理助手,负责业务相关矢量图创建及开关
 */
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