派生自 wuyushui/SewerAndRainNetwork

徐旺旺
2021-02-22 b89ad0355f2d466304ecc2dad86407e26aa69db4
src/components/helpers/BasemapHelper.js
@@ -7,10 +7,10 @@
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)
  }
    /**
@@ -18,11 +18,11 @@
     * @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
@@ -50,16 +50,15 @@
     * @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)
      }
    }
    /**
@@ -73,8 +72,8 @@
    }
    // 公网创建地图部分
    _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)
@@ -99,16 +98,16 @@
    // 内网地图创建部分
    // 获取内网地图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)