@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.
Files changed (109) hide show
  1. package/dist/App.vue.d.ts +2 -0
  2. package/dist/adapters/index.d.ts +13 -0
  3. package/dist/adapters/mapbox/MapboxAdapter.d.ts +44 -0
  4. package/dist/adapters/types.d.ts +216 -0
  5. package/dist/api/BaseController.d.ts +6 -0
  6. package/dist/api/CommonController.d.ts +51 -0
  7. package/dist/components/MapCompass/index.vue.d.ts +2 -0
  8. package/dist/components/MapContainer/index.d.ts +2 -0
  9. package/dist/components/MapContainer/index.vue.d.ts +344 -0
  10. package/dist/components/MapLayer/components/CustomLayerDialog.vue.d.ts +22 -0
  11. package/dist/components/MapLayer/components/LayerTab.vue.d.ts +2179 -0
  12. package/dist/components/MapLayer/index.d.ts +2 -0
  13. package/dist/components/MapLayer/index.vue.d.ts +2287 -0
  14. package/dist/components/MapLegend/index.d.ts +2 -0
  15. package/dist/components/MapLegend/index.vue.d.ts +14 -0
  16. package/dist/components/MapMeasure/index.vue.d.ts +2 -0
  17. package/dist/components/MapPrint/MapPrintPanel.vue.d.ts +21 -0
  18. package/dist/components/MapPrint/MapPrintService.d.ts +155 -0
  19. package/dist/components/MapPrint/index.vue.d.ts +37 -0
  20. package/dist/components/MapQueryResult/index.vue.d.ts +29 -0
  21. package/dist/components/MapQueryResult/popup.vue.d.ts +16 -0
  22. package/dist/components/MapSearch/index.d.ts +2 -0
  23. package/dist/components/MapSearch/index.vue.d.ts +56 -0
  24. package/dist/components/MapSwitch/index.d.ts +2 -0
  25. package/dist/components/MapSwitch/index.vue.d.ts +37 -0
  26. package/dist/components/MapTools/index.d.ts +2 -0
  27. package/dist/components/MapTools/index.vue.d.ts +40 -0
  28. package/dist/components/MobileMapLayer/BaseLayerSwitch.vue.d.ts +16 -0
  29. package/dist/components/MobileMapLayer/index.vue.d.ts +9 -0
  30. package/dist/components/Widgets/PopupBar/BarItem.vue.d.ts +75 -0
  31. package/dist/components/Widgets/PopupBar/index.vue.d.ts +21 -0
  32. package/dist/composables/index.d.ts +13 -0
  33. package/dist/composables/useControl.d.ts +39 -0
  34. package/dist/composables/useDraw.d.ts +49 -0
  35. package/dist/composables/useLayer.d.ts +57 -0
  36. package/dist/composables/useMap.d.ts +111 -0
  37. package/dist/composables/useMarker.d.ts +55 -0
  38. package/dist/composables/useMeasure.d.ts +49 -0
  39. package/dist/composables/useSearch.d.ts +20 -0
  40. package/dist/config/api.config.d.ts +40 -0
  41. package/dist/config/gismap.config.d.ts +156 -0
  42. package/dist/core/ManagerRegistry.d.ts +75 -0
  43. package/dist/core/PluginSystem.d.ts +71 -0
  44. package/dist/core/StateStore.d.ts +96 -0
  45. package/dist/core/TypedEventEmitter.d.ts +67 -0
  46. package/dist/core/di/Container.d.ts +61 -0
  47. package/dist/core/di/decorators.d.ts +32 -0
  48. package/dist/core/di/index.d.ts +7 -0
  49. package/dist/core/di/types.d.ts +59 -0
  50. package/dist/core/event/EventBus.d.ts +101 -0
  51. package/dist/core/event/index.d.ts +5 -0
  52. package/dist/core/event/types.d.ts +215 -0
  53. package/dist/core/index.d.ts +6 -0
  54. package/dist/core/state/Store.d.ts +145 -0
  55. package/dist/core/state/index.d.ts +6 -0
  56. package/dist/core/state/types.d.ts +134 -0
  57. package/dist/domain/index.d.ts +8 -0
  58. package/dist/domain/layer/LayerEntity.d.ts +90 -0
  59. package/dist/domain/layer/LayerService.d.ts +128 -0
  60. package/dist/domain/marker/MarkerEntity.d.ts +77 -0
  61. package/dist/domain/marker/MarkerService.d.ts +105 -0
  62. package/dist/domain/types.d.ts +66 -0
  63. package/dist/examples/DrawDemo.vue.d.ts +2 -0
  64. package/dist/examples/DrawPanel.vue.d.ts +2 -0
  65. package/dist/examples/Map.vue.d.ts +74 -0
  66. package/dist/examples/MapDemoExample.vue.d.ts +2 -0
  67. package/dist/examples/MeasureDemo.vue.d.ts +2 -0
  68. package/dist/examples/MeasurePanel.vue.d.ts +2 -0
  69. package/dist/examples/SplitScreenDrawDemo.vue.d.ts +7 -0
  70. package/dist/examples/SplitScreenDrawPanel.vue.d.ts +12 -0
  71. package/dist/examples/SplitScreenPanel.vue.d.ts +12 -0
  72. package/dist/examples/TdtControlPanel.vue.d.ts +2 -0
  73. package/dist/examples/TiandituDemo.vue.d.ts +2 -0
  74. package/dist/gismap.css +1 -1
  75. package/dist/index.es.js +1 -1
  76. package/dist/main.d.ts +0 -0
  77. package/dist/manager/IconManager.d.ts +18 -0
  78. package/dist/manager/LayerManager.d.ts +50 -0
  79. package/dist/manager/MaskManager.d.ts +52 -0
  80. package/dist/manager/PlaceholderManager.d.ts +28 -0
  81. package/dist/manager/PopupManager.d.ts +13 -0
  82. package/dist/manager/QuickSearchManager.d.ts +24 -0
  83. package/dist/manager/RadarManager.d.ts +46 -0
  84. package/dist/manager/SplitScreenDrawManager.d.ts +75 -0
  85. package/dist/manager/SplitScreenManager.d.ts +81 -0
  86. package/dist/manager/TDTManager.d.ts +33 -0
  87. package/dist/manager/TemplateManager.d.ts +52 -0
  88. package/dist/manager/TerrainManager.d.ts +39 -0
  89. package/dist/manager/layer/MarkerLayer.d.ts +89 -0
  90. package/dist/manager/layer/VectorLayer.d.ts +30 -0
  91. package/dist/manager/mapbox/DrawManager.d.ts +153 -0
  92. package/dist/manager/mapbox/MeasureManager.d.ts +158 -0
  93. package/dist/router/index.d.ts +2 -0
  94. package/dist/services/MapContext.d.ts +171 -0
  95. package/dist/services/index.d.ts +5 -0
  96. package/dist/types/IEvents.d.ts +178 -0
  97. package/dist/types/IGISMap.d.ts +234 -0
  98. package/dist/types/IManager.d.ts +113 -0
  99. package/dist/types/IMapSearch.d.ts +28 -0
  100. package/dist/types/IState.d.ts +259 -0
  101. package/dist/types/ITemplate.d.ts +35 -0
  102. package/dist/types/index.d.ts +7 -0
  103. package/dist/utils/hooks/layout.d.ts +4 -0
  104. package/dist/utils/http/axios.d.ts +3 -0
  105. package/dist/utils/http/config.d.ts +3 -0
  106. package/dist/utils/http/request.d.ts +46 -0
  107. package/dist/utils/index.d.ts +49 -0
  108. package/package.json +1 -1
  109. package/dist/index.umd.js +0 -1
package/dist/main.d.ts ADDED
File without changes
@@ -0,0 +1,18 @@
1
+ import { VectorTileAdapter } from '../adapters/types';
2
+ /** 图标配置 */
3
+ export interface IconConfig {
4
+ /** 图标 ID(对应 layout.icon-image) */
5
+ name: string;
6
+ /** 图标图片 URL */
7
+ url: string;
8
+ }
9
+ export default class IconManager {
10
+ private adapter;
11
+ constructor(adapter: VectorTileAdapter);
12
+ /**
13
+ * 批量加载图标
14
+ * @param icons 图标配置数组
15
+ */
16
+ load(icons: IconConfig[]): Promise<void>;
17
+ private _loadImage;
18
+ }
@@ -0,0 +1,50 @@
1
+ import { VectorTileAdapter } from '../adapters/types';
2
+ import { BaseManager } from '../types/IManager';
3
+ import { IEventBus, CoreMapEvents } from '../core/event';
4
+ /**
5
+ * 图层管理器
6
+ * 管理地图图层的添加、移除和查询
7
+ */
8
+ export default class LayerManager extends BaseManager {
9
+ private adapter;
10
+ private eventBus?;
11
+ private checkedParentLayers;
12
+ private checkedLayers;
13
+ queryLayerIds: string[];
14
+ private symbolLayerIds;
15
+ private pointLayerIds;
16
+ private lineLayerIds;
17
+ private polygonLayerIds;
18
+ constructor(adapter: VectorTileAdapter, eventBus?: IEventBus<CoreMapEvents>);
19
+ /**
20
+ * 初始化管理器
21
+ */
22
+ protected onInitialize(): void;
23
+ /**
24
+ * 销毁管理器
25
+ */
26
+ protected onDispose(): void;
27
+ /**
28
+ * 启用管理器
29
+ */
30
+ protected onEnable(): void;
31
+ /**
32
+ * 禁用管理器
33
+ */
34
+ protected onDisable(): void;
35
+ /**
36
+ * 重置管理器状态
37
+ */
38
+ protected onReset(): void;
39
+ /**
40
+ * 清理所有图层
41
+ */
42
+ private clearAllLayers;
43
+ addSource(source: any): void;
44
+ addLayer(layerConfig: any, beforeLayerId?: string): this;
45
+ addGroupLayer(layer: any): void;
46
+ removeLayer(layer: any): void;
47
+ removeGroupLayer(layer: any): void;
48
+ getCheckedLayers(): any[];
49
+ getLayer(id: string): any;
50
+ }
@@ -0,0 +1,52 @@
1
+ import { VectorTileAdapter } from '../adapters/types';
2
+ /**
3
+ * 遮罩管理器配置
4
+ */
5
+ export interface MaskOptions {
6
+ /** 遮罩图层ID */
7
+ layerId?: string;
8
+ /** 数据源URL或GeoJSON数据 */
9
+ data: string | any;
10
+ /** 样式配置 */
11
+ style?: any;
12
+ /** 插入到指定图层之前 */
13
+ beforeId?: string;
14
+ }
15
+ export default class MaskManager {
16
+ private adapter;
17
+ private layerId;
18
+ private lineLayerId;
19
+ constructor(adapter: VectorTileAdapter, layerId?: string);
20
+ /**
21
+ * 添加遮罩图层
22
+ * @param options 遮罩配置
23
+ */
24
+ add(options: MaskOptions): this;
25
+ /**
26
+ * 添加遮罩边界线
27
+ * @param style 样式配置
28
+ */
29
+ addLine(style?: any): void;
30
+ /**
31
+ * 移除遮罩
32
+ */
33
+ remove(): void;
34
+ /**
35
+ * 更新遮罩数据
36
+ * @param data 新的GeoJSON数据
37
+ */
38
+ updateData(data: any): void;
39
+ /**
40
+ * 设置遮罩可见性
41
+ * @param visible 是否可见
42
+ */
43
+ setVisible(visible: boolean): void;
44
+ /**
45
+ * 获取遮罩图层ID
46
+ */
47
+ getLayerId(): string;
48
+ /**
49
+ * 获取遮罩边界线图层ID
50
+ */
51
+ getLineLayerId(): string;
52
+ }
@@ -0,0 +1,28 @@
1
+ import { VectorTileAdapter } from '../adapters/types';
2
+ /** 占位符图层 ID 常量(供外部引用) */
3
+ export default class PlaceholderManager {
4
+ /** 符号图层(Symbol)占位符 ID */
5
+ static readonly symbolPointId = "gismap_placeholder_symbol_point";
6
+ /** 点图层(Circle)占位符 ID */
7
+ static readonly layerPointId = "gismap_placeholder_layer_point";
8
+ /** 线图层(Line)占位符 ID */
9
+ static readonly layerLineId = "gismap_placeholder_layer_line";
10
+ /** 面图层(Fill)占位符 ID */
11
+ static readonly layerPolygonId = "gismap_placeholder_layer_polygon";
12
+ /** 遮罩图层(Mask)占位符 ID */
13
+ static readonly maskLayerId = "gismap_placeholder_mask_layer";
14
+ private adapter;
15
+ /** 占位符专用空 GeoJSON Source ID */
16
+ private readonly sourceId;
17
+ constructor(adapter: VectorTileAdapter);
18
+ /**
19
+ * 初始化所有占位符图层(点、线、面、符号、遮罩)。
20
+ * 应在地图加载完成后、业务图层添加之前调用一次。
21
+ */
22
+ addLayer(options?: {
23
+ beforeLayerPointId?: string;
24
+ beforeLayerLineId?: string;
25
+ beforeLayerFillId?: string;
26
+ beforeMaskLayerId?: string;
27
+ }): void;
28
+ }
@@ -0,0 +1,13 @@
1
+ export default class PopupManager {
2
+ private map;
3
+ private popups;
4
+ constructor(map: any);
5
+ show(options: {
6
+ position: [number, number];
7
+ offset?: [number, number];
8
+ html: string;
9
+ flyTo?: boolean;
10
+ }): string;
11
+ hide(id: string): void;
12
+ clear(): void;
13
+ }
@@ -0,0 +1,24 @@
1
+ export default class QuickSearchManager {
2
+ private map;
3
+ private markers;
4
+ private selectMarker;
5
+ private popup;
6
+ private callback;
7
+ private templateManager;
8
+ private popupManager;
9
+ constructor(map: any);
10
+ addFunction(callback: any): void;
11
+ add(options: {
12
+ uuid: string;
13
+ templateId: string;
14
+ geometry: any;
15
+ index: number;
16
+ properties: any;
17
+ }): void;
18
+ addGroup(options: {
19
+ data: any[];
20
+ }): void;
21
+ flyTo(uuid: string): void;
22
+ addPopup(): void;
23
+ clear(): void;
24
+ }
@@ -0,0 +1,46 @@
1
+ import { VectorTileAdapter } from '../adapters/types';
2
+ /**
3
+ * 雷达配置选项
4
+ */
5
+ export interface RadarOptions {
6
+ /** 雷达中心点 [lng, lat] */
7
+ center: [number, number];
8
+ /** 雷达半径(米),默认 100 */
9
+ radius?: number;
10
+ /** 扫描一圈时间(毫秒),默认 3000 */
11
+ period?: number;
12
+ /** 背景颜色,默认 "rgba(255,0,0,0.1)" */
13
+ backgroundColor?: string;
14
+ /** 边框颜色,默认 "rgba(255,0,0,0.8)" */
15
+ borderColor?: string;
16
+ /** 边框宽度,默认 2 */
17
+ borderWidth?: number;
18
+ /** 扇形是否可见,默认 false */
19
+ sectorVisible?: boolean;
20
+ /** 扫描扇形角度(度),默认 30 */
21
+ sectorAngle?: number;
22
+ /** 扇形颜色,默认 "rgba(0,255,0,0.4)" */
23
+ sectorColor?: string;
24
+ /** 扇形边框颜色,默认 "rgba(0,0,255,0.8)" */
25
+ sectorBorderColor?: string;
26
+ }
27
+ export default class RadarManager {
28
+ private adapter?;
29
+ private id;
30
+ private radius;
31
+ private period;
32
+ private backgroundColor;
33
+ private borderColor;
34
+ private borderWidth;
35
+ private sectorVisible;
36
+ private sectorAngle;
37
+ private sectorColor;
38
+ private sectorBorderColor;
39
+ private center;
40
+ private animationId;
41
+ constructor(adapter?: VectorTileAdapter);
42
+ add(options: RadarOptions): this;
43
+ startScan(): this;
44
+ stopScan(): this;
45
+ remove(): void;
46
+ }
@@ -0,0 +1,75 @@
1
+ import { MapContext } from '../services/MapContext';
2
+ /**
3
+ * 拉框对比管理器
4
+ * 用于实现两个叠在一起的地图通过拖动分割线进行对比的功能
5
+ */
6
+ export declare class SplitScreenDrawManager {
7
+ private leftMapContext;
8
+ private rightMapContext;
9
+ private isDragging;
10
+ private dividerElement;
11
+ private containerElement;
12
+ private direction;
13
+ private initialPosition;
14
+ private initialMousePosition;
15
+ /**
16
+ * 初始化拉框对比管理器
17
+ * @param leftMapContext 左侧地图上下文
18
+ * @param rightMapContext 右侧地图上下文
19
+ * @param containerElement 容器元素
20
+ * @param dividerElement 分割线元素
21
+ */
22
+ initialize(leftMapContext: MapContext, rightMapContext: MapContext, containerElement: HTMLElement, dividerElement: HTMLElement): void;
23
+ /**
24
+ * 设置事件监听器
25
+ */
26
+ private setupEventListeners;
27
+ /**
28
+ * 处理分割线鼠标按下事件
29
+ * @param event 鼠标事件
30
+ */
31
+ private handleDividerMouseDown;
32
+ /**
33
+ * 处理文档鼠标移动事件
34
+ * @param event 鼠标事件
35
+ */
36
+ private handleDocumentMouseMove;
37
+ /**
38
+ * 处理文档鼠标释放事件
39
+ * @param event 鼠标事件
40
+ */
41
+ private handleDocumentMouseUp;
42
+ /**
43
+ * 更新分割线位置
44
+ * @param position 新位置
45
+ */
46
+ private updateDividerPosition;
47
+ /**
48
+ * 更新地图显示范围
49
+ * @param position 分割线位置
50
+ */
51
+ private updateMapVisibility;
52
+ /**
53
+ * 设置地图同步
54
+ */
55
+ private setupMapSync;
56
+ /**
57
+ * 同步地图视图
58
+ * @param sourceMap 源地图
59
+ * @param targetMap 目标地图
60
+ */
61
+ private syncMapView;
62
+ /**
63
+ * 设置分割方向
64
+ * @param newDirection 新的分割方向
65
+ */
66
+ setDirection(newDirection: 'horizontal' | 'vertical'): void;
67
+ /**
68
+ * 重置分割线位置到中心
69
+ */
70
+ resetDividerPosition(): void;
71
+ /**
72
+ * 销毁拉框对比管理器
73
+ */
74
+ destroy(): void;
75
+ }
@@ -0,0 +1,81 @@
1
+ /**
2
+ * 双屏对比管理器
3
+ * 用于实现地图的双屏对比功能 - 天地图版本
4
+ */
5
+ export interface SplitScreenOptions {
6
+ /** 分割方向:horizontal 或 vertical */
7
+ direction?: 'horizontal' | 'vertical';
8
+ /** 分割比例:0-1之间的值,表示左侧/上侧占比 */
9
+ ratio?: number;
10
+ /** 天地图 Token */
11
+ tdtToken?: string;
12
+ }
13
+ export default class SplitScreenManager {
14
+ private map;
15
+ private options;
16
+ private isActive;
17
+ private splitElement;
18
+ private leftMapContainer;
19
+ private rightMapContainer;
20
+ private leftMap;
21
+ private rightMap;
22
+ constructor(map: any, options?: SplitScreenOptions);
23
+ /**
24
+ * 开启双屏对比
25
+ */
26
+ startSplitScreen(): void;
27
+ /**
28
+ * 关闭双屏对比
29
+ */
30
+ stopSplitScreen(): void;
31
+ /**
32
+ * 更新分割比例
33
+ * @param ratio 分割比例:0-1之间的值
34
+ */
35
+ updateRatio(ratio: number): void;
36
+ /**
37
+ * 更新分割方向
38
+ * @param direction 分割方向:horizontal 或 vertical
39
+ */
40
+ updateDirection(direction: 'horizontal' | 'vertical'): void;
41
+ /**
42
+ * 获取当前状态
43
+ */
44
+ getIsActive(): boolean;
45
+ /**
46
+ * 创建分割容器
47
+ */
48
+ private createSplitContainer;
49
+ /**
50
+ * 创建左侧地图(矢量地图)
51
+ */
52
+ private createLeftMap;
53
+ /**
54
+ * 创建右侧地图(影像地图)
55
+ */
56
+ private createRightMap;
57
+ /**
58
+ * 添加天地图矢量图层
59
+ */
60
+ private addTdtVecLayer;
61
+ /**
62
+ * 添加天地图影像图层
63
+ */
64
+ private addTdtImgLayer;
65
+ /**
66
+ * 添加天地图注记图层
67
+ */
68
+ private addTdtCiaLayer;
69
+ /**
70
+ * 同步两个地图的视图
71
+ */
72
+ private syncMapViews;
73
+ /**
74
+ * 更新分割样式
75
+ */
76
+ private updateSplitStyle;
77
+ /**
78
+ * 销毁管理器
79
+ */
80
+ destroy(): void;
81
+ }
@@ -0,0 +1,33 @@
1
+ import { VectorTileAdapter } from '../adapters/types';
2
+ /** 天地图图层 ID 常量 */
3
+ export declare const TDT_LAYER_IDS: {
4
+ readonly img: "tdt-img";
5
+ readonly vec: "tdt-vec";
6
+ readonly cia: "tdt-cia";
7
+ };
8
+ export default class TDTManager {
9
+ private adapter;
10
+ private token;
11
+ /** 各图层对应的 Source 配置 */
12
+ private layerSources;
13
+ constructor(adapter: VectorTileAdapter, token?: string);
14
+ private addTdtLayer;
15
+ private removeTdtLayer;
16
+ /** 添加天地图影像底图(+ 注记) */
17
+ addImgLayer(sourceConfig?: any, beforeId?: string): void;
18
+ removeImgLayer(): void;
19
+ /** 添加天地图矢量底图 */
20
+ addVecLayer(sourceConfig?: any, beforeId?: string): void;
21
+ removeVecLayer(): void;
22
+ /** 添加天地图注记图层 */
23
+ addCiaLayer(sourceConfig?: any, beforeId?: string): void;
24
+ removeCiaLayer(): void;
25
+ /** 移除所有天地图图层 */
26
+ clear(): void;
27
+ /** 显示天地图(恢复可见性) */
28
+ show(): void;
29
+ /** 隐藏天地图(保留图层,仅隐藏) */
30
+ hideAll(): void;
31
+ /** 隐藏指定的天地图图层 */
32
+ hide(layerId: string): void;
33
+ }
@@ -0,0 +1,52 @@
1
+ import { TemplateItem } from '../types/ITemplate';
2
+ export default class TemplateManager {
3
+ private templates;
4
+ /**
5
+ * 初始化模板数据
6
+ * @param templateItems 模板数据数组
7
+ */
8
+ initialize(templateItems: TemplateItem[]): void;
9
+ /**
10
+ * 根据模板id查询配置
11
+ * @param templateId 模板id
12
+ * @returns 模板配置,如果不存在则返回 undefined
13
+ */
14
+ getTemplate(templateId: string): TemplateItem | undefined;
15
+ /**
16
+ * 添加模板
17
+ * @param templateId 模板id
18
+ * @param template 模板配置
19
+ */
20
+ addTemplate(templateId: string, template: TemplateItem): void;
21
+ /**
22
+ * 删除模板
23
+ * @param templateId 模板id
24
+ */
25
+ removeTemplate(templateId: string): void;
26
+ /**
27
+ * 更新模板
28
+ * @param templateId 模板id
29
+ * @param template 模板配置
30
+ */
31
+ updateTemplate(templateId: string, template: TemplateItem): void;
32
+ /**
33
+ * 获取所有模板
34
+ * @returns 所有模板的映射
35
+ */
36
+ getAllTemplates(): Map<string, TemplateItem>;
37
+ /**
38
+ * 获取所有模板id
39
+ * @returns 所有模板id的数组
40
+ */
41
+ getTemplateIds(): string[];
42
+ /**
43
+ * 检查模板是否存在
44
+ * @param templateId 模板id
45
+ * @returns 是否存在
46
+ */
47
+ hasTemplate(templateId: string): boolean;
48
+ /**
49
+ * 清除所有模板
50
+ */
51
+ clear(): void;
52
+ }
@@ -0,0 +1,39 @@
1
+ import { VectorTileAdapter } from '../adapters/types';
2
+ export default class TerrainManager {
3
+ private adapter;
4
+ constructor(adapter: VectorTileAdapter);
5
+ /**
6
+ * 添加 raster-dem 数据源。
7
+ * @param options 必须包含 tiles: string[] 瓦片地址
8
+ */
9
+ addSource(options: {
10
+ tiles: string[];
11
+ minzoom?: number;
12
+ maxzoom?: number;
13
+ tileSize?: number;
14
+ [key: string]: any;
15
+ }): this;
16
+ /**
17
+ * 添加地形(setTerrain)。
18
+ * 若 raster-dem 数据源不存在,会先调用 addSource 创建。
19
+ * @param options.source 数据源配置(需包含 tiles)
20
+ * @param options.layer 地形配置(exaggeration 等)
21
+ */
22
+ add(options?: {
23
+ source?: any;
24
+ layer?: {
25
+ exaggeration?: number;
26
+ [key: string]: any;
27
+ };
28
+ }): this;
29
+ /** 移除地形 */
30
+ remove(): this;
31
+ /** 添加山体阴影图层(需先添加 raster-dem 数据源) */
32
+ addHillshade(): this;
33
+ /** 移除山体阴影图层 */
34
+ removeHillshade(): this;
35
+ /** 显示地形(添加地形 + 山体阴影) */
36
+ show(options?: Parameters<TerrainManager['add']>[0]): this;
37
+ /** 隐藏地形(移除地形 + 山体阴影) */
38
+ hide(): this;
39
+ }
@@ -0,0 +1,89 @@
1
+ import { VectorTileAdapter, MarkerOptions } from '../../adapters/types';
2
+ import { Marker, LngLatLike } from '@gis_victory/mapbox-gl';
3
+ /**
4
+ * 标记图层配置
5
+ */
6
+ export interface MarkerConfig {
7
+ /** 标记ID */
8
+ id: string;
9
+ /** 标记位置 [lng, lat] */
10
+ lngLat: LngLatLike;
11
+ /** 标记选项 */
12
+ options?: MarkerOptions;
13
+ /** 自定义DOM元素 */
14
+ element?: HTMLElement;
15
+ }
16
+ /**
17
+ * 标记图层组配置
18
+ */
19
+ export interface MarkerGroupConfig {
20
+ /** 标记数据数组 */
21
+ data: Array<{
22
+ /** 标记ID */
23
+ id: string;
24
+ /** 标记位置 [lng, lat] */
25
+ lngLat: LngLatLike;
26
+ /** 标记选项 */
27
+ options?: MarkerOptions;
28
+ /** 自定义DOM元素 */
29
+ element?: HTMLElement;
30
+ }>;
31
+ }
32
+ export default class MarkerLayer {
33
+ private adapter;
34
+ private markers;
35
+ private customLayers;
36
+ constructor(adapter: VectorTileAdapter);
37
+ /**
38
+ * 添加单个标记
39
+ * @param config 标记配置
40
+ */
41
+ add(config: MarkerConfig): void;
42
+ /**
43
+ * 批量添加标记
44
+ * @param config 标记组配置
45
+ */
46
+ addGroup(config: MarkerGroupConfig): void;
47
+ /**
48
+ * 移除标记
49
+ * @param id 标记ID
50
+ */
51
+ remove(id: string): void;
52
+ /**
53
+ * 清除所有标记
54
+ */
55
+ clear(): void;
56
+ /**
57
+ * 添加自定义图层
58
+ * @param id 图层ID
59
+ * @param layerConfig 图层配置
60
+ */
61
+ addCustomLayer(id: string, layerConfig: any): void;
62
+ /**
63
+ * 移除自定义图层
64
+ * @param id 图层ID
65
+ */
66
+ removeCustomLayer(id: string): void;
67
+ /**
68
+ * 清除所有自定义图层
69
+ */
70
+ clearCustomLayers(): void;
71
+ /**
72
+ * 获取所有标记
73
+ */
74
+ getMarkers(): Marker[];
75
+ /**
76
+ * 获取指定标记
77
+ * @param id 标记ID
78
+ */
79
+ getMarker(id: string): Marker | undefined;
80
+ /**
81
+ * 获取所有自定义图层
82
+ */
83
+ getCustomLayers(): any[];
84
+ /**
85
+ * 获取指定自定义图层
86
+ * @param id 图层ID
87
+ */
88
+ getCustomLayer(id: string): any;
89
+ }
@@ -0,0 +1,30 @@
1
+ import { VectorTileAdapter } from '../../adapters/types';
2
+ import { IEventBus, CoreMapEvents } from '../../core/event';
3
+ import { LayerQueryClickPayload } from '../../core/event/types';
4
+ /**
5
+ * 矢量图层封装
6
+ * 依赖 VectorTileAdapter 而非 GSMap,可与 Mapbox GL / MapLibre 等引擎配合使用。
7
+ */
8
+ export default class VectorLayer {
9
+ private map;
10
+ /** 事件总线(由 LayerManager 注入) */
11
+ eventBus?: IEventBus<CoreMapEvents>;
12
+ layerId: string;
13
+ layerFilter: any;
14
+ isQuery: boolean;
15
+ dataExtension: any;
16
+ tooltipTemplate: string;
17
+ templateId: string | undefined;
18
+ isShowTooltip: boolean;
19
+ isCommonPopup: boolean;
20
+ private feature;
21
+ /** 图层点击回调(由 LayerManager 注入) */
22
+ onLayerClick?: (payload: LayerQueryClickPayload) => void;
23
+ get id(): string;
24
+ constructor(map: VectorTileAdapter, eventBus?: IEventBus<CoreMapEvents>);
25
+ private addSource;
26
+ add(layerConfig: any, beforeLayerId?: string): void;
27
+ remove(): void;
28
+ addInteraction(): void;
29
+ removeInteraction(): void;
30
+ }