@gis_victory/gismap 2.0.23 → 2.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/App.vue.d.ts +2 -0
- package/dist/adapters/index.d.ts +13 -0
- package/dist/adapters/mapbox/MapboxAdapter.d.ts +44 -0
- package/dist/adapters/types.d.ts +216 -0
- package/dist/api/BaseController.d.ts +6 -0
- package/dist/api/CommonController.d.ts +51 -0
- package/dist/components/MapCompass/index.vue.d.ts +2 -0
- package/dist/components/MapContainer/index.d.ts +2 -0
- package/dist/components/MapContainer/index.vue.d.ts +344 -0
- package/dist/components/MapLayer/components/CustomLayerDialog.vue.d.ts +22 -0
- package/dist/components/MapLayer/components/LayerTab.vue.d.ts +2179 -0
- package/dist/components/MapLayer/index.d.ts +2 -0
- package/dist/components/MapLayer/index.vue.d.ts +2287 -0
- package/dist/components/MapLegend/index.d.ts +2 -0
- package/dist/components/MapLegend/index.vue.d.ts +14 -0
- package/dist/components/MapMeasure/index.vue.d.ts +2 -0
- package/dist/components/MapPrint/MapPrintPanel.vue.d.ts +21 -0
- package/dist/components/MapPrint/MapPrintService.d.ts +155 -0
- package/dist/components/MapPrint/index.vue.d.ts +37 -0
- package/dist/components/MapQueryResult/index.vue.d.ts +29 -0
- package/dist/components/MapQueryResult/popup.vue.d.ts +16 -0
- package/dist/components/MapSearch/index.d.ts +2 -0
- package/dist/components/MapSearch/index.vue.d.ts +56 -0
- package/dist/components/MapSwitch/index.d.ts +2 -0
- package/dist/components/MapSwitch/index.vue.d.ts +37 -0
- package/dist/components/MapTools/index.d.ts +2 -0
- package/dist/components/MapTools/index.vue.d.ts +40 -0
- package/dist/components/MobileMapLayer/BaseLayerSwitch.vue.d.ts +16 -0
- package/dist/components/MobileMapLayer/index.vue.d.ts +9 -0
- package/dist/components/Widgets/PopupBar/BarItem.vue.d.ts +75 -0
- package/dist/components/Widgets/PopupBar/index.vue.d.ts +21 -0
- package/dist/composables/index.d.ts +13 -0
- package/dist/composables/useControl.d.ts +39 -0
- package/dist/composables/useDraw.d.ts +49 -0
- package/dist/composables/useLayer.d.ts +57 -0
- package/dist/composables/useMap.d.ts +111 -0
- package/dist/composables/useMarker.d.ts +55 -0
- package/dist/composables/useMeasure.d.ts +49 -0
- package/dist/composables/useSearch.d.ts +20 -0
- package/dist/config/api.config.d.ts +40 -0
- package/dist/config/gismap.config.d.ts +156 -0
- package/dist/core/ManagerRegistry.d.ts +75 -0
- package/dist/core/PluginSystem.d.ts +71 -0
- package/dist/core/StateStore.d.ts +96 -0
- package/dist/core/TypedEventEmitter.d.ts +67 -0
- package/dist/core/di/Container.d.ts +61 -0
- package/dist/core/di/decorators.d.ts +32 -0
- package/dist/core/di/index.d.ts +7 -0
- package/dist/core/di/types.d.ts +59 -0
- package/dist/core/event/EventBus.d.ts +101 -0
- package/dist/core/event/index.d.ts +5 -0
- package/dist/core/event/types.d.ts +215 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/state/Store.d.ts +145 -0
- package/dist/core/state/index.d.ts +6 -0
- package/dist/core/state/types.d.ts +134 -0
- package/dist/domain/index.d.ts +8 -0
- package/dist/domain/layer/LayerEntity.d.ts +90 -0
- package/dist/domain/layer/LayerService.d.ts +128 -0
- package/dist/domain/marker/MarkerEntity.d.ts +77 -0
- package/dist/domain/marker/MarkerService.d.ts +105 -0
- package/dist/domain/types.d.ts +66 -0
- package/dist/examples/DrawDemo.vue.d.ts +2 -0
- package/dist/examples/DrawPanel.vue.d.ts +2 -0
- package/dist/examples/Map.vue.d.ts +74 -0
- package/dist/examples/MapDemoExample.vue.d.ts +2 -0
- package/dist/examples/MeasureDemo.vue.d.ts +2 -0
- package/dist/examples/MeasurePanel.vue.d.ts +2 -0
- package/dist/examples/SplitScreenDrawDemo.vue.d.ts +7 -0
- package/dist/examples/SplitScreenDrawPanel.vue.d.ts +12 -0
- package/dist/examples/SplitScreenPanel.vue.d.ts +12 -0
- package/dist/examples/TdtControlPanel.vue.d.ts +2 -0
- package/dist/examples/TiandituDemo.vue.d.ts +2 -0
- package/dist/gismap.css +1 -1
- package/dist/index.es.js +1 -1
- package/dist/main.d.ts +0 -0
- package/dist/manager/IconManager.d.ts +18 -0
- package/dist/manager/LayerManager.d.ts +50 -0
- package/dist/manager/MaskManager.d.ts +52 -0
- package/dist/manager/PlaceholderManager.d.ts +28 -0
- package/dist/manager/PopupManager.d.ts +13 -0
- package/dist/manager/QuickSearchManager.d.ts +24 -0
- package/dist/manager/RadarManager.d.ts +46 -0
- package/dist/manager/SplitScreenDrawManager.d.ts +75 -0
- package/dist/manager/SplitScreenManager.d.ts +81 -0
- package/dist/manager/TDTManager.d.ts +33 -0
- package/dist/manager/TemplateManager.d.ts +52 -0
- package/dist/manager/TerrainManager.d.ts +39 -0
- package/dist/manager/layer/MarkerLayer.d.ts +89 -0
- package/dist/manager/layer/VectorLayer.d.ts +30 -0
- package/dist/manager/mapbox/DrawManager.d.ts +153 -0
- package/dist/manager/mapbox/MeasureManager.d.ts +158 -0
- package/dist/router/index.d.ts +2 -0
- package/dist/services/MapContext.d.ts +171 -0
- package/dist/services/index.d.ts +5 -0
- package/dist/types/IEvents.d.ts +178 -0
- package/dist/types/IGISMap.d.ts +234 -0
- package/dist/types/IManager.d.ts +113 -0
- package/dist/types/IMapSearch.d.ts +28 -0
- package/dist/types/IState.d.ts +259 -0
- package/dist/types/ITemplate.d.ts +35 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/utils/hooks/layout.d.ts +4 -0
- package/dist/utils/http/axios.d.ts +3 -0
- package/dist/utils/http/config.d.ts +3 -0
- package/dist/utils/http/request.d.ts +46 -0
- package/dist/utils/index.d.ts +49 -0
- package/package.json +1 -1
- package/dist/index.umd.js +0 -1
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/** 绘制类型 */
|
|
2
|
+
export type DrawType = 'point' | 'line' | 'polygon';
|
|
3
|
+
/** GeoJSON Feature 属性 */
|
|
4
|
+
export interface DrawFeatureProperties {
|
|
5
|
+
id: string;
|
|
6
|
+
type: DrawType;
|
|
7
|
+
createdAt: number;
|
|
8
|
+
}
|
|
9
|
+
/** 绘制完成回调 */
|
|
10
|
+
export type DrawCallback = (type: DrawType, geoJson: GeoJSON.Feature, wkt: string, feature: DrawFeature) => void;
|
|
11
|
+
/** 选中回调 */
|
|
12
|
+
export type SelectCallback = (feature: DrawFeature | null) => void;
|
|
13
|
+
/** 绘制图形 */
|
|
14
|
+
export interface DrawFeature {
|
|
15
|
+
coordinates: any;
|
|
16
|
+
id: string;
|
|
17
|
+
type: DrawType;
|
|
18
|
+
geoJson: GeoJSON.Feature;
|
|
19
|
+
wkt: string;
|
|
20
|
+
createdAt: number;
|
|
21
|
+
}
|
|
22
|
+
/** DrawManager 配置 */
|
|
23
|
+
export interface DrawManagerOptions {
|
|
24
|
+
/** 绘制图层 ID */
|
|
25
|
+
sourceId?: string;
|
|
26
|
+
/** 绘制点样式 */
|
|
27
|
+
pointColor?: string;
|
|
28
|
+
/** 绘制线样式 */
|
|
29
|
+
lineColor?: string;
|
|
30
|
+
/** 绘制面样式 */
|
|
31
|
+
polygonColor?: string;
|
|
32
|
+
/** 选中高亮颜色 */
|
|
33
|
+
selectedColor?: string;
|
|
34
|
+
}
|
|
35
|
+
export default class DrawManager {
|
|
36
|
+
private map;
|
|
37
|
+
private options;
|
|
38
|
+
private sourceId;
|
|
39
|
+
private drawLayerId;
|
|
40
|
+
private drawLineLayerId;
|
|
41
|
+
private drawPointLayerId;
|
|
42
|
+
private vertexLayerId;
|
|
43
|
+
private featureCollection;
|
|
44
|
+
private features;
|
|
45
|
+
private drawType;
|
|
46
|
+
private drawCoordinates;
|
|
47
|
+
private isDrawing;
|
|
48
|
+
private selectedFeatureId;
|
|
49
|
+
private drawCallback;
|
|
50
|
+
private selectCallback;
|
|
51
|
+
private boundHandleMapClick;
|
|
52
|
+
private boundHandleMapMouseMove;
|
|
53
|
+
private boundHandleMapDoubleClick;
|
|
54
|
+
private boundHandleFeatureClick;
|
|
55
|
+
private boundHandleMapRightClick;
|
|
56
|
+
private tooltipElement;
|
|
57
|
+
constructor(map: any, options?: DrawManagerOptions);
|
|
58
|
+
private initDrawSource;
|
|
59
|
+
private setupDrawLayers;
|
|
60
|
+
private setupSelectLayer;
|
|
61
|
+
/**
|
|
62
|
+
* 开始绘制
|
|
63
|
+
* @param type 绘制类型:point | line | polygon
|
|
64
|
+
* @param callback 绘制完成回调
|
|
65
|
+
*/
|
|
66
|
+
startDraw(type: DrawType, callback?: DrawCallback): void;
|
|
67
|
+
/**
|
|
68
|
+
* 停止绘制
|
|
69
|
+
*/
|
|
70
|
+
stopDraw(): void;
|
|
71
|
+
/**
|
|
72
|
+
* 清除当前正在绘制的图形(不删除已保存的图形)
|
|
73
|
+
*/
|
|
74
|
+
clearDrawing(): void;
|
|
75
|
+
/**
|
|
76
|
+
* 获取所有已绘制的图形
|
|
77
|
+
*/
|
|
78
|
+
getAllFeatures(): DrawFeature[];
|
|
79
|
+
/**
|
|
80
|
+
* 获取所有图形的 GeoJSON FeatureCollection
|
|
81
|
+
*/
|
|
82
|
+
getGeoJSON(): GeoJSON.FeatureCollection;
|
|
83
|
+
/**
|
|
84
|
+
* 获取指定图形
|
|
85
|
+
*/
|
|
86
|
+
getFeature(id: string): DrawFeature | undefined;
|
|
87
|
+
/**
|
|
88
|
+
* 删除指定图形
|
|
89
|
+
*/
|
|
90
|
+
deleteFeature(id: string): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* 删除所有图形
|
|
93
|
+
*/
|
|
94
|
+
deleteAllFeatures(): void;
|
|
95
|
+
/**
|
|
96
|
+
* 获取图形数量
|
|
97
|
+
*/
|
|
98
|
+
getFeatureCount(): number;
|
|
99
|
+
/**
|
|
100
|
+
* 选中指定图形
|
|
101
|
+
*/
|
|
102
|
+
selectFeature(id: string): DrawFeature | null;
|
|
103
|
+
/**
|
|
104
|
+
* 清除选中
|
|
105
|
+
*/
|
|
106
|
+
clearSelection(): void;
|
|
107
|
+
/**
|
|
108
|
+
* 获取当前选中的图形
|
|
109
|
+
*/
|
|
110
|
+
getSelectedFeature(): DrawFeature | null;
|
|
111
|
+
/**
|
|
112
|
+
* 获取当前选中图形 ID
|
|
113
|
+
*/
|
|
114
|
+
getSelectedId(): string | null;
|
|
115
|
+
/**
|
|
116
|
+
* 判断是否有选中
|
|
117
|
+
*/
|
|
118
|
+
hasSelection(): boolean;
|
|
119
|
+
/**
|
|
120
|
+
* 是否正在绘制
|
|
121
|
+
*/
|
|
122
|
+
getIsDrawing(): boolean;
|
|
123
|
+
/**
|
|
124
|
+
* 获取当前绘制类型
|
|
125
|
+
*/
|
|
126
|
+
getDrawType(): DrawType | 'none';
|
|
127
|
+
/**
|
|
128
|
+
* 设置绘制完成回调
|
|
129
|
+
*/
|
|
130
|
+
onDraw(callback: DrawCallback): void;
|
|
131
|
+
/**
|
|
132
|
+
* 设置选中回调
|
|
133
|
+
*/
|
|
134
|
+
onSelect(callback: SelectCallback): void;
|
|
135
|
+
private bindDrawEvents;
|
|
136
|
+
private unbindDrawEvents;
|
|
137
|
+
private handleMapClick;
|
|
138
|
+
private handleMapMouseMove;
|
|
139
|
+
private handleMapDoubleClick;
|
|
140
|
+
private handleFeatureClick;
|
|
141
|
+
private handleMapRightClick;
|
|
142
|
+
private createTooltip;
|
|
143
|
+
private showTooltip;
|
|
144
|
+
private hideTooltip;
|
|
145
|
+
private updateTooltipPosition;
|
|
146
|
+
private removeTooltip;
|
|
147
|
+
private finishDraw;
|
|
148
|
+
private updateDrawFeature;
|
|
149
|
+
private updateDrawSource;
|
|
150
|
+
private updateFeatureProperty;
|
|
151
|
+
private removeDrawLayers;
|
|
152
|
+
destroy(): void;
|
|
153
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/** 测量类型 */
|
|
2
|
+
export type MeasureType = 'point' | 'line' | 'polygon' | 'none';
|
|
3
|
+
/** 测量结果 */
|
|
4
|
+
export interface MeasureResult {
|
|
5
|
+
id: string;
|
|
6
|
+
type: MeasureType;
|
|
7
|
+
geoJson: GeoJSON.Feature;
|
|
8
|
+
wkt: string;
|
|
9
|
+
value: string;
|
|
10
|
+
rawValue: number;
|
|
11
|
+
unit: string;
|
|
12
|
+
coordinates: number[][];
|
|
13
|
+
createdAt: number;
|
|
14
|
+
}
|
|
15
|
+
/** 坐标类型 */
|
|
16
|
+
export type CoordinateType = 'lnglat' | 'mercator';
|
|
17
|
+
/** 距离单位 */
|
|
18
|
+
export type DistanceUnit = 'meter' | 'kilometer';
|
|
19
|
+
/** 面积单位 */
|
|
20
|
+
export type AreaUnit = 'squareMeter' | 'squareKilometer' | 'mu';
|
|
21
|
+
/** 测量完成回调 */
|
|
22
|
+
export type MeasureCallback = (result: MeasureResult) => void;
|
|
23
|
+
/** MeasureManager 配置 */
|
|
24
|
+
export interface MeasureManagerOptions {
|
|
25
|
+
/** 测量图层 ID */
|
|
26
|
+
sourceId?: string;
|
|
27
|
+
/** 测量点样式颜色 */
|
|
28
|
+
pointColor?: string;
|
|
29
|
+
/** 测量线样式颜色 */
|
|
30
|
+
lineColor?: string;
|
|
31
|
+
/** 测量面样式颜色 */
|
|
32
|
+
polygonColor?: string;
|
|
33
|
+
/** 文字标签颜色 */
|
|
34
|
+
textColor?: string;
|
|
35
|
+
/** 坐标类型:经纬度或墨卡托投影 */
|
|
36
|
+
coordinateType?: CoordinateType;
|
|
37
|
+
/** 经纬度小数位数,默认6位 */
|
|
38
|
+
lnglatDecimal?: number;
|
|
39
|
+
/** 墨卡托投影小数位数,默认2位 */
|
|
40
|
+
mercatorDecimal?: number;
|
|
41
|
+
/** 距离单位,默认自动 */
|
|
42
|
+
distanceUnit?: DistanceUnit;
|
|
43
|
+
/** 面积单位,默认自动 */
|
|
44
|
+
areaUnit?: AreaUnit;
|
|
45
|
+
}
|
|
46
|
+
export default class MeasureManager {
|
|
47
|
+
private map;
|
|
48
|
+
private options;
|
|
49
|
+
private sourceId;
|
|
50
|
+
private measureLayerId;
|
|
51
|
+
private measureLineLayerId;
|
|
52
|
+
private measurePointLayerId;
|
|
53
|
+
private vertexLayerId;
|
|
54
|
+
private labelLayerId;
|
|
55
|
+
private featureCollection;
|
|
56
|
+
private results;
|
|
57
|
+
private measureType;
|
|
58
|
+
private measureCoordinates;
|
|
59
|
+
private isMeasuring;
|
|
60
|
+
private measureCallback;
|
|
61
|
+
private boundHandleMapClick;
|
|
62
|
+
private boundHandleMapMouseMove;
|
|
63
|
+
private boundHandleMapRightClick;
|
|
64
|
+
private tooltipElement;
|
|
65
|
+
constructor(map: any, options?: MeasureManagerOptions);
|
|
66
|
+
private initMeasureSource;
|
|
67
|
+
private setupMeasureLayers;
|
|
68
|
+
/**
|
|
69
|
+
* 开始测量
|
|
70
|
+
* @param type 测量类型:point | line | polygon
|
|
71
|
+
* @param callback 测量完成回调
|
|
72
|
+
*/
|
|
73
|
+
startMeasure(type: MeasureType, callback?: MeasureCallback): void;
|
|
74
|
+
/**
|
|
75
|
+
* 停止测量
|
|
76
|
+
*/
|
|
77
|
+
stopMeasure(): void;
|
|
78
|
+
/**
|
|
79
|
+
* 清除当前正在测量的图形
|
|
80
|
+
*/
|
|
81
|
+
clearMeasuring(): void;
|
|
82
|
+
/**
|
|
83
|
+
* 获取所有测量结果
|
|
84
|
+
*/
|
|
85
|
+
getAllResults(): MeasureResult[];
|
|
86
|
+
/**
|
|
87
|
+
* 获取指定测量结果
|
|
88
|
+
*/
|
|
89
|
+
getResult(id: string): MeasureResult | undefined;
|
|
90
|
+
/**
|
|
91
|
+
* 删除指定测量结果
|
|
92
|
+
*/
|
|
93
|
+
deleteResult(id: string): boolean;
|
|
94
|
+
/**
|
|
95
|
+
* 删除所有测量结果
|
|
96
|
+
*/
|
|
97
|
+
clearAllResults(): void;
|
|
98
|
+
/**
|
|
99
|
+
* 获取测量结果数量
|
|
100
|
+
*/
|
|
101
|
+
getResultCount(): number;
|
|
102
|
+
/**
|
|
103
|
+
* 是否正在测量
|
|
104
|
+
*/
|
|
105
|
+
getIsMeasuring(): boolean;
|
|
106
|
+
/**
|
|
107
|
+
* 获取当前测量类型
|
|
108
|
+
*/
|
|
109
|
+
getMeasureType(): MeasureType;
|
|
110
|
+
/**
|
|
111
|
+
* 更新配置
|
|
112
|
+
*/
|
|
113
|
+
updateOptions(options: Partial<MeasureManagerOptions>): void;
|
|
114
|
+
private bindMeasureEvents;
|
|
115
|
+
private unbindMeasureEvents;
|
|
116
|
+
private handleMapClick;
|
|
117
|
+
private handleMapMouseMove;
|
|
118
|
+
private handleMapRightClick;
|
|
119
|
+
private createTooltip;
|
|
120
|
+
private showTooltip;
|
|
121
|
+
private hideTooltip;
|
|
122
|
+
private removeTooltip;
|
|
123
|
+
private finishMeasure;
|
|
124
|
+
/**
|
|
125
|
+
* 计算线段距离(使用 Haversine 公式,单位:米)
|
|
126
|
+
*/
|
|
127
|
+
private calculateDistance;
|
|
128
|
+
/**
|
|
129
|
+
* Haversine 距离计算(单位:米)
|
|
130
|
+
*/
|
|
131
|
+
private haversineDistance;
|
|
132
|
+
private toRadians;
|
|
133
|
+
/**
|
|
134
|
+
* 将经纬度坐标转换为平面坐标(墨卡托投影)
|
|
135
|
+
* @param lng 经度
|
|
136
|
+
* @param lat 纬度
|
|
137
|
+
* @returns [x, y] 平面坐标(单位:米)
|
|
138
|
+
*/
|
|
139
|
+
private lonLatToMercator;
|
|
140
|
+
/**
|
|
141
|
+
* 格式化距离显示
|
|
142
|
+
*/
|
|
143
|
+
private formatDistance;
|
|
144
|
+
/**
|
|
145
|
+
* 计算多边形面积(使用 Shoelace 公式,单位:平方米)
|
|
146
|
+
*/
|
|
147
|
+
private calculateArea;
|
|
148
|
+
private lngToMeters;
|
|
149
|
+
private latToMeters;
|
|
150
|
+
/**
|
|
151
|
+
* 格式化面积显示
|
|
152
|
+
*/
|
|
153
|
+
private formatArea;
|
|
154
|
+
private updateMeasureFeature;
|
|
155
|
+
private updateMeasureSource;
|
|
156
|
+
private removeMeasureLayers;
|
|
157
|
+
destroy(): void;
|
|
158
|
+
}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { IEventBus, IStateStore, IContainer } from '../core';
|
|
2
|
+
import { CoreMapEvents } from '../core/event';
|
|
3
|
+
import { MapState } from '../core/state';
|
|
4
|
+
import { LayerService, MarkerService } from '../domain';
|
|
5
|
+
import { MapAdapter } from '../adapters/types';
|
|
6
|
+
import { default as TDTManager } from '../manager/TDTManager';
|
|
7
|
+
import { default as TerrainManager } from '../manager/TerrainManager';
|
|
8
|
+
import { default as PlaceholderManager } from '../manager/PlaceholderManager';
|
|
9
|
+
import { default as LayerManager } from '../manager/LayerManager';
|
|
10
|
+
import { default as RadarManager } from '../manager/RadarManager';
|
|
11
|
+
import { default as IconManager } from '../manager/IconManager';
|
|
12
|
+
import { default as TemplateManager } from '../manager/TemplateManager';
|
|
13
|
+
import { default as DrawManager } from '../manager/mapbox/DrawManager';
|
|
14
|
+
import { default as MeasureManager, MeasureManagerOptions } from '../manager/mapbox/MeasureManager';
|
|
15
|
+
/** 地图上下文配置 */
|
|
16
|
+
export interface MapContextConfig {
|
|
17
|
+
/** 地图适配器 */
|
|
18
|
+
adapter: MapAdapter;
|
|
19
|
+
/** 事件总线 */
|
|
20
|
+
eventBus: IEventBus<CoreMapEvents>;
|
|
21
|
+
/** 状态存储 */
|
|
22
|
+
stateStore: IStateStore<MapState>;
|
|
23
|
+
/** 依赖注入容器 */
|
|
24
|
+
container?: IContainer;
|
|
25
|
+
/** 天地图 Token */
|
|
26
|
+
tdtToken?: string;
|
|
27
|
+
/** 初始化图标配置 */
|
|
28
|
+
initIcons?: Array<{
|
|
29
|
+
name: string;
|
|
30
|
+
url: string;
|
|
31
|
+
}>;
|
|
32
|
+
/** 测量管理器配置 */
|
|
33
|
+
measureOptions?: MeasureManagerOptions;
|
|
34
|
+
}
|
|
35
|
+
/** 地图上下文
|
|
36
|
+
* 协调地图所有子系统,提供对地图能力的统一访问入口
|
|
37
|
+
*/
|
|
38
|
+
export declare class MapContext {
|
|
39
|
+
readonly adapter: MapAdapter;
|
|
40
|
+
readonly events: IEventBus<CoreMapEvents>;
|
|
41
|
+
readonly state: IStateStore<MapState>;
|
|
42
|
+
readonly container?: IContainer;
|
|
43
|
+
readonly tdtToken?: string;
|
|
44
|
+
readonly initIcons?: Array<{
|
|
45
|
+
name: string;
|
|
46
|
+
url: string;
|
|
47
|
+
}>;
|
|
48
|
+
readonly measureOptions?: MeasureManagerOptions;
|
|
49
|
+
private _layerService?;
|
|
50
|
+
private _markerService?;
|
|
51
|
+
private _tdtManager?;
|
|
52
|
+
private _terrainManager?;
|
|
53
|
+
private _placeholderManager?;
|
|
54
|
+
private _layerManager?;
|
|
55
|
+
private _radarManager?;
|
|
56
|
+
private _iconManager?;
|
|
57
|
+
private _templateManager?;
|
|
58
|
+
private _drawManager?;
|
|
59
|
+
private _measureManager?;
|
|
60
|
+
constructor(config: MapContextConfig);
|
|
61
|
+
/**
|
|
62
|
+
* 图层服务
|
|
63
|
+
*/
|
|
64
|
+
get layers(): LayerService;
|
|
65
|
+
/**
|
|
66
|
+
* 标记服务
|
|
67
|
+
*/
|
|
68
|
+
get markers(): MarkerService;
|
|
69
|
+
/**
|
|
70
|
+
* 获取天地图管理器
|
|
71
|
+
*/
|
|
72
|
+
get tdtManager(): TDTManager | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* 获取地形管理器
|
|
75
|
+
*/
|
|
76
|
+
get terrainManager(): TerrainManager | undefined;
|
|
77
|
+
/**
|
|
78
|
+
* 获取雷达管理器
|
|
79
|
+
*/
|
|
80
|
+
get radarManager(): RadarManager | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* 获取图标管理器
|
|
83
|
+
*/
|
|
84
|
+
get iconManager(): IconManager | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* 获取占位符管理器
|
|
87
|
+
*/
|
|
88
|
+
get placeholderManager(): PlaceholderManager | undefined;
|
|
89
|
+
/**
|
|
90
|
+
* 获取绘制管理器
|
|
91
|
+
*/
|
|
92
|
+
get drawManager(): DrawManager | undefined;
|
|
93
|
+
/**
|
|
94
|
+
* 获取测量管理器
|
|
95
|
+
*/
|
|
96
|
+
get measureManager(): MeasureManager | undefined;
|
|
97
|
+
/**
|
|
98
|
+
* 获取图层管理器
|
|
99
|
+
*/
|
|
100
|
+
get layerManager(): LayerManager | undefined;
|
|
101
|
+
/**
|
|
102
|
+
* 获取模板管理器
|
|
103
|
+
*/
|
|
104
|
+
get templateManager(): TemplateManager | undefined;
|
|
105
|
+
/**
|
|
106
|
+
* 初始化上下文
|
|
107
|
+
*/
|
|
108
|
+
initialize(services: {
|
|
109
|
+
layerService: LayerService;
|
|
110
|
+
markerService: MarkerService;
|
|
111
|
+
}): void;
|
|
112
|
+
/**
|
|
113
|
+
* 加载初始化图标
|
|
114
|
+
*/
|
|
115
|
+
private loadInitIcons;
|
|
116
|
+
/**
|
|
117
|
+
* 初始化管理器
|
|
118
|
+
*/
|
|
119
|
+
private initManagers;
|
|
120
|
+
/**
|
|
121
|
+
* 初始化矢量瓦片相关的管理器
|
|
122
|
+
* 包括:占位符管理器、天地图管理器、地形管理器
|
|
123
|
+
*/
|
|
124
|
+
private initMapboxGLManagers;
|
|
125
|
+
/**
|
|
126
|
+
* 销毁上下文
|
|
127
|
+
*/
|
|
128
|
+
dispose(): void;
|
|
129
|
+
/**
|
|
130
|
+
* 获取地图实例
|
|
131
|
+
*/
|
|
132
|
+
getMap(): any;
|
|
133
|
+
/**
|
|
134
|
+
* 设置视图
|
|
135
|
+
*/
|
|
136
|
+
setView(center: [number, number], zoom: number, options?: {
|
|
137
|
+
bearing?: number;
|
|
138
|
+
pitch?: number;
|
|
139
|
+
animate?: boolean;
|
|
140
|
+
}): void;
|
|
141
|
+
/**
|
|
142
|
+
* 飞转到位置
|
|
143
|
+
*/
|
|
144
|
+
flyTo(center: [number, number], options?: {
|
|
145
|
+
zoom?: number;
|
|
146
|
+
duration?: number;
|
|
147
|
+
}): void;
|
|
148
|
+
/**
|
|
149
|
+
* 适应边界
|
|
150
|
+
*/
|
|
151
|
+
fitBounds(bounds: [[number, number], [number, number]], options?: {
|
|
152
|
+
padding?: number;
|
|
153
|
+
}): void;
|
|
154
|
+
/**
|
|
155
|
+
* 获取当前视图状态
|
|
156
|
+
*/
|
|
157
|
+
getViewState(): import('../core').ViewState;
|
|
158
|
+
/**
|
|
159
|
+
* 获取地图是否就绪
|
|
160
|
+
*/
|
|
161
|
+
get isReady(): boolean;
|
|
162
|
+
/**
|
|
163
|
+
* 订阅事件
|
|
164
|
+
*/
|
|
165
|
+
on<K extends keyof CoreMapEvents>(event: K, handler: (payload: CoreMapEvents[K]) => void): () => void;
|
|
166
|
+
/**
|
|
167
|
+
* 订阅一次性事件
|
|
168
|
+
*/
|
|
169
|
+
once<K extends keyof CoreMapEvents>(event: K, handler: (payload: CoreMapEvents[K]) => void): () => void;
|
|
170
|
+
private bindMapEvents;
|
|
171
|
+
}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GIS 地图事件系统类型定义
|
|
3
|
+
*/
|
|
4
|
+
export type EventCallback<T = any> = (data: T) => void;
|
|
5
|
+
export type GISMapEventName = 'map:load' | 'map:error' | 'map:ready' | 'map:destroy' | 'view:change' | 'view:move' | 'view:zoom' | 'view:rotate' | 'view:pitch' | 'layer:add' | 'layer:remove' | 'layer:show' | 'layer:hide' | 'layer:click' | 'layer:hover' | 'layer:toggle' | 'marker:add' | 'marker:remove' | 'marker:click' | 'marker:dragstart' | 'marker:dragend' | 'popup:show' | 'popup:hide' | 'popup:close' | 'popup:open' | 'draw:start' | 'draw:end' | 'draw:cancel' | 'select:start' | 'select:end' | 'select:clear' | 'measure:start' | 'measure:end' | string;
|
|
6
|
+
export interface MapLoadEvent {
|
|
7
|
+
map: any;
|
|
8
|
+
}
|
|
9
|
+
export interface MapErrorEvent {
|
|
10
|
+
error: Error;
|
|
11
|
+
source?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface ViewChangeEvent {
|
|
14
|
+
center: [number, number];
|
|
15
|
+
zoom: number;
|
|
16
|
+
pitch: number;
|
|
17
|
+
bearing: number;
|
|
18
|
+
animate: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface LayerEvent {
|
|
21
|
+
layerId: string;
|
|
22
|
+
layer?: any;
|
|
23
|
+
}
|
|
24
|
+
export interface LayerAddEvent extends LayerEvent {
|
|
25
|
+
layer: any;
|
|
26
|
+
}
|
|
27
|
+
export interface LayerRemoveEvent extends LayerEvent {
|
|
28
|
+
}
|
|
29
|
+
export interface LayerClickEvent extends LayerEvent {
|
|
30
|
+
feature: any;
|
|
31
|
+
coordinates: [number, number];
|
|
32
|
+
point: [number, number];
|
|
33
|
+
originalEvent: MouseEvent;
|
|
34
|
+
}
|
|
35
|
+
export interface LayerHoverEvent extends LayerEvent {
|
|
36
|
+
feature: any | null;
|
|
37
|
+
coordinates: [number, number] | null;
|
|
38
|
+
}
|
|
39
|
+
export interface LayerToggleEvent extends LayerEvent {
|
|
40
|
+
checked: boolean;
|
|
41
|
+
}
|
|
42
|
+
export interface MarkerEvent {
|
|
43
|
+
markerId: string;
|
|
44
|
+
marker?: any;
|
|
45
|
+
}
|
|
46
|
+
export interface MarkerAddEvent extends MarkerEvent {
|
|
47
|
+
marker: any;
|
|
48
|
+
}
|
|
49
|
+
export interface MarkerRemoveEvent extends MarkerEvent {
|
|
50
|
+
}
|
|
51
|
+
export interface MarkerClickEvent extends MarkerEvent {
|
|
52
|
+
position: [number, number];
|
|
53
|
+
originalEvent: MouseEvent;
|
|
54
|
+
}
|
|
55
|
+
export interface PopupEvent {
|
|
56
|
+
popupId?: string;
|
|
57
|
+
popup?: any;
|
|
58
|
+
}
|
|
59
|
+
export interface PopupShowEvent extends PopupEvent {
|
|
60
|
+
position: [number, number];
|
|
61
|
+
content?: string;
|
|
62
|
+
}
|
|
63
|
+
export interface PopupHideEvent extends PopupEvent {
|
|
64
|
+
}
|
|
65
|
+
export interface FeatureSelectEvent {
|
|
66
|
+
features: any[];
|
|
67
|
+
selected: boolean;
|
|
68
|
+
}
|
|
69
|
+
export interface DrawEvent {
|
|
70
|
+
feature: any;
|
|
71
|
+
mode: string;
|
|
72
|
+
}
|
|
73
|
+
export interface MeasureEvent {
|
|
74
|
+
value: number;
|
|
75
|
+
unit: string;
|
|
76
|
+
points: [number, number][];
|
|
77
|
+
}
|
|
78
|
+
export interface IEventSystem {
|
|
79
|
+
/**
|
|
80
|
+
* 订阅事件
|
|
81
|
+
*/
|
|
82
|
+
on<K extends GISMapEventName>(event: K, callback: EventCallback<GISMapEventData[K]>): () => void;
|
|
83
|
+
/**
|
|
84
|
+
* 订阅事件(仅触发一次)
|
|
85
|
+
*/
|
|
86
|
+
once<K extends GISMapEventName>(event: K, callback: EventCallback<GISMapEventData[K]>): () => void;
|
|
87
|
+
/**
|
|
88
|
+
* 取消订阅
|
|
89
|
+
*/
|
|
90
|
+
off(event: GISMapEventName, callback?: EventCallback): void;
|
|
91
|
+
/**
|
|
92
|
+
* 发射事件
|
|
93
|
+
*/
|
|
94
|
+
emit<K extends GISMapEventName>(event: K, data?: GISMapEventData[K]): void;
|
|
95
|
+
/**
|
|
96
|
+
* 订阅命名空间下的所有事件
|
|
97
|
+
*/
|
|
98
|
+
onNamespace(namespace: string, callback: EventCallback): () => void;
|
|
99
|
+
/**
|
|
100
|
+
* 获取事件历史
|
|
101
|
+
*/
|
|
102
|
+
getHistory(): EventHistoryItem[];
|
|
103
|
+
/**
|
|
104
|
+
* 清空事件历史
|
|
105
|
+
*/
|
|
106
|
+
clearHistory(): void;
|
|
107
|
+
/**
|
|
108
|
+
* 获取订阅者数量
|
|
109
|
+
*/
|
|
110
|
+
listenerCount(event: GISMapEventName): number;
|
|
111
|
+
}
|
|
112
|
+
export interface GISMapEventData {
|
|
113
|
+
'map:load': MapLoadEvent;
|
|
114
|
+
'map:error': MapErrorEvent;
|
|
115
|
+
'map:ready': {
|
|
116
|
+
map: any;
|
|
117
|
+
};
|
|
118
|
+
'map:destroy': void;
|
|
119
|
+
'view:change': ViewChangeEvent;
|
|
120
|
+
'view:move': ViewChangeEvent;
|
|
121
|
+
'view:zoom': ViewChangeEvent;
|
|
122
|
+
'view:rotate': ViewChangeEvent;
|
|
123
|
+
'view:pitch': ViewChangeEvent;
|
|
124
|
+
'layer:add': LayerAddEvent;
|
|
125
|
+
'layer:remove': LayerRemoveEvent;
|
|
126
|
+
'layer:show': LayerEvent;
|
|
127
|
+
'layer:hide': LayerEvent;
|
|
128
|
+
'layer:click': LayerClickEvent;
|
|
129
|
+
'layer:hover': LayerHoverEvent;
|
|
130
|
+
'layer:toggle': LayerToggleEvent;
|
|
131
|
+
'marker:add': MarkerAddEvent;
|
|
132
|
+
'marker:remove': MarkerRemoveEvent;
|
|
133
|
+
'marker:click': MarkerClickEvent;
|
|
134
|
+
'marker:dragstart': MarkerEvent;
|
|
135
|
+
'marker:dragend': MarkerEvent;
|
|
136
|
+
'popup:show': PopupShowEvent;
|
|
137
|
+
'popup:hide': PopupHideEvent;
|
|
138
|
+
'popup:close': PopupEvent;
|
|
139
|
+
'popup:open': PopupShowEvent;
|
|
140
|
+
'draw:start': {
|
|
141
|
+
mode: string;
|
|
142
|
+
};
|
|
143
|
+
'draw:end': DrawEvent;
|
|
144
|
+
'draw:cancel': {
|
|
145
|
+
mode: string;
|
|
146
|
+
};
|
|
147
|
+
'select:start': void;
|
|
148
|
+
'select:end': FeatureSelectEvent;
|
|
149
|
+
'select:clear': void;
|
|
150
|
+
'measure:start': {
|
|
151
|
+
mode: string;
|
|
152
|
+
};
|
|
153
|
+
'measure:end': MeasureEvent;
|
|
154
|
+
}
|
|
155
|
+
export interface EventHistoryItem {
|
|
156
|
+
event: string;
|
|
157
|
+
data: any;
|
|
158
|
+
timestamp: number;
|
|
159
|
+
}
|
|
160
|
+
export interface SearchResult {
|
|
161
|
+
uuid: string;
|
|
162
|
+
properties: any;
|
|
163
|
+
geometry: any;
|
|
164
|
+
index: number;
|
|
165
|
+
templateId: string;
|
|
166
|
+
}
|
|
167
|
+
export interface SearchOptions {
|
|
168
|
+
limit?: number;
|
|
169
|
+
type?: string;
|
|
170
|
+
[key: string]: any;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* 创建空的事件数据映射(用于扩展)
|
|
174
|
+
* 使用此类型可以在不修改原始类型的情况下添加自定义事件
|
|
175
|
+
*/
|
|
176
|
+
export type ExtendedEventData<T extends string, D> = {
|
|
177
|
+
[K in T]: D;
|
|
178
|
+
};
|