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(): void { // layerType: String, key?: String, baseid: String, checked: boolean, isAll: boolean // 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?: any) => { return this.service.addInitDataLayer(pointData, layerType, mdoptions); }; //切换底图 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(); } // 切换地图视图 switchView(): void { // this.service.switchView() } // 飞行到指定的点 fitBounds(): void { // this.service.fitBounds(bounds) } // 飞行到指定的点 flyTopanto(position: number[], zoom: number): void { this.service.flyTopanto(position, zoom); } }