import type { layer, MapInterface } from "./map.d"; import { MapLeaflet } from "./map.leaflet"; import { MapOl } from "./map.ol"; interface MapClassInterface extends MapInterface { layers: Map; view: any; } //描点参数 export type MDOptions = { isAllowOverlap?: boolean; // 是否允许重叠 labelType?: number; // 标签类型 labelminZoom?: number; // 标签最小缩放级别 labelAltitude?: object; // 标签海拔 isRemove?: boolean; // 是否移除标签 }; export const mapServerBaseUrl = localStorage.getItem("gisurl") || "http://210.72.227.199:18084/"; export class MapClass implements MapClassInterface { layers: Map; view: any; private static instance: MapClass; private service: MapInterface; constructor() { this.layers = new Map(); this.view = null; // this.service = new MapLeaflet(); this.service = new MapOl(); } static getInstance(): MapClass { if (!this.instance) { this.instance = new MapClass(); } return this.instance; } // 地图初始化 init(container: HTMLElement, rectangle?: any): Promise { return this.service.init(container, rectangle).then((map) => { this.view = map; return map; }); } // 基地面板控制 jdPanelControlShowAndHidden(baseid: String, isAll: boolean): void { this.service.jdPanelControlShowAndHidden(baseid, isAll) } mdLayerShowOrHidden(layerType: String, key?: String, baseid: String, checked: boolean, isAll: boolean): void { this.service.mdLayerShowOrHidden(layerType, key, baseid, checked, isAll) } // 添加基础数据图层 addBaseDataLayer(layer: any): void { return this.service.addBaseDataLayer(layer) } // 基础图层显示影隐藏方法 controlBaseLayerTreeShowAndHidden(layerType: String, key: String, checked: boolean) { this.service.controlBaseLayerTreeShowAndHidden(layerType, key, checked) } // 图层树控制描点数据显示隐藏方法 mdLayerTreeShowOrHidden(layerType: String, checked?: boolean) { this.service.mdLayerTreeShowOrHidden(layerType, checked) } // 初始化加载描点数据 addInitDataLayer = (pointData: any[], layerType: any, mdoptions?: MDOptions, legendArray?: any) => { return this.service.addInitDataLayer(pointData, layerType, mdoptions, legendArray) } //切换底图 baseLayerSwitcher(key: string): void { this.service.baseLayerSwitcher(key) } // 添加梯级流域图 addTertiarybasinLayer(layer: layer, fillcolor: any, outlineColor: any, datas: any): void { this.service.addTertiarybasinLayer(layer, fillcolor, outlineColor, datas) } // 移除梯级流域图 removeTertiarybasinLayer(layer: layer): void { this.service.removeTertiarybasinLayer?.(layer) } // 缩放 zoomToggle(type: 'out' | 'in') { this.service.zoomToggle(type) } /** * 长度量算 */ lengthCalculate(): void { this.service.lengthCalculate() } /** * 面积量算 */ areCalculate(): void { this.service.areCalculate() } /** * 移除量算结果 */ removeQueryLayer(): void { this.service.removeQueryLayer() } // 地图打印 mapOutPut() { this.service.mapOutPut() } // 销毁地图 destroy(): void { this.service.destroy() } }