@xingm/vmap-cesium-toolbar 0.0.6 → 1.0.0

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 (133) hide show
  1. package/README.md +126 -230
  2. package/dist/README.md +172 -0
  3. package/dist/adapters/DrawHelperAdapter.d.ts +143 -0
  4. package/dist/adapters/MapLoaderAdapter.d.ts +44 -0
  5. package/dist/adapters/OverlayServiceAdapter.d.ts +102 -0
  6. package/dist/adapters/ToolbarAdapter.d.ts +71 -0
  7. package/dist/adapters/index.d.ts +23 -0
  8. package/dist/components/BaseComponent.d.ts +116 -0
  9. package/dist/components/SearchBox.d.ts +136 -0
  10. package/dist/components/Toolbar.d.ts +115 -0
  11. package/dist/components/ToolbarButton.d.ts +100 -0
  12. package/dist/components/index.d.ts +33 -0
  13. package/dist/core/MapPlugin.d.ts +160 -0
  14. package/dist/core/constants.d.ts +88 -0
  15. package/dist/core/entities/BaseOverlay.d.ts +156 -0
  16. package/dist/core/entities/Circle.d.ts +102 -0
  17. package/dist/core/entities/Icon.d.ts +86 -0
  18. package/dist/core/entities/InfoWindow.d.ts +116 -0
  19. package/dist/core/entities/Label.d.ts +92 -0
  20. package/dist/core/entities/Marker.d.ts +66 -0
  21. package/dist/core/entities/Polygon.d.ts +93 -0
  22. package/dist/core/entities/Polyline.d.ts +72 -0
  23. package/dist/core/entities/Rectangle.d.ts +99 -0
  24. package/dist/core/entities/Ring.d.ts +114 -0
  25. package/dist/core/entities/SVG.d.ts +89 -0
  26. package/dist/core/entities/index.d.ts +27 -0
  27. package/dist/core/index.d.ts +25 -0
  28. package/dist/core/layers/BaiduMapLayer.d.ts +37 -0
  29. package/dist/core/layers/CustomMapLayer.d.ts +43 -0
  30. package/dist/core/layers/GaodeMapLayer.d.ts +41 -0
  31. package/dist/core/layers/HeatmapLayer.d.ts +118 -0
  32. package/dist/core/layers/MapLayer.d.ts +37 -0
  33. package/dist/core/layers/OSMMapLayer.d.ts +37 -0
  34. package/dist/core/layers/PointClusterLayer.d.ts +119 -0
  35. package/dist/core/layers/TDTMapLayer.d.ts +45 -0
  36. package/dist/core/layers/index.d.ts +15 -0
  37. package/dist/core/services/draw/DrawInteractionController.d.ts +16 -0
  38. package/dist/core/services/draw/DrawService.d.ts +38 -0
  39. package/dist/core/services/draw/DrawSessionStore.d.ts +28 -0
  40. package/dist/core/services/draw/drawDefaults.d.ts +16 -0
  41. package/dist/core/services/draw/entities/drawEntityFactory.d.ts +10 -0
  42. package/dist/core/services/draw/entities/drawEntityRegistry.d.ts +8 -0
  43. package/dist/core/services/draw/entities/drawFinalFactory.d.ts +14 -0
  44. package/dist/core/services/draw/entities/drawPreviewFactory.d.ts +15 -0
  45. package/dist/core/services/draw/geometry/drawGeometry.d.ts +11 -0
  46. package/dist/core/services/draw/geometry/drawPosition.d.ts +6 -0
  47. package/dist/core/services/draw/index.d.ts +7 -0
  48. package/dist/core/services/draw/labels/drawHint.d.ts +16 -0
  49. package/dist/core/services/draw/labels/measurementCanvas.d.ts +8 -0
  50. package/dist/core/services/draw/labels/measurementLabelFactory.d.ts +18 -0
  51. package/dist/core/services/draw/measurementThemeResolver.d.ts +9 -0
  52. package/dist/core/services/draw/types/drawState.d.ts +37 -0
  53. package/dist/core/services/draw/types/drawTypes.d.ts +97 -0
  54. package/dist/core/services/index.d.ts +10 -0
  55. package/dist/core/services/overlay/OverlayService.d.ts +188 -0
  56. package/dist/core/services/overlay/index.d.ts +7 -0
  57. package/dist/core/services/toolbar/ToolbarService.d.ts +175 -0
  58. package/dist/core/services/toolbar/buttons/BaseButtonHandler.d.ts +111 -0
  59. package/dist/core/services/toolbar/buttons/LayersButtonHandler.d.ts +47 -0
  60. package/dist/core/services/toolbar/buttons/MeasureButtonHandler.d.ts +94 -0
  61. package/dist/core/services/toolbar/buttons/SearchButtonHandler.d.ts +111 -0
  62. package/dist/core/services/toolbar/buttons/SimpleButtonHandler.d.ts +79 -0
  63. package/dist/core/services/toolbar/config.d.ts +7 -0
  64. package/dist/core/services/toolbar/index.d.ts +30 -0
  65. package/dist/core/services/toolbar/menus/BaseMenu.d.ts +99 -0
  66. package/dist/core/services/toolbar/menus/MeasureMenu.d.ts +44 -0
  67. package/dist/core/services/toolbar/types.d.ts +198 -0
  68. package/dist/core/types.d.ts +586 -0
  69. package/dist/i18n/en-US.d.ts +46 -0
  70. package/dist/i18n/index.d.ts +45 -2
  71. package/dist/i18n/zh-CN.d.ts +46 -0
  72. package/dist/index.d.ts +37 -42
  73. package/dist/index.es.js +6874 -9666
  74. package/dist/index.es.js.map +1 -1
  75. package/dist/libs/CesiumMapModel.d.ts +1 -172
  76. package/dist/libs/CesiumMapToolbar.d.ts +1 -1
  77. package/dist/libs/CesiumOverlayService.d.ts +9 -222
  78. package/dist/libs/config/CesiumMapConfig.d.ts +5 -12
  79. package/dist/libs/drawHelper/DrawHint.d.ts +15 -27
  80. package/dist/libs/drawHelper/index.d.ts +67 -6
  81. package/dist/libs/toolBar/CesiumMapController.d.ts +38 -64
  82. package/dist/libs/toolBar/MapLayersService.d.ts +10 -61
  83. package/dist/libs/toolBar/MapSearchService.d.ts +8 -29
  84. package/dist/libs/toolBar/MapToolBarConfig.d.ts +33 -5
  85. package/dist/libs/toolBar/MeasurementService.d.ts +13 -5
  86. package/dist/libs/toolBar/NotFlyZonesService.d.ts +6 -41
  87. package/dist/package.json +19 -6
  88. package/dist/styles/ComponentStyles.d.ts +82 -0
  89. package/dist/styles/StyleManager.d.ts +142 -0
  90. package/dist/styles/index.d.ts +128 -0
  91. package/dist/utils/common.d.ts +4 -0
  92. package/package.json +1 -1
  93. package/dist/hooks/toolBarConfig.d.ts +0 -75
  94. package/dist/hooks/useDrawHelper.d.ts +0 -24
  95. package/dist/hooks/useDynamicRing.d.ts +0 -44
  96. package/dist/hooks/useHeatmapHelper.d.ts +0 -18
  97. package/dist/hooks/useMap.d.ts +0 -14
  98. package/dist/hooks/useMapInit.d.ts +0 -14
  99. package/dist/hooks/useOverlayHelper.d.ts +0 -48
  100. package/dist/hooks/usePointClusterHelper.d.ts +0 -14
  101. package/dist/index.umd.js +0 -326
  102. package/dist/index.umd.js.map +0 -1
  103. package/dist/libs/drawHelper/BaseDraw.d.ts +0 -194
  104. package/dist/libs/drawHelper/DrawCircle.d.ts +0 -31
  105. package/dist/libs/drawHelper/DrawLine.d.ts +0 -49
  106. package/dist/libs/drawHelper/DrawPolgon.d.ts +0 -35
  107. package/dist/libs/drawHelper/DrawRectangle.d.ts +0 -24
  108. package/dist/libs/i18n/en-US.d.ts +0 -69
  109. package/dist/libs/i18n/index.d.ts +0 -25
  110. package/dist/libs/i18n/zh-CN.d.ts +0 -69
  111. package/dist/libs/overlay/MapCircle.d.ts +0 -130
  112. package/dist/libs/overlay/MapIcon.d.ts +0 -69
  113. package/dist/libs/overlay/MapInfoWindow.d.ts +0 -100
  114. package/dist/libs/overlay/MapLabel.d.ts +0 -73
  115. package/dist/libs/overlay/MapMarker.d.ts +0 -60
  116. package/dist/libs/overlay/MapPolygon.d.ts +0 -114
  117. package/dist/libs/overlay/MapPolyline.d.ts +0 -64
  118. package/dist/libs/overlay/MapRectangle.d.ts +0 -101
  119. package/dist/libs/overlay/MapRing.d.ts +0 -107
  120. package/dist/libs/overlay/MapSVG.d.ts +0 -73
  121. package/dist/libs/overlay/OverlayEditController.d.ts +0 -167
  122. package/dist/libs/overlay/OverlayEditHandles.d.ts +0 -101
  123. package/dist/libs/overlay/OverlayHighlight.d.ts +0 -40
  124. package/dist/libs/overlay/index.d.ts +0 -23
  125. package/dist/libs/overlay/primitives/CirclePrimitiveBatch.d.ts +0 -42
  126. package/dist/libs/overlay/primitives/CirclePrimitiveLayerStack.d.ts +0 -24
  127. package/dist/libs/overlay/primitives/PolygonPrimitiveBatch.d.ts +0 -43
  128. package/dist/libs/overlay/primitives/PolygonPrimitiveLayerStack.d.ts +0 -24
  129. package/dist/libs/overlay/primitives/RectanglePrimitiveBatch.d.ts +0 -41
  130. package/dist/libs/overlay/primitives/RectanglePrimitiveLayerStack.d.ts +0 -24
  131. package/dist/libs/overlay/types.d.ts +0 -121
  132. package/dist/z.const.d.ts +0 -24
  133. /package/dist/{libs → utils}/PickGovernor.d.ts +0 -0
@@ -0,0 +1,115 @@
1
+ import { BaseComponent } from './BaseComponent';
2
+ import { ToolbarButton } from './ToolbarButton';
3
+ import { ToolbarConfig, CustomButtonConfig, StyleConfig } from '../core/types';
4
+ /**
5
+ * 工具栏组件
6
+ */
7
+ export declare class Toolbar extends BaseComponent {
8
+ private config;
9
+ private buttons;
10
+ private buttonContainer;
11
+ /**
12
+ * 构造函数
13
+ * @param config 工具栏配置
14
+ * @param styleConfig 样式配置
15
+ */
16
+ constructor(config?: Partial<ToolbarConfig>, styleConfig?: StyleConfig);
17
+ /**
18
+ * 获取位置样式(静态方法)
19
+ */
20
+ private static getPositionStyle;
21
+ /**
22
+ * 获取位置样式(实例方法)
23
+ */
24
+ private getPositionStyle;
25
+ /**
26
+ * 应用配置
27
+ */
28
+ private applyConfig;
29
+ /**
30
+ * 添加按钮
31
+ * @param buttonConfig 按钮配置
32
+ * @returns 创建的按钮实例
33
+ */
34
+ addButton(buttonConfig: CustomButtonConfig): ToolbarButton;
35
+ /**
36
+ * 移除按钮
37
+ * @param buttonId 按钮ID
38
+ */
39
+ removeButton(buttonId: string): boolean;
40
+ /**
41
+ * 获取按钮
42
+ * @param buttonId 按钮ID
43
+ */
44
+ getButton(buttonId: string): ToolbarButton | undefined;
45
+ /**
46
+ * 获取所有按钮
47
+ */
48
+ getButtons(): ToolbarButton[];
49
+ /**
50
+ * 更新按钮配置
51
+ * @param buttonId 按钮ID
52
+ * @param config 新的按钮配置
53
+ */
54
+ updateButton(buttonId: string, config: Partial<CustomButtonConfig>): boolean;
55
+ /**
56
+ * 排序按钮
57
+ */
58
+ private sortButtons;
59
+ /**
60
+ * 启用按钮
61
+ * @param buttonId 按钮ID
62
+ */
63
+ enableButton(buttonId: string): boolean;
64
+ /**
65
+ * 禁用按钮
66
+ * @param buttonId 按钮ID
67
+ */
68
+ disableButton(buttonId: string): boolean;
69
+ /**
70
+ * 显示按钮
71
+ * @param buttonId 按钮ID
72
+ */
73
+ showButton(buttonId: string): boolean;
74
+ /**
75
+ * 隐藏按钮
76
+ * @param buttonId 按钮ID
77
+ */
78
+ hideButton(buttonId: string): boolean;
79
+ /**
80
+ * 激活按钮
81
+ * @param buttonId 按钮ID
82
+ */
83
+ activateButton(buttonId: string): boolean;
84
+ /**
85
+ * 取消激活按钮
86
+ * @param buttonId 按钮ID
87
+ */
88
+ deactivateButton(buttonId: string): boolean;
89
+ /**
90
+ * 更新工具栏配置
91
+ * @param config 新的工具栏配置
92
+ */
93
+ updateConfig(config: Partial<ToolbarConfig>): void;
94
+ /**
95
+ * 获取工具栏配置
96
+ */
97
+ getConfig(): ToolbarConfig;
98
+ /**
99
+ * 清空所有按钮
100
+ */
101
+ clearButtons(): void;
102
+ /**
103
+ * 添加多个按钮
104
+ * @param buttonConfigs 按钮配置数组
105
+ */
106
+ addButtons(buttonConfigs: CustomButtonConfig[]): ToolbarButton[];
107
+ /**
108
+ * 销毁工具栏
109
+ */
110
+ destroy(): void;
111
+ }
112
+ /**
113
+ * 创建工具栏的工厂函数
114
+ */
115
+ export declare function createToolbar(config?: Partial<ToolbarConfig>, styleConfig?: StyleConfig): Toolbar;
@@ -0,0 +1,100 @@
1
+ import { BaseComponent } from './BaseComponent';
2
+ import { CustomButtonConfig, StyleConfig } from '../core/types';
3
+ /**
4
+ * 工具栏按钮组件
5
+ */
6
+ export declare class ToolbarButton extends BaseComponent {
7
+ private config;
8
+ private onClickHandler?;
9
+ private isActive;
10
+ private static readonly DEFAULT_TITLES;
11
+ /**
12
+ * 构造函数
13
+ * @param config 按钮配置
14
+ * @param styleConfig 样式配置
15
+ */
16
+ constructor(config: CustomButtonConfig, styleConfig?: StyleConfig);
17
+ /**
18
+ * 设置按钮
19
+ */
20
+ private setupButton;
21
+ /**
22
+ * 设置图标
23
+ * @param icon 图标配置
24
+ */
25
+ private setIcon;
26
+ /**
27
+ * 判断是否为图片路径
28
+ */
29
+ private isImagePath;
30
+ private getResolvedTitle;
31
+ /**
32
+ * 处理点击事件
33
+ */
34
+ private handleClick;
35
+ /**
36
+ * 处理鼠标进入事件
37
+ */
38
+ private handleMouseEnter;
39
+ /**
40
+ * 处理鼠标离开事件
41
+ */
42
+ private handleMouseLeave;
43
+ /**
44
+ * 激活按钮
45
+ */
46
+ activate(): void;
47
+ /**
48
+ * 取消激活按钮
49
+ */
50
+ deactivate(): void;
51
+ /**
52
+ * 切换激活状态
53
+ */
54
+ toggleActive(): void;
55
+ /**
56
+ * 启用按钮
57
+ */
58
+ enable(): void;
59
+ /**
60
+ * 禁用按钮
61
+ */
62
+ disable(): void;
63
+ /**
64
+ * 显示按钮
65
+ */
66
+ show(): void;
67
+ /**
68
+ * 隐藏按钮
69
+ */
70
+ hide(): void;
71
+ /**
72
+ * 更新按钮配置
73
+ * @param config 新的按钮配置
74
+ */
75
+ updateConfig(config: Partial<CustomButtonConfig>): void;
76
+ /**
77
+ * 获取按钮配置
78
+ */
79
+ getConfig(): CustomButtonConfig;
80
+ /**
81
+ * 获取按钮ID
82
+ */
83
+ getId(): string;
84
+ /**
85
+ * 检查是否激活
86
+ */
87
+ isButtonActive(): boolean;
88
+ /**
89
+ * 检查是否启用
90
+ */
91
+ isButtonEnabled(): boolean;
92
+ /**
93
+ * 检查是否可见
94
+ */
95
+ isButtonVisible(): boolean;
96
+ }
97
+ /**
98
+ * 创建工具栏按钮的工厂函数
99
+ */
100
+ export declare function createToolbarButton(config: CustomButtonConfig, styleConfig?: StyleConfig): ToolbarButton;
@@ -0,0 +1,33 @@
1
+ import { BaseComponent, createComponent } from './BaseComponent';
2
+ import { ToolbarButton, createToolbarButton } from './ToolbarButton';
3
+ import { Toolbar, createToolbar } from './Toolbar';
4
+ import { SearchBox, createSearchBox } from './SearchBox';
5
+ export { BaseComponent, createComponent } from './BaseComponent';
6
+ export { ToolbarButton, createToolbarButton } from './ToolbarButton';
7
+ export { Toolbar, createToolbar } from './Toolbar';
8
+ export { SearchBox, createSearchBox, type SearchBoxConfig } from './SearchBox';
9
+ export type { StyleConfig } from '../core/types';
10
+ /**
11
+ * 组件模块版本信息
12
+ */
13
+ export declare const VERSION = "1.0.0";
14
+ /**
15
+ * 组件模块描述
16
+ */
17
+ export declare const DESCRIPTION = "VMap Cesium Tool \u7EC4\u4EF6\u6A21\u5757 - \u63D0\u4F9B\u53EF\u91CD\u7528\u7684UI\u7EC4\u4EF6\uFF0C\u652F\u6301\u6837\u5F0F\u9694\u79BB\u548C\u81EA\u5B9A\u4E49";
18
+ /**
19
+ * 默认导出组件模块
20
+ */
21
+ declare const componentsModule: {
22
+ VERSION: string;
23
+ DESCRIPTION: string;
24
+ BaseComponent: typeof BaseComponent;
25
+ ToolbarButton: typeof ToolbarButton;
26
+ Toolbar: typeof Toolbar;
27
+ SearchBox: typeof SearchBox;
28
+ createComponent: typeof createComponent;
29
+ createToolbarButton: typeof createToolbarButton;
30
+ createToolbar: typeof createToolbar;
31
+ createSearchBox: typeof createSearchBox;
32
+ };
33
+ export default componentsModule;
@@ -0,0 +1,160 @@
1
+ import { CameraConfig, DrawPluginOptions, LayersConfig, MapPluginOptions, OverlayPluginOptions, ToolbarConfig, ToolbarPluginOptions } from './types';
2
+ import { OverlayService } from './services/overlay/OverlayService';
3
+ import { DrawService } from './services/draw/DrawService';
4
+ import { ToolbarService } from './services/toolbar/ToolbarService';
5
+ import * as Cesium from 'cesium';
6
+ /**
7
+ * 地图插件核心类
8
+ * 负责整合所有地图功能,提供统一的 API 接口
9
+ */
10
+ export declare class MapPlugin {
11
+ private viewer;
12
+ private containerId;
13
+ private viewerOptions;
14
+ private cameraConfig;
15
+ private layersConfig;
16
+ private cesiumToken;
17
+ private toolbarConfig;
18
+ private toolbarLayersMenuConfig;
19
+ private servicesConfig;
20
+ private noFlyZoneConfig;
21
+ private initialCenter;
22
+ private toolbarController;
23
+ private toolbarMapTypes;
24
+ private currentMapTypeId;
25
+ private placeNameVisible;
26
+ private noFlyZoneVisible;
27
+ private noFlyZoneDataSource;
28
+ private noFlyZoneLoadPromise;
29
+ private currentGeoWTFS;
30
+ private sceneModeListenerDispose;
31
+ private toolbarService;
32
+ private overlayService;
33
+ private drawService;
34
+ private isInitialized;
35
+ /**
36
+ * 构造函数
37
+ * @param containerId 地图容器 ID
38
+ * @param options 地图插件配置选项
39
+ */
40
+ constructor(containerId: string, options?: Partial<MapPluginOptions>);
41
+ private getToolbarConfig;
42
+ private getToolbarLayersMenuConfig;
43
+ private resolveNoFlyZoneConfig;
44
+ private toInitialCenter;
45
+ private isServiceEnabled;
46
+ private getServiceConfig;
47
+ private ensureViewer;
48
+ private getToolbarContainer;
49
+ private getToolbarController;
50
+ private initializeServices;
51
+ /**
52
+ * 合并相机配置
53
+ */
54
+ private mergeCameraConfig;
55
+ /**
56
+ * 合并图层配置
57
+ */
58
+ private mergeLayersConfig;
59
+ private resolveCurrentMapTypeId;
60
+ private resolvePlaceNameVisible;
61
+ private getToolbarMapTypes;
62
+ private getCurrentToolbarMapType;
63
+ private getLayerToken;
64
+ private ensureNoFlyZoneDataSource;
65
+ private destroyGeoWTFS;
66
+ private syncGeoWTFS;
67
+ private updateToolbarLayerState;
68
+ private createLayersServiceBridge;
69
+ private setMapType;
70
+ private setPlaceNameVisible;
71
+ private showNoFlyZones;
72
+ private hideNoFlyZones;
73
+ private toggleNoFlyZones;
74
+ /**
75
+ * 初始化地图
76
+ */
77
+ initialize(): Promise<Cesium.Viewer>;
78
+ /**
79
+ * 添加地图图层
80
+ */
81
+ private addLayers;
82
+ /**
83
+ * 添加天地图图层
84
+ */
85
+ private addTDTLayers;
86
+ /**
87
+ * 添加高德地图图层
88
+ */
89
+ private addGaodeLayers;
90
+ /**
91
+ * 添加百度地图图层
92
+ */
93
+ private addBaiduLayers;
94
+ /**
95
+ * 添加 OSM 图层
96
+ */
97
+ private addOSMLayers;
98
+ /**
99
+ * 添加自定义图层
100
+ */
101
+ private addCustomLayers;
102
+ /**
103
+ * 设置相机视图
104
+ */
105
+ private setCameraView;
106
+ /**
107
+ * 获取 Cesium Viewer 实例
108
+ */
109
+ getViewer(): Cesium.Viewer | null;
110
+ /**
111
+ * 获取当前配置
112
+ */
113
+ getConfig(): MapPluginOptions;
114
+ /**
115
+ * 更新相机配置
116
+ */
117
+ updateCamera(config: Partial<CameraConfig>): void;
118
+ /**
119
+ * 更新图层配置
120
+ */
121
+ updateLayers(config: Partial<LayersConfig>): void;
122
+ /**
123
+ * 创建 ToolbarService
124
+ */
125
+ createToolbarService(options?: ToolbarPluginOptions): ToolbarService;
126
+ /**
127
+ * 获取 ToolbarService
128
+ */
129
+ getToolbarService(): ToolbarService | null;
130
+ /**
131
+ * 创建 OverlayService
132
+ */
133
+ createOverlayService(options?: OverlayPluginOptions): OverlayService;
134
+ /**
135
+ * 获取 OverlayService
136
+ */
137
+ getOverlayService(): OverlayService;
138
+ /**
139
+ * 创建 DrawService
140
+ */
141
+ createDrawService(options?: DrawPluginOptions): DrawService;
142
+ /**
143
+ * 获取 DrawService
144
+ */
145
+ getDrawService(): DrawService;
146
+ /**
147
+ * 销毁插件
148
+ */
149
+ destroy(): void;
150
+ /**
151
+ * 检查是否已初始化
152
+ */
153
+ isReady(): boolean;
154
+ }
155
+ /**
156
+ * 创建地图插件实例的工厂函数
157
+ * @param containerId 地图容器 ID
158
+ * @param options 地图插件配置选项
159
+ */
160
+ export declare function createMapPlugin(containerId: string, options?: Partial<MapPluginOptions>, toolbarConfig?: ToolbarConfig): MapPlugin;
@@ -0,0 +1,88 @@
1
+ import { TDTLayerConfig } from './types';
2
+ export { DEFAULT_BUTTON_SORTS, DEFAULT_BUTTON_CONFIGS, DEFAULT_MEASURE_ITEMS, DEFAULT_TOOLBAR_STYLE, DEFAULT_MAP_TYPES, } from './services/toolbar/config';
3
+ /**
4
+ * 核心常量定义
5
+ */
6
+ export declare const DEFAULT_CAMERA_CONFIG: {
7
+ center: [number, number, number];
8
+ pitch: number;
9
+ heading: number;
10
+ roll: number;
11
+ };
12
+ /**
13
+ * 默认图层提供商类型
14
+ */
15
+ export declare const DEFAULT_PROVIDER_TYPE: 'tdt';
16
+ /**
17
+ * 默认天地图配置
18
+ */
19
+ export declare const DEFAULT_TDT_CONFIG: TDTLayerConfig;
20
+ export declare const DEFAULT_MAP_CENTER: {
21
+ longitude: number;
22
+ latitude: number;
23
+ height: number;
24
+ };
25
+ export declare const DEFAULT_ZOOM_LEVELS: number[];
26
+ export declare const DEFAULT_ZOOM_INDEX = 3;
27
+ export declare const CSS_CLASSES: {
28
+ TOOLBAR: string;
29
+ TOOLBAR_BUTTON: string;
30
+ SEARCH_CONTAINER: string;
31
+ SEARCH_RESULTS: string;
32
+ MEASUREMENT_MENU: string;
33
+ LAYERS_MENU: string;
34
+ MAP_TYPE_ITEM: string;
35
+ MAP_TYPE_THUMBNAIL: string;
36
+ MAP_TYPE_CHECKMARK: string;
37
+ SELECTED: string;
38
+ };
39
+ export declare const EVENT_NAMES: {
40
+ BUTTON_CLICK: string;
41
+ SEARCH_START: string;
42
+ SEARCH_COMPLETE: string;
43
+ SEARCH_SELECT: string;
44
+ MEASUREMENT_START: string;
45
+ MEASUREMENT_COMPLETE: string;
46
+ MEASUREMENT_CLEAR: string;
47
+ LAYER_CHANGE: string;
48
+ VIEW_MODE_CHANGE: string;
49
+ ZOOM_CHANGE: string;
50
+ FULLSCREEN_CHANGE: string;
51
+ };
52
+ export declare const STYLE_PREFIX = "vmap-cesium-";
53
+ declare const _default: {
54
+ DEFAULT_MAP_CENTER: {
55
+ longitude: number;
56
+ latitude: number;
57
+ height: number;
58
+ };
59
+ DEFAULT_ZOOM_LEVELS: number[];
60
+ DEFAULT_ZOOM_INDEX: number;
61
+ CSS_CLASSES: {
62
+ TOOLBAR: string;
63
+ TOOLBAR_BUTTON: string;
64
+ SEARCH_CONTAINER: string;
65
+ SEARCH_RESULTS: string;
66
+ MEASUREMENT_MENU: string;
67
+ LAYERS_MENU: string;
68
+ MAP_TYPE_ITEM: string;
69
+ MAP_TYPE_THUMBNAIL: string;
70
+ MAP_TYPE_CHECKMARK: string;
71
+ SELECTED: string;
72
+ };
73
+ EVENT_NAMES: {
74
+ BUTTON_CLICK: string;
75
+ SEARCH_START: string;
76
+ SEARCH_COMPLETE: string;
77
+ SEARCH_SELECT: string;
78
+ MEASUREMENT_START: string;
79
+ MEASUREMENT_COMPLETE: string;
80
+ MEASUREMENT_CLEAR: string;
81
+ LAYER_CHANGE: string;
82
+ VIEW_MODE_CHANGE: string;
83
+ ZOOM_CHANGE: string;
84
+ FULLSCREEN_CHANGE: string;
85
+ };
86
+ STYLE_PREFIX: string;
87
+ };
88
+ export default _default;
@@ -0,0 +1,156 @@
1
+ import { Viewer, Entity } from '../../../node_modules/cesium';
2
+ import * as Cesium from 'cesium';
3
+ /**
4
+ * 覆盖物位置类型
5
+ */
6
+ export type OverlayPosition = Cesium.Cartesian3 | [number, number] | [number, number, number];
7
+ /**
8
+ * 基础覆盖物配置选项
9
+ */
10
+ export interface BaseOverlayOptions {
11
+ /** 唯一标识符(可选,不传则自动生成) */
12
+ id?: string;
13
+ /** 位置(笛卡尔坐标或经纬度数组) */
14
+ position?: OverlayPosition;
15
+ /** 是否显示(默认 true) */
16
+ show?: boolean;
17
+ /** 点击回调函数 */
18
+ onClick?: (entity: Entity) => void;
19
+ /** 点击高亮配置 */
20
+ clickHighlight?: boolean | OverlayClickHighlightOptions;
21
+ /** Hover 高亮配置 */
22
+ hoverHighlight?: boolean | OverlayHoverHighlightOptions;
23
+ /** 自定义元数据 */
24
+ metadata?: Record<string, any>;
25
+ /** 兼容旧版图层分组键 */
26
+ layerKey?: string;
27
+ }
28
+ /** 点击高亮配置 */
29
+ export interface OverlayClickHighlightOptions {
30
+ /** 高亮主颜色(默认 yellow) */
31
+ color?: Cesium.Color | string;
32
+ /** 面填充透明度(默认 0.35) */
33
+ fillAlpha?: number;
34
+ }
35
+ /** Hover 高亮配置(与 clickHighlight 使用同样的参数结构) */
36
+ export type OverlayHoverHighlightOptions = OverlayClickHighlightOptions;
37
+ /**
38
+ * 覆盖物扩展实体类型
39
+ * 用于在 Cesium.Entity 上挂载覆盖物相关的元数据
40
+ */
41
+ export interface OverlayEntity extends Entity {
42
+ /** 覆盖物点击回调 */
43
+ _onClick?: (entity: Entity) => void;
44
+ /** 点击高亮配置 */
45
+ _clickHighlight?: boolean | OverlayClickHighlightOptions;
46
+ /** Hover 高亮配置 */
47
+ _hoverHighlight?: boolean | OverlayHoverHighlightOptions;
48
+ /** 高亮联动的实体集合 */
49
+ _highlightEntities?: Entity[];
50
+ /** 当前是否处于高亮状态 */
51
+ _isHighlighted?: boolean;
52
+ /** 当前高亮原因(click/hover) */
53
+ _highlightState?: {
54
+ click?: boolean;
55
+ hover?: boolean;
56
+ };
57
+ /** 覆盖物类型标识 */
58
+ _overlayType?: string;
59
+ /** 信息窗口根 DOM */
60
+ _infoWindow?: HTMLElement;
61
+ /** 复合图形的内层实体或边框实体 */
62
+ _borderEntity?: Entity;
63
+ _innerEntity?: Entity;
64
+ /** 贴地标志 */
65
+ _clampToGround?: boolean;
66
+ /** 基准高度(米) */
67
+ _baseHeight?: number;
68
+ /** 绘制类型标识(如果是由 DrawService 创建) */
69
+ _drawType?: string;
70
+ /** 绘制配置 */
71
+ _drawOptions?: any;
72
+ /** 地面位置缓存 */
73
+ _groundPosition?: Cesium.Cartesian3;
74
+ _groundPositions?: Cesium.Cartesian3[];
75
+ /** 标签实体列表 */
76
+ _labelEntities?: Entity[];
77
+ /** 关联的覆盖物 ID */
78
+ _overlayId?: string;
79
+ /** 旧版圆环/粗边框标记 */
80
+ _isRing?: boolean;
81
+ _ringThickness?: number;
82
+ _primitiveLayerKey?: string;
83
+ }
84
+ /**
85
+ * 覆盖物基类
86
+ * 所有具体覆盖物类(Marker, Polygon, Circle 等)的父类
87
+ *
88
+ * @example
89
+ * ```typescript
90
+ * const marker = new Marker(viewer, {
91
+ * position: [120.1, 30.2],
92
+ * onClick: (entity) => console.log('clicked', entity)
93
+ * });
94
+ * ```
95
+ */
96
+ export declare abstract class BaseOverlay {
97
+ /** Cesium Viewer 实例 */
98
+ protected viewer: Viewer;
99
+ /** Cesium Entity 实例 */
100
+ protected entity: Entity;
101
+ /** 覆盖物配置选项 */
102
+ protected options: BaseOverlayOptions;
103
+ /** 是否已销毁 */
104
+ protected destroyed: boolean;
105
+ /**
106
+ * 构造函数
107
+ * @param viewer - Cesium Viewer 实例
108
+ * @param options - 基础配置选项
109
+ */
110
+ constructor(viewer: Viewer, options?: BaseOverlayOptions);
111
+ /**
112
+ * 生成唯一 ID
113
+ */
114
+ protected generateId(prefix?: string): string;
115
+ /**
116
+ * 将位置转换为 Cartesian3 坐标
117
+ */
118
+ protected toCartesian3(position?: OverlayPosition): Cesium.Cartesian3 | undefined;
119
+ /**
120
+ * 将 Cartesian3 坐标转换为经纬度
121
+ */
122
+ protected toLngLat(cartesian: Cesium.Cartesian3): [number, number];
123
+ /**
124
+ * 获取 Entity 实例
125
+ */
126
+ getEntity(): Entity;
127
+ /**
128
+ * 获取覆盖物 ID
129
+ */
130
+ getId(): string;
131
+ /**
132
+ * 设置是否显示
133
+ */
134
+ setVisible(show: boolean): void;
135
+ /**
136
+ * 获取是否显示
137
+ */
138
+ isVisible(): boolean;
139
+ /**
140
+ * 更新配置
141
+ * @param options - 新的配置选项
142
+ */
143
+ abstract update(options: Partial<BaseOverlayOptions & any>): void;
144
+ /**
145
+ * 从场景中移除覆盖物
146
+ */
147
+ remove(): void;
148
+ /**
149
+ * 销毁覆盖物(别名,与 remove 相同)
150
+ */
151
+ destroy(): void;
152
+ /**
153
+ * 检查是否已销毁
154
+ */
155
+ isDestroyed(): boolean;
156
+ }