派生自 wuyushui/SewerAndRainNetwork

chenzeping
2021-03-10 f21ba60dd8cd2f9f021d579fe52325abd37f4af1
src/Sgis.js
@@ -1,104 +1,87 @@
import * as L from 'leaflet'
import BasemapHelper from '@components/helpers/BasemapHelper'
import VectorLayerHelper from '@components/helpers/VectorLayerHelper'
import ServiceLayerHelper from '@components/helpers/ServiceLayerHelper'
import Editable from '@components/plugin/Editable'
import PathDrag from '@components/plugin/PathDrag'
import CanvasIcon from '@components/plugin/CanvasMarkers'
import MagicMarker from '@components/plugin/MagicMarker'
import 'leaflet.markercluster'
import WmtsSupport from '@components/plugin/wmts_plugins'
import MapConfig from '@/conf/MapConfig'
import CommonLayerLoad from '@components/mapmodules/CommonLayerLoad'
import DashFlow from '@components/plugin/PathDashFlow'
import AjaxUtils from '@/utils/AjaxUtils'
import CanvasMarkers from '@components/plugin/CanvasMarkers'
import FullScreen from '@components/plugin/FullScreen'
// 下载
import DownLoad from '@components/plugin/DownLoad'
// 测量
import LeafletMeasurePath from '@components/plugin/leaflet-measure-path/leaflet-measure-path'
let map = null
let baseMapGroup = null
let commonLayerLoad = null
const L = window.L
const initMap = (div) => {
    if (map != null) {
        map.remove()
        baseMapGroup = null
        commonLayerLoad = null
    }
  if (map != null) {
    map.remove()
  }
    Editable.init(L)
    PathDrag.init(L)
    MagicMarker.init(L)
    CanvasIcon.init(L)
  // Leaflet扩展代码
  Editable.init(L) // 图层编辑
  PathDrag.init(L) // 路径拖拽
  MagicMarker.init(L) // 动画Marker
  WmtsSupport.init(L) // 扩展,使支持WMTS
  // CustomPopup.init(L) // 自定义弹出框
  DashFlow.DashFlow(L) // 流动线图
  CanvasMarkers.init(L)// 画布图层
  // 全屏
  FullScreen.init(L)
  // 下载
  DownLoad.init(L)
  LeafletMeasurePath.init(L)
    // CustomPopup.init(L)
    // DashFlow.DashFlow(L)
    map = L.map(div, MapConfig.mapOptions)
    DashFlow.DashFlow(L, map)
    commonLayerLoad = new CommonLayerLoad()
    const blueMap = commonLayerLoad.loadBlueMap()
    // const imgMapm = commonLayerLoad.loadImgMapm()
    // const imgMapa = commonLayerLoad.loadImgMapa()
    // L.layerGroup([normalMapm, normalMapa]).addTo(map)
    baseMapGroup = L.layerGroup([blueMap]).addTo(map)
    getToken()
    // L.control.scale({ maxWidth: 200, metric: true, imperial: false }).addTo(map)
    // L.control.layers(SgisConfig.baseLayers, SgisConfig.overlayLayers, { position: 'bottomright' }).addTo(map)
    // 加载国界和铁路
    const nationalBoundaries = commonLayerLoad.loadGuoJie()
    const railWay = commonLayerLoad.loadRailWay()
    nationalBoundaries.addTo(map)
    railWay.addTo(map)
    window.map = map
    window.L = L
  map = L.map(div, MapConfig.mapOptions)
    // showLngLat()
    return { map: map, L: L }
  map.on('click', (event, a, b) => {
    console.log(event, a, b)
  })
  window.map = map
  window.L = L
  initTileLayersHelper(map)
  return map
}
let getToken = () => {
    let params = MapConfig.TokenConfig
    AjaxUtils.GetDataAsynByUrl(params.url, params.option, function(token) {
        showTdt(token)
    })
}
let showTdt = (token) => {
    const imgMapm = commonLayerLoad.loadIntranetImgMap(token)
    const imgMapa = commonLayerLoad.loadIntranetImgMapCia(token)
    baseMapGroup.addLayer(imgMapm)
    baseMapGroup.addLayer(imgMapa)
/**
 * 基础底图初始化
 * @param map
 * @param L
 */
const initBasemapsHelper = (map) => {
  // todo 这里进行底图地图的初始化
  return new BasemapHelper({ map })
}
/**
 * 瓦片底图初始化
 * 业务底图初始化
 * @param map
 * @param L
 */
const initBasemaps = (map, L) => {
    // todo 这里进行底图地图的初始化
    var basemapHelper = new BasemapHelper(map, L)
    return basemapHelper
const initTileLayersHelper = (map) => {
  var serviceLayerHelper = new ServiceLayerHelper({ map })
  return serviceLayerHelper
}
/**
 * 矢量地图初始化
 * @param map
 */
/**
 *
 * @param map
 * @param L
 * @param obj { name: 'trackPlayer', ref: this.$refs.trackPlayer }  组件的名称 和 组件的引用
 * @param loadMethodNames
 */
const initLayers = (map, L, obj, env) => {
    // todo 这里进行地图的初始化
    var vectorLayerHelper = new VectorLayerHelper(map, L, env)
    if (obj != null) {
        vectorLayerHelper.setVueRef(obj.name, obj.ref)
    }
    // let loadMethodNames = ['dock', 'petro', 'fillingStation', 'storeHouse', 'productOil', 'transDisplay', 'ship', 'train', 'warningCar', 'trackQuery', 'weather']
    vectorLayerHelper.initVectorLayers()
    window.vectorLayerHelper = vectorLayerHelper
    return vectorLayerHelper
const initVectorLayersHelper = (map) => {
  // todo 这里进行地图的初始化
  window.vectorLayerHelper = new VectorLayerHelper({ map })
  return window.vectorLayerHelper
}
export default {
    initMap,
    initBasemaps,
    initLayers
  initMap,
  initBasemapsHelper,
  initTileLayersHelper,
  initVectorLayersHelper
}