import * as L from 'leaflet' import BasemapHelper from '@components/helpers/BasemapHelper' import VectorLayerHelper from '@components/helpers/VectorLayerHelper' 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 MapConfig from '@/conf/MapConfig' import CommonLayerLoad from '@components/mapmodules/CommonLayerLoad' import DashFlow from '@components/plugin/PathDashFlow' import AjaxUtils from '@/utils/AjaxUtils' let map = null let baseMapGroup = null let commonLayerLoad = null const initMap = (div) => { if (map != null) { map.remove() baseMapGroup = null commonLayerLoad = null } Editable.init(L) PathDrag.init(L) MagicMarker.init(L) CanvasIcon.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 // showLngLat() return { map: map, L: L } } 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 */ const initBasemaps = (map, L) => { // todo 这里进行底图地图的初始化 var basemapHelper = new BasemapHelper(map, L) return basemapHelper } /** * 矢量地图初始化 * @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 } export default { initMap, initBasemaps, initLayers }