WholeProcessPlatform/frontend/src/components/gis/map.class.ts

114 lines
3.5 KiB
TypeScript
Raw Normal View History

2026-04-03 16:04:16 +08:00
import type { layer, MapInterface } from "./map.d";
import { MapLeaflet } from "./map.leaflet";
2026-04-20 16:57:54 +08:00
import { MapOl } from "./map.ol";
2026-04-03 16:04:16 +08:00
interface MapClassInterface extends MapInterface {
layers: Map<string, layer>;
view: any;
}
2026-04-20 16:57:54 +08:00
//描点参数
export type MDOptions = {
isAllowOverlap?: boolean; // 是否允许重叠
labelType?: number; // 标签类型
labelminZoom?: number; // 标签最小缩放级别
labelAltitude?: object; // 标签海拔
isRemove?: boolean; // 是否移除标签
};
2026-04-03 16:04:16 +08:00
export const mapServerBaseUrl = localStorage.getItem("gisurl") || "http://210.72.227.199:18084/";
export class MapClass implements MapClassInterface {
layers: Map<string, layer>;
view: any;
private static instance: MapClass;
private service: MapInterface;
2026-04-20 16:57:54 +08:00
constructor() {
this.layers = new Map();
this.view = null;
// this.service = new MapLeaflet();
this.service = new MapOl();
}
2026-04-03 16:04:16 +08:00
static getInstance(): MapClass {
if (!this.instance) {
this.instance = new MapClass();
}
return this.instance;
}
2026-04-20 16:57:54 +08:00
// 地图初始化
init(container: HTMLElement, rectangle?: any): Promise<any> {
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)
}
2026-04-03 16:04:16 +08:00
2026-04-20 16:57:54 +08:00
// 添加梯级流域图
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)
2026-04-03 16:04:16 +08:00
}
2026-04-20 16:57:54 +08:00
/**
*
*/
lengthCalculate(): void {
this.service.lengthCalculate()
}
/**
*
*/
areCalculate(): void {
this.service.areCalculate()
}
/**
*
*/
removeQueryLayer(): void {
this.service.removeQueryLayer()
}
// 地图打印
mapOutPut() {
this.service.mapOutPut()
}
// 销毁地图
destroy(): void {
this.service.destroy()
}
2026-04-03 16:04:16 +08:00
}