@xingm/vmap-cesium-toolbar 0.0.5 → 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 +7056 -9844
  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 -166
  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,586 @@
1
+ import { Cartesian3, Cartographic, Color, MaterialProperty, Rectangle, Entity } from '../../node_modules/cesium';
2
+ import { I18nLike } from '../i18n';
3
+ import { ToolbarCallbacks } from './services/toolbar/types';
4
+ import * as Cesium from 'cesium';
5
+ /**
6
+ * 核心类型定义 - 整合所有地图插件相关的类型
7
+ */
8
+ /**
9
+ * 工具栏配置接口
10
+ */
11
+ export interface ToolbarConfig {
12
+ position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
13
+ direction?: 'row' | 'column';
14
+ buttonSize?: number;
15
+ buttonSpacing?: number;
16
+ padding?: string;
17
+ backgroundColor?: string;
18
+ borderColor?: string;
19
+ borderRadius?: number;
20
+ borderWidth?: number;
21
+ boxShadow?: string;
22
+ zIndex?: number;
23
+ offsetTop?: number;
24
+ offsetRight?: number;
25
+ offsetBottom?: number;
26
+ offsetLeft?: number;
27
+ buttons?: CustomButtonConfig[];
28
+ useI18n?: boolean;
29
+ i18n?: I18nLike;
30
+ }
31
+ /**
32
+ * 基础按钮配置接口
33
+ */
34
+ export interface ButtonConfig {
35
+ sort?: number;
36
+ id: string;
37
+ icon: string;
38
+ title: string;
39
+ titleKey?: string;
40
+ size?: number;
41
+ color?: string;
42
+ borderColor?: string;
43
+ borderWidth?: number;
44
+ borderStyle?: string;
45
+ hoverColor?: string;
46
+ activeColor?: string;
47
+ backgroundColor?: string;
48
+ callback?: () => void;
49
+ activeIcon?: string | HTMLElement;
50
+ }
51
+ /**
52
+ * 自定义按钮配置接口
53
+ */
54
+ export interface CustomButtonConfig {
55
+ id: string;
56
+ icon: string | HTMLElement | false;
57
+ title: string;
58
+ titleKey?: string;
59
+ enabled?: boolean;
60
+ visible?: boolean;
61
+ size?: number;
62
+ color?: string;
63
+ borderColor?: string;
64
+ borderWidth?: number;
65
+ borderStyle?: string;
66
+ padding?: string;
67
+ hoverColor?: string;
68
+ activeColor?: string;
69
+ backgroundColor?: string;
70
+ sort?: number;
71
+ activeIcon?: string | HTMLElement | false;
72
+ callback?: () => void;
73
+ onClick?: (buttonId: string, buttonElement: HTMLElement) => void;
74
+ }
75
+ /**
76
+ * 解析后的按钮配置
77
+ */
78
+ export interface ResolvedButtonConfig extends CustomButtonConfig {
79
+ resolvedIcon: string | HTMLElement | false;
80
+ resolvedTitle: string;
81
+ }
82
+ /**
83
+ * 搜索回调接口
84
+ */
85
+ export interface SearchCallback {
86
+ onSearch?: (query: string) => Promise<SearchResult[]>;
87
+ onSelect?: (result: SearchResult) => void;
88
+ onSearchInput?: (query: string, container: HTMLElement) => void;
89
+ onSearchResults?: (results: SearchResult[], container: HTMLElement) => void;
90
+ }
91
+ /**
92
+ * 搜索结果接口
93
+ */
94
+ export interface SearchResult {
95
+ name: string;
96
+ address: string;
97
+ longitude: number;
98
+ latitude: number;
99
+ height?: number;
100
+ }
101
+ /**
102
+ * 测量回调接口
103
+ */
104
+ export interface MeasurementCallback {
105
+ onMeasurementStart?: (positions?: Cartesian3[]) => void;
106
+ onDistanceComplete?: (positions: Cartesian3[], distance: number) => void;
107
+ onAreaComplete?: (positions: Cartesian3[], area: number) => void;
108
+ onClear?: () => void;
109
+ }
110
+ /**
111
+ * 缩放回调接口
112
+ */
113
+ export interface ZoomCallback {
114
+ onZoomIn?: (beforeHeight: number, afterHeight: number, currentLevel: number) => void;
115
+ onZoomOut?: (beforeHeight: number, afterHeight: number, currentLevel: number) => void;
116
+ }
117
+ /**
118
+ * 地图类型接口
119
+ */
120
+ export interface MapType {
121
+ id: string;
122
+ name: string;
123
+ nameKey?: string;
124
+ /** 选中态左上角"路网"文案(可选,未配置时走 i18n 默认 key) */
125
+ placeNameLabel?: string;
126
+ /** 选中态左上角"路网"文案 i18n key(可选) */
127
+ placeNameLabelKey?: string;
128
+ /** 是否强制始终显示路网层(不受 placeName 开关影响) */
129
+ forcePlaceName?: boolean;
130
+ thumbnail: string;
131
+ provider: (token: string) => Cesium.ImageryProvider[];
132
+ terrainProvider?: (token: string) => Cesium.TerrainProvider | null;
133
+ geoWTFS?: (token: string, viewer: Cesium.Viewer) => any | null;
134
+ }
135
+ export interface LayersPanelStyleConfig {
136
+ containerStyle?: Partial<CSSStyleDeclaration>;
137
+ sectionStyle?: Partial<CSSStyleDeclaration>;
138
+ sectionTitleStyle?: Partial<CSSStyleDeclaration>;
139
+ mapTypesGridStyle?: Partial<CSSStyleDeclaration>;
140
+ mapTypeCardStyle?: Partial<CSSStyleDeclaration>;
141
+ mapTypeCardSelectedStyle?: Partial<CSSStyleDeclaration>;
142
+ mapTypeCardHoverStyle?: Partial<CSSStyleDeclaration>;
143
+ mapTypeCardSelectedHoverStyle?: Partial<CSSStyleDeclaration>;
144
+ mapTypeThumbnailStyle?: Partial<CSSStyleDeclaration>;
145
+ mapTypeLabelStyle?: Partial<CSSStyleDeclaration>;
146
+ mapTypeCheckmarkStyle?: Partial<CSSStyleDeclaration>;
147
+ mapTypeCheckmarkSelectedStyle?: Partial<CSSStyleDeclaration>;
148
+ placeNameBadgeStyle?: Partial<CSSStyleDeclaration>;
149
+ placeNameCheckboxStyle?: Partial<CSSStyleDeclaration>;
150
+ placeNameTextStyle?: Partial<CSSStyleDeclaration>;
151
+ noFlyZoneItemStyle?: Partial<CSSStyleDeclaration>;
152
+ noFlyZoneItemHoverStyle?: Partial<CSSStyleDeclaration>;
153
+ noFlyZoneCheckboxStyle?: Partial<CSSStyleDeclaration>;
154
+ noFlyZoneLabelStyle?: Partial<CSSStyleDeclaration>;
155
+ noFlyZoneDotStyle?: Partial<CSSStyleDeclaration>;
156
+ }
157
+ export interface SearchPanelStyleConfig {
158
+ containerStyle?: Partial<CSSStyleDeclaration>;
159
+ inputStyle?: Partial<CSSStyleDeclaration>;
160
+ actionButtonStyle?: Partial<CSSStyleDeclaration>;
161
+ actionIconStyle?: Partial<CSSStyleDeclaration>;
162
+ resultStyle?: Partial<CSSStyleDeclaration>;
163
+ resultItemStyle?: Partial<CSSStyleDeclaration>;
164
+ resultItemHoverStyle?: Partial<CSSStyleDeclaration>;
165
+ resultItemActiveStyle?: Partial<CSSStyleDeclaration>;
166
+ }
167
+ export interface ToolbarSearchMenuOptions {
168
+ panelStyle?: SearchPanelStyleConfig;
169
+ idleActionIcon?: string | HTMLElement;
170
+ clearActionIcon?: string | HTMLElement;
171
+ }
172
+ export interface ToolbarLayersMenuOptions {
173
+ mapTypes?: MapType[];
174
+ defaultPlaceNameChecked?: boolean;
175
+ defaultNoFlyZoneChecked?: boolean;
176
+ panelStyle?: LayersPanelStyleConfig;
177
+ }
178
+ export interface NoFlyZonePluginOptions {
179
+ /** 初始化时是否自动加载并显示禁飞区 */
180
+ autoLoad?: boolean;
181
+ /** 禁飞区初始显示状态 */
182
+ visible?: boolean;
183
+ /** 禁飞区多边形拉伸高度,默认 1000 */
184
+ extrudedHeight?: number;
185
+ }
186
+ /**
187
+ * 地图提供商类型
188
+ */
189
+ export type ProviderType = 'tdt' | 'gaode' | 'baidu' | 'arcgis' | 'osm' | 'custom';
190
+ /**
191
+ * 相机/视图配置
192
+ */
193
+ export interface CameraConfig {
194
+ /** 中心点坐标 [经度,纬度,高度] */
195
+ center: [number, number, number];
196
+ /** 俯仰角(度),默认 -45 */
197
+ pitch?: number;
198
+ /** 朝向角(度),默认 0 */
199
+ heading?: number;
200
+ /** 翻滚角(度),默认 0 */
201
+ roll?: number;
202
+ }
203
+ /**
204
+ * 天地图图层配置
205
+ */
206
+ export interface TDTLayerConfig {
207
+ /** 天地图子类型:矢量/影像/地形 */
208
+ mapTypeId?: 'vec' | 'img' | 'ter';
209
+ /** 天地图 token */
210
+ token: string;
211
+ /** 是否显示注记层,默认 true */
212
+ showLabel?: boolean;
213
+ }
214
+ /**
215
+ * 高德地图图层配置
216
+ */
217
+ export interface GaodeLayerConfig {
218
+ /** 高德地图子类型:矢量/卫星/地形 */
219
+ mapTypeId?: 'vector' | 'satellite' | 'terrain';
220
+ /** 高德 key */
221
+ token?: string;
222
+ /** 是否显示注记层,默认 true */
223
+ showLabel?: boolean;
224
+ }
225
+ /**
226
+ * 百度地图图层配置
227
+ */
228
+ export interface BaiduLayerConfig {
229
+ /** 百度地图子类型:普通/卫星/地形 */
230
+ mapTypeId?: 'normal' | 'satellite' | 'terrain';
231
+ /** 百度 ak */
232
+ token?: string;
233
+ /** 是否显示注记层,默认 true */
234
+ showLabel?: boolean;
235
+ }
236
+ /**
237
+ * ArcGIS 地图图层配置
238
+ */
239
+ export interface ArcGISLayerConfig {
240
+ /** ArcGIS 服务 URL */
241
+ url: string;
242
+ /** 是否使用动态图层 */
243
+ dynamic?: boolean;
244
+ }
245
+ /**
246
+ * OSM 地图图层配置
247
+ */
248
+ export interface OSMLayerConfig {
249
+ /** OSM 风格 URL 模板,默认使用标准 OSM */
250
+ urlTemplate?: string;
251
+ /** 最大层级,默认 19 */
252
+ maximumLevel?: number;
253
+ }
254
+ /**
255
+ * 自定义图层配置
256
+ */
257
+ export interface CustomLayerConfig {
258
+ /** 自定义影像图层提供者数组 */
259
+ providers: Cesium.ImageryProvider[];
260
+ }
261
+ /**
262
+ * 图层配置 - 支持多种地图提供商
263
+ */
264
+ export interface LayersConfig {
265
+ /** 地图提供商类型,默认 'tdt' */
266
+ type?: ProviderType;
267
+ /** 天地图配置 */
268
+ tdt?: TDTLayerConfig;
269
+ /** 高德地图配置 */
270
+ gaode?: GaodeLayerConfig;
271
+ /** 百度地图配置 */
272
+ baidu?: BaiduLayerConfig;
273
+ /** ArcGIS 配置 */
274
+ arcgis?: ArcGISLayerConfig;
275
+ /** OSM 配置 */
276
+ osm?: OSMLayerConfig;
277
+ /** 自定义图层配置 */
278
+ custom?: CustomLayerConfig;
279
+ }
280
+ /**
281
+ * 地图插件配置选项
282
+ */
283
+ export interface MapPluginOptions {
284
+ /** Cesium Viewer 原生配置 */
285
+ viewerOptions?: Cesium.Viewer.ConstructorOptions;
286
+ /** 相机/视图配置 */
287
+ camera?: CameraConfig;
288
+ /** 图层配置 */
289
+ layers?: LayersConfig;
290
+ /** Cesium Ion Token */
291
+ cesiumToken?: string;
292
+ /** 禁飞区初始化配置 */
293
+ noFlyZone?: NoFlyZonePluginOptions;
294
+ /** 服务装配配置 */
295
+ services?: MapPluginServicesOptions;
296
+ }
297
+ /**
298
+ * Toolbar 服务装配配置
299
+ */
300
+ export interface ToolbarPluginOptions {
301
+ /** 是否启用 ToolbarService */
302
+ enabled?: boolean;
303
+ /** 工具栏挂载容器,默认使用地图容器 */
304
+ container?: HTMLElement;
305
+ /** 工具栏配置 */
306
+ config?: ToolbarConfig;
307
+ /** 是否使用默认按钮,默认 true */
308
+ useDefaultButtons?: boolean;
309
+ /** 自定义按钮配置 */
310
+ buttonConfigs?: CustomButtonConfig[];
311
+ /** 搜索菜单配置 */
312
+ searchMenu?: ToolbarSearchMenuOptions;
313
+ /** 图层菜单配置 */
314
+ layersMenu?: ToolbarLayersMenuOptions;
315
+ /** 工具栏回调 */
316
+ callbacks?: ToolbarCallbacks;
317
+ }
318
+ /**
319
+ * Overlay 服务装配配置
320
+ */
321
+ export interface OverlayPluginOptions {
322
+ /** 是否启用 OverlayService,默认 true */
323
+ enabled?: boolean;
324
+ /** 是否启用 hover 处理器 */
325
+ enableHoverHandler?: boolean;
326
+ /** 点击节流间隔 */
327
+ clickPickMinIntervalMs?: number;
328
+ }
329
+ /**
330
+ * Draw 服务装配配置
331
+ */
332
+ export interface DrawPluginOptions {
333
+ /** 是否启用 DrawService,默认 true */
334
+ enabled?: boolean;
335
+ /** 国际化实例,默认使用框架内置 i18n */
336
+ i18n?: I18nLike;
337
+ /** 是否启用 draw 内部国际化,默认 true */
338
+ useI18n?: boolean;
339
+ }
340
+ /**
341
+ * MapPlugin 服务装配总配置
342
+ */
343
+ export interface MapPluginServicesOptions {
344
+ toolbar?: boolean | ToolbarPluginOptions;
345
+ overlay?: boolean | OverlayPluginOptions;
346
+ draw?: boolean | DrawPluginOptions;
347
+ }
348
+ /**
349
+ * 地图工具配置接口(保留用于向后兼容)
350
+ */
351
+ export interface MapToolsConfig {
352
+ containerId: string;
353
+ viewerOptions?: Cesium.Viewer.ConstructorOptions;
354
+ cesiumToken?: string;
355
+ /** @deprecated 使用 camera.center 代替 */
356
+ mapCenter?: {
357
+ longitude: number;
358
+ latitude: number;
359
+ height: number;
360
+ pitch?: number;
361
+ heading?: number;
362
+ };
363
+ zoomLevels?: number[];
364
+ defaultZoom?: number;
365
+ /** @deprecated 使用 layers.type 代替 */
366
+ mapType?: 'tdt' | 'ion';
367
+ /** @deprecated 使用 layers.tdt.mapTypeId 代替 */
368
+ tdtMapTypeId?: 'vec' | 'img' | 'ter';
369
+ /** @deprecated 使用 layers.tdt.token 代替 */
370
+ token?: string;
371
+ }
372
+ /**
373
+ * 点位绘制选项
374
+ */
375
+ export interface PointOptions {
376
+ pixelSize?: number;
377
+ color?: Color;
378
+ outlineColor?: Color;
379
+ outlineWidth?: number;
380
+ showLabel?: boolean;
381
+ labelText?: string;
382
+ onClick?: (position: Cartesian3, cartographic: Cartographic) => void;
383
+ }
384
+ /**
385
+ * 线条绘制选项
386
+ */
387
+ export interface LineOptions {
388
+ width?: number;
389
+ material?: Cesium.MaterialProperty | Color;
390
+ showDistance?: boolean;
391
+ dashPattern?: number;
392
+ onClick?: (positions: Cartesian3[], distance: number) => void;
393
+ }
394
+ /**
395
+ * 多边形绘制选项
396
+ */
397
+ export interface PolygonOptions {
398
+ material?: Cesium.MaterialProperty | Color;
399
+ outline?: boolean;
400
+ outlineColor?: Color;
401
+ outlineWidth?: number;
402
+ showArea?: boolean;
403
+ dashPattern?: number;
404
+ onClick?: (positions: Cartesian3[], area: number) => void;
405
+ }
406
+ /**
407
+ * 覆盖物选项
408
+ */
409
+ export interface OverlayOptions {
410
+ position: Cartesian3;
411
+ type: 'point' | 'label' | 'billboard' | 'model' | 'cylinder';
412
+ point?: {
413
+ pixelSize?: number;
414
+ color?: Color;
415
+ outlineColor?: Color;
416
+ outlineWidth?: number;
417
+ };
418
+ label?: {
419
+ text: string;
420
+ font?: string;
421
+ fillColor?: Color;
422
+ outlineColor?: Color;
423
+ outlineWidth?: number;
424
+ };
425
+ billboard?: {
426
+ image: string;
427
+ scale?: number;
428
+ };
429
+ model?: {
430
+ uri: string;
431
+ scale?: number;
432
+ };
433
+ cylinder?: {
434
+ length: number;
435
+ topRadius: number;
436
+ bottomRadius: number;
437
+ material?: Color;
438
+ };
439
+ }
440
+ /**
441
+ * 覆盖物位置类型
442
+ */
443
+ export type OverlayPosition = Cartesian3 | [number, number] | [number, number, number];
444
+ /**
445
+ * 覆盖物高亮原始样式
446
+ */
447
+ export interface OverlayHighlightOriginalStyle {
448
+ point?: {
449
+ pixelSize?: any;
450
+ color?: any;
451
+ outlineColor?: any;
452
+ outlineWidth?: any;
453
+ };
454
+ label?: {
455
+ fillColor?: any;
456
+ outlineColor?: any;
457
+ outlineWidth?: any;
458
+ scale?: any;
459
+ };
460
+ billboard?: {
461
+ scale?: any;
462
+ color?: any;
463
+ };
464
+ polyline?: {
465
+ width?: any;
466
+ material?: any;
467
+ };
468
+ polygon?: {
469
+ outline?: any;
470
+ outlineColor?: any;
471
+ outlineWidth?: any;
472
+ material?: any;
473
+ };
474
+ rectangle?: {
475
+ outline?: any;
476
+ outlineColor?: any;
477
+ outlineWidth?: any;
478
+ material?: any;
479
+ };
480
+ ellipse?: {
481
+ outline?: any;
482
+ outlineColor?: any;
483
+ outlineWidth?: any;
484
+ material?: any;
485
+ };
486
+ }
487
+ /**
488
+ * 覆盖物点击高亮选项
489
+ */
490
+ export interface OverlayClickHighlightOptions {
491
+ /** 高亮主颜色(默认 yellow) */
492
+ color?: Color | string;
493
+ /** 面填充透明度(默认 0.35) */
494
+ fillAlpha?: number;
495
+ }
496
+ /**
497
+ * 覆盖物悬停高亮选项
498
+ */
499
+ export type OverlayHoverHighlightOptions = OverlayClickHighlightOptions;
500
+ /**
501
+ * 覆盖物扩展实体类型
502
+ */
503
+ export interface OverlayEntity extends Entity {
504
+ /** 覆盖物点击回调(由各 Map* 工具类设置) */
505
+ _onClick?: (entity: Entity) => void;
506
+ /** 点击覆盖物时是否启用高亮(由各 Map* 工具类设置) */
507
+ _clickHighlight?: boolean | OverlayClickHighlightOptions;
508
+ /** 鼠标移入覆盖物时是否启用高亮(由各 Map* 工具类设置) */
509
+ _hoverHighlight?: boolean | OverlayHoverHighlightOptions;
510
+ /** 高亮联动的实体集合(复合覆盖物:边框/填充等一起切换) */
511
+ _highlightEntities?: Entity[];
512
+ /** 当前是否处于高亮状态 */
513
+ _isHighlighted?: boolean;
514
+ /** 当前高亮原因(click/hover 可叠加;click 优先显示) */
515
+ _highlightState?: {
516
+ click?: boolean;
517
+ hover?: boolean;
518
+ };
519
+ /** 用于还原高亮前的原始样式 */
520
+ _highlightOriginalStyle?: OverlayHighlightOriginalStyle;
521
+ /** 高亮时临时创建的"发光边框"实体(由 CesiumOverlayService 管理) */
522
+ _highlightGlowEntity?: Entity;
523
+ /** 覆盖物类型标识(用于 CesiumOverlayService 做差异化更新/删除) */
524
+ _overlayType?: string;
525
+ /** 信息窗口根 DOM(由 MapInfoWindow / CesiumOverlayService 使用) */
526
+ _infoWindow?: HTMLElement;
527
+ /** 复合图形的内层实体或边框实体等关联引用 */
528
+ _borderEntity?: Entity;
529
+ _innerEntity?: Entity;
530
+ /** 粗边框 / 环形等形状相关元数据 */
531
+ /** 是否贴地(粗边框/环形等复合形状用) */
532
+ _clampToGround?: boolean;
533
+ /** 复合形状的基准高度(米,clampToGround=false 时有效) */
534
+ _baseHeight?: number;
535
+ /** 贴地抬高量(米,clampToGround=true 时有效) */
536
+ _groundHeightEpsilon?: number;
537
+ _isThickOutline?: boolean;
538
+ _outlineWidth?: number;
539
+ _isRing?: boolean;
540
+ _ringThickness?: number;
541
+ _ringSegments?: number;
542
+ _ringGlowPower?: number;
543
+ _ringLineColor?: Color | string;
544
+ _ringLineStyle?: 'solid' | 'dashed';
545
+ _ringLineMaterialMode?: 'stripe' | 'dash';
546
+ _ringStripeRepeat?: number;
547
+ _ringDashLength?: number;
548
+ _ringDashPattern?: number;
549
+ _ringGapColor?: Color | string;
550
+ _ringShowInnerLine?: boolean;
551
+ _fillMaterial?: MaterialProperty | Color | string;
552
+ _ringHeightEpsilon?: number;
553
+ _centerCartographic?: Cartographic;
554
+ _outerRadius?: number;
555
+ _innerRadius?: number;
556
+ _outerRectangle?: Rectangle;
557
+ /** primitive circle: 内部使用的纯色缓存(用于高亮恢复) */
558
+ /** primitive layer key: 用于分层批处理路由 */
559
+ _primitiveLayerKey?: string;
560
+ _primitiveRingBaseColor?: Color;
561
+ _primitiveFillBaseColor?: Color;
562
+ /** primitive:用于高亮发光边框的外圈/边界位置(通常为闭合折线) */
563
+ _primitiveOutlinePositions?: Cartesian3[];
564
+ /** primitive polygon/rectangle: 边框纯色缓存(用于高亮恢复) */
565
+ _primitiveBorderBaseColor?: Color;
566
+ }
567
+ /**
568
+ * CSS样式配置接口
569
+ */
570
+ export interface StyleConfig {
571
+ className?: string;
572
+ style?: Partial<CSSStyleDeclaration>;
573
+ cssText?: string;
574
+ }
575
+ /**
576
+ * 组件样式配置
577
+ */
578
+ export interface ComponentStyleConfig {
579
+ container?: StyleConfig;
580
+ button?: StyleConfig;
581
+ toolbar?: StyleConfig;
582
+ search?: StyleConfig;
583
+ measurement?: StyleConfig;
584
+ layers?: StyleConfig;
585
+ }
586
+ export type { Cesium };
@@ -1,9 +1,23 @@
1
1
  declare const enUS: {
2
2
  locale: string;
3
+ toolbar: {
4
+ search: string;
5
+ measure: string;
6
+ view2d3d: string;
7
+ layers: string;
8
+ location: string;
9
+ zoom_in: string;
10
+ zoom_out: string;
11
+ fullscreen: string;
12
+ search_placeholder: string;
13
+ search_empty: string;
14
+ };
3
15
  app: {
4
16
  lang: {
5
17
  zh: string;
6
18
  en: string;
19
+ switch: string;
20
+ current: string;
7
21
  };
8
22
  located: string;
9
23
  init_success: string;
@@ -71,11 +85,43 @@ declare const enUS: {
71
85
  };
72
86
  };
73
87
  layers: {
88
+ base_maps: string;
89
+ assistance: string;
90
+ no_fly_zone: string;
74
91
  map_type: {
75
92
  place_name: string;
76
93
  };
77
94
  };
95
+ map: {
96
+ types: {
97
+ vec: string;
98
+ img: string;
99
+ ter: string;
100
+ };
101
+ };
102
+ measurement: {
103
+ menu: {
104
+ area: string;
105
+ distance: string;
106
+ clear: string;
107
+ };
108
+ };
78
109
  draw: {
110
+ hint: {
111
+ first_point: string;
112
+ area_start: string;
113
+ line_next_point: string;
114
+ line_continue: string;
115
+ polygon_second_point: string;
116
+ polygon_third_point: string;
117
+ polygon_continue: string;
118
+ area_continue: string;
119
+ };
120
+ measurement: {
121
+ total_distance: string;
122
+ preview_area: string;
123
+ total_area: string;
124
+ };
79
125
  start: {
80
126
  line: string;
81
127
  rectangle: string;
@@ -1,3 +1,46 @@
1
- import { I18nLike } from '../libs/i18n';
2
- export declare const i18n: I18nLike;
1
+ interface I18nConfig {
2
+ persist?: boolean;
3
+ useStoredLocale?: boolean;
4
+ }
5
+ interface I18nMessages {
6
+ [key: string]: any;
7
+ }
8
+ interface I18nLike {
9
+ t(key: string, params?: Record<string, any>, locale?: string): string;
10
+ getLocale(): string;
11
+ setLocale(locale: string, options?: {
12
+ persist?: boolean;
13
+ }): void;
14
+ onLocaleChange(callback: (locale: string) => void): () => void;
15
+ addMessages(locale: string, messages: I18nMessages, options?: {
16
+ merge?: boolean;
17
+ }): void;
18
+ configure(config: I18nConfig): void;
19
+ bindElement(element: HTMLElement, key: string, attribute: string): void;
20
+ updateTree(element: HTMLElement): void;
21
+ }
22
+ declare class SimpleI18n implements I18nLike {
23
+ private currentLocale;
24
+ private messages;
25
+ private localeChangeCallbacks;
26
+ private config;
27
+ constructor();
28
+ configure(config: I18nConfig): void;
29
+ addMessages(locale: string, messages: I18nMessages, options?: {
30
+ merge?: boolean;
31
+ }): void;
32
+ t(key: string, params?: Record<string, any>, locale?: string): string;
33
+ getLocale(): string;
34
+ setLocale(locale: string, options?: {
35
+ persist?: boolean;
36
+ }): void;
37
+ onLocaleChange(callback: (locale: string) => void): () => void;
38
+ bindElement(element: HTMLElement, key: string, attribute: string): void;
39
+ updateTree(element: HTMLElement): void;
40
+ private updateBoundElement;
41
+ private getNestedValue;
42
+ private interpolate;
43
+ private deepMerge;
44
+ }
45
+ export declare const i18n: SimpleI18n;
3
46
  export type { I18nLike };