bigmap-plugin 1.0.3

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.
@@ -0,0 +1,3063 @@
1
+ import { ComponentOptionsMixin } from 'vue';
2
+ import { ComponentProvideOptions } from 'vue';
3
+ import { ComputedRef } from 'vue';
4
+ import { DefineComponent } from 'vue';
5
+ import { ExtractPropTypes } from 'vue';
6
+ import { PropType } from 'vue';
7
+ import { PublicProps } from 'vue';
8
+ import { Ref } from 'vue';
9
+
10
+ export declare interface AddWaveParams {
11
+ position: [number, number, number];
12
+ config?: CircleWaveConfig;
13
+ }
14
+
15
+ /** 动画持续时间(秒 / 毫秒) */
16
+ export declare const ANIMATION_DURATION: {
17
+ readonly FLY_TO: 2;
18
+ readonly MORPH: 0.8;
19
+ readonly WAVE: 3000;
20
+ };
21
+
22
+ /** AppButton 组件 */
23
+ export declare const AppButton: DefineComponent<ExtractPropTypes< {
24
+ type: {
25
+ type: StringConstructor;
26
+ default: string;
27
+ };
28
+ size: {
29
+ type: StringConstructor;
30
+ default: string;
31
+ };
32
+ disabled: {
33
+ type: BooleanConstructor;
34
+ default: boolean;
35
+ };
36
+ loading: {
37
+ type: BooleanConstructor;
38
+ default: boolean;
39
+ };
40
+ block: {
41
+ type: BooleanConstructor;
42
+ default: boolean;
43
+ };
44
+ }>, () => JSX.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, "click"[], "click", PublicProps, Readonly<ExtractPropTypes< {
45
+ type: {
46
+ type: StringConstructor;
47
+ default: string;
48
+ };
49
+ size: {
50
+ type: StringConstructor;
51
+ default: string;
52
+ };
53
+ disabled: {
54
+ type: BooleanConstructor;
55
+ default: boolean;
56
+ };
57
+ loading: {
58
+ type: BooleanConstructor;
59
+ default: boolean;
60
+ };
61
+ block: {
62
+ type: BooleanConstructor;
63
+ default: boolean;
64
+ };
65
+ }>> & Readonly<{
66
+ onClick?: ((...args: any[]) => any) | undefined;
67
+ }>, {
68
+ type: string;
69
+ size: string;
70
+ disabled: boolean;
71
+ loading: boolean;
72
+ block: boolean;
73
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
74
+
75
+ /** 组件属性 */
76
+ export declare interface AppButtonProps {
77
+ /** 按钮类型 */
78
+ type?: ButtonType;
79
+ /** 按钮尺寸 */
80
+ size?: ButtonSize;
81
+ /** 是否禁用 */
82
+ disabled?: boolean;
83
+ /** 是否显示加载中 */
84
+ loading?: boolean;
85
+ /** 是否块级展示 */
86
+ block?: boolean;
87
+ }
88
+
89
+ /** AppIcon 组件 */
90
+ export declare const AppIcon: DefineComponent<ExtractPropTypes< {
91
+ name: {
92
+ type: StringConstructor;
93
+ required: true;
94
+ };
95
+ size: {
96
+ type: (NumberConstructor | StringConstructor)[];
97
+ default: number;
98
+ };
99
+ color: {
100
+ type: StringConstructor;
101
+ default: string;
102
+ };
103
+ }>, () => JSX.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes< {
104
+ name: {
105
+ type: StringConstructor;
106
+ required: true;
107
+ };
108
+ size: {
109
+ type: (NumberConstructor | StringConstructor)[];
110
+ default: number;
111
+ };
112
+ color: {
113
+ type: StringConstructor;
114
+ default: string;
115
+ };
116
+ }>> & Readonly<{}>, {
117
+ color: string;
118
+ size: string | number;
119
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
120
+
121
+ /** 组件属性 */
122
+ export declare interface AppIconProps {
123
+ /** 图标名称 */
124
+ name: IconName;
125
+ /** 图标尺寸(px),默认 16 */
126
+ size?: number | string;
127
+ /** 图标颜色,默认继承 currentColor */
128
+ color?: string;
129
+ }
130
+
131
+ /** AppInput 组件 */
132
+ export declare const AppInput: DefineComponent<ExtractPropTypes< {
133
+ modelValue: {
134
+ type: StringConstructor;
135
+ default: string;
136
+ };
137
+ placeholder: {
138
+ type: StringConstructor;
139
+ default: string;
140
+ };
141
+ clearable: {
142
+ type: BooleanConstructor;
143
+ default: boolean;
144
+ };
145
+ prefixIcon: {
146
+ type: StringConstructor;
147
+ default: string;
148
+ };
149
+ disabled: {
150
+ type: BooleanConstructor;
151
+ default: boolean;
152
+ };
153
+ autofocus: {
154
+ type: BooleanConstructor;
155
+ default: boolean;
156
+ };
157
+ ariaLabel: {
158
+ type: StringConstructor;
159
+ default: string;
160
+ };
161
+ }>, () => JSX.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("clear" | "input" | "update:modelValue" | "focus" | "blur" | "keydown")[], "clear" | "input" | "update:modelValue" | "focus" | "blur" | "keydown", PublicProps, Readonly<ExtractPropTypes< {
162
+ modelValue: {
163
+ type: StringConstructor;
164
+ default: string;
165
+ };
166
+ placeholder: {
167
+ type: StringConstructor;
168
+ default: string;
169
+ };
170
+ clearable: {
171
+ type: BooleanConstructor;
172
+ default: boolean;
173
+ };
174
+ prefixIcon: {
175
+ type: StringConstructor;
176
+ default: string;
177
+ };
178
+ disabled: {
179
+ type: BooleanConstructor;
180
+ default: boolean;
181
+ };
182
+ autofocus: {
183
+ type: BooleanConstructor;
184
+ default: boolean;
185
+ };
186
+ ariaLabel: {
187
+ type: StringConstructor;
188
+ default: string;
189
+ };
190
+ }>> & Readonly<{
191
+ onFocus?: ((...args: any[]) => any) | undefined;
192
+ onBlur?: ((...args: any[]) => any) | undefined;
193
+ onInput?: ((...args: any[]) => any) | undefined;
194
+ onKeydown?: ((...args: any[]) => any) | undefined;
195
+ onClear?: ((...args: any[]) => any) | undefined;
196
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
197
+ }>, {
198
+ modelValue: string;
199
+ placeholder: string;
200
+ clearable: boolean;
201
+ prefixIcon: string;
202
+ disabled: boolean;
203
+ autofocus: boolean;
204
+ ariaLabel: string;
205
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
206
+
207
+ /** 组件属性 */
208
+ export declare interface AppInputProps {
209
+ /** 绑定值(v-model) */
210
+ modelValue: string;
211
+ /** 占位文本 */
212
+ placeholder?: string;
213
+ /** 是否显示清除按钮 */
214
+ clearable?: boolean;
215
+ /** 前缀图标名称 */
216
+ prefixIcon?: AppIconProps['name'];
217
+ /** 是否禁用 */
218
+ disabled?: boolean;
219
+ /** 是否自动聚焦 */
220
+ autofocus?: boolean;
221
+ /** 无障碍名称(placeholder 不应作为唯一标签) */
222
+ ariaLabel?: string;
223
+ }
224
+
225
+ /** AppSpinner 组件 */
226
+ export declare const AppSpinner: DefineComponent<ExtractPropTypes< {
227
+ size: {
228
+ type: (NumberConstructor | StringConstructor)[];
229
+ default: number;
230
+ };
231
+ color: {
232
+ type: StringConstructor;
233
+ default: string;
234
+ };
235
+ }>, () => JSX.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes< {
236
+ size: {
237
+ type: (NumberConstructor | StringConstructor)[];
238
+ default: number;
239
+ };
240
+ color: {
241
+ type: StringConstructor;
242
+ default: string;
243
+ };
244
+ }>> & Readonly<{}>, {
245
+ color: string;
246
+ size: string | number;
247
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
248
+
249
+ /**
250
+ * AppSpinner - Apple 风格加载指示器
251
+ * 提供环形旋转加载动画,可指定尺寸与颜色。
252
+ */
253
+ /** 组件属性 */
254
+ export declare interface AppSpinnerProps {
255
+ /** 尺寸(px),默认 24 */
256
+ size?: number | string;
257
+ /** 颜色,默认继承 currentColor */
258
+ color?: string;
259
+ }
260
+
261
+ /** 异步回调 */
262
+ export declare type AsyncCallback<T = any> = (data: T) => Promise<void>;
263
+
264
+ /** 基础配置项 */
265
+ export declare interface BaseOptions {
266
+ id?: string;
267
+ name?: string;
268
+ visible?: boolean;
269
+ }
270
+
271
+ /** 点位基础配置 */
272
+ export declare interface BasePointConfig {
273
+ id: string | number;
274
+ lng: number;
275
+ lat: number;
276
+ altitude?: number;
277
+ icon?: string;
278
+ scale?: number;
279
+ properties?: Record<string, any>;
280
+ attr?: Record<string, unknown>;
281
+ }
282
+
283
+ /**
284
+ * bmgl 全局对象(window.bmgl)类型
285
+ * 显式声明本项目高频使用的成员;索引签名兜底罕见成员(受控边界)。
286
+ */
287
+ declare interface Bmgl {
288
+ /** 三维坐标 */
289
+ Cartesian3: BmglCartesian3Static;
290
+ /** 二维向量 */
291
+ Cartesian2: new (x?: number, y?: number) => BmglCartesian2;
292
+ /** 经纬度(弧度制) */
293
+ Cartographic: BmglCartographicStatic;
294
+ /** 颜色 */
295
+ Color: BmglColorStatic;
296
+ /** 矩形 */
297
+ Rectangle: BmglRectangleStatic;
298
+ /** 数学工具 */
299
+ Math: BmglMathStatic;
300
+ /** 按视距缩放参数 */
301
+ NearFarScalar: new (near?: number, nearValue?: number, far?: number, farValue?: number) => BmglNearFarScalar;
302
+ /** 实体 */
303
+ Entity: new (options?: Record<string, unknown>) => BmglEntity;
304
+ /** 点集合 */
305
+ BillboardCollection: new (options?: Record<string, unknown>) => BmglBillboardCollection;
306
+ /** 地图视图构造器 */
307
+ Viewer: new (container: string | HTMLElement, options?: Record<string, unknown>) => MapViewer;
308
+ /** 屏幕空间事件句柄构造器 */
309
+ ScreenSpaceEventHandler: new (element?: unknown) => BmglScreenSpaceEventHandler;
310
+ /** 场景模式枚举(SCENE2D / SCENE3D / COLUMBUS_VIEW) */
311
+ SceneMode: {
312
+ SCENE2D: number;
313
+ SCENE3D: number;
314
+ COLUMBUS_VIEW: number;
315
+ [key: string]: any;
316
+ };
317
+ /** 屏幕空间事件类型枚举 */
318
+ ScreenSpaceEventType: {
319
+ [key: string]: any;
320
+ };
321
+ /** 垂直对齐枚举 */
322
+ VerticalOrigin: {
323
+ BOTTOM: number;
324
+ CENTER: number;
325
+ TOP: number;
326
+ [key: string]: any;
327
+ };
328
+ /** 水平对齐枚举 */
329
+ HorizontalOrigin: {
330
+ CENTER: number;
331
+ LEFT: number;
332
+ RIGHT: number;
333
+ [key: string]: any;
334
+ };
335
+ /** 高度参考枚举 */
336
+ HeightReference: {
337
+ [key: string]: any;
338
+ };
339
+ /** 分类类型枚举 */
340
+ ClassificationType: {
341
+ [key: string]: any;
342
+ };
343
+ /** 值判空工具 */
344
+ defined(value: unknown): boolean;
345
+ /** 请求调度器(瓦片并发控制) */
346
+ RequestScheduler: {
347
+ [key: string]: any;
348
+ };
349
+ /** 罕见成员兜底(受控边界:新增高频成员应显式声明) */
350
+ [key: string]: any;
351
+ }
352
+
353
+ /** bmgl Billboard(点位图标/名称标签)最小类型 */
354
+ declare interface BmglBillboard {
355
+ /** 关联的原始点位数据(点击拾取时经 primitive.pointData 读回) */
356
+ pointData?: unknown;
357
+ /** 图标地址(URL 或 Canvas 纹理,与 Cesium billboard.image 语义一致) */
358
+ image?: string | HTMLCanvasElement;
359
+ /** 图标宽度(px) */
360
+ width?: number;
361
+ /** 图标高度(px) */
362
+ height?: number;
363
+ /** 世界坐标位置 */
364
+ position?: BmglCartesian3;
365
+ [key: string]: any;
366
+ }
367
+
368
+ /** bmgl BillboardCollection 最小类型(点位图标与名称标签均基于同一集合类) */
369
+ declare interface BmglBillboardCollection {
370
+ /** 新增 billboard/标签,返回对应对象 */
371
+ add(options: Record<string, unknown>): BmglBillboard;
372
+ /** 移除集合内指定元素(成功移除返回 true) */
373
+ remove(billboard: BmglBillboard): boolean;
374
+ /** 清空集合内全部元素 */
375
+ removeAll(): void;
376
+ /** 集合整体显隐 */
377
+ show: boolean;
378
+ [key: string]: any;
379
+ }
380
+
381
+ /** bmgl Cartesian2(二维向量/屏幕坐标,受控不透明) */
382
+ declare interface BmglCartesian2 {
383
+ x?: number;
384
+ y?: number;
385
+ [key: string]: any;
386
+ }
387
+
388
+ /** bmgl Cartesian3(三维坐标,受控不透明) */
389
+ declare interface BmglCartesian3 {
390
+ x?: number;
391
+ y?: number;
392
+ z?: number;
393
+ [key: string]: any;
394
+ }
395
+
396
+ /** Cartesian3 静态成员 */
397
+ declare interface BmglCartesian3Static {
398
+ new (x?: number, y?: number, z?: number): BmglCartesian3;
399
+ fromDegrees(longitude: number, latitude: number, height?: number, ellipsoid?: unknown): BmglCartesian3;
400
+ fromRadians(longitude: number, latitude: number, height?: number, ellipsoid?: unknown): BmglCartesian3;
401
+ [key: string]: any;
402
+ }
403
+
404
+ /** bmgl Cartographic(经纬度+高度,弧度制;fromCartesian 结果字段恒存在,受控不透明) */
405
+ declare interface BmglCartographic {
406
+ longitude: number;
407
+ latitude: number;
408
+ height: number;
409
+ [key: string]: any;
410
+ }
411
+
412
+ /** Cartographic 静态成员 */
413
+ declare interface BmglCartographicStatic {
414
+ fromDegrees(longitude: number, latitude: number, height?: number, ellipsoid?: unknown): BmglCartographic;
415
+ fromCartesian(cartesian: BmglCartesian3, ellipsoid?: unknown, result?: BmglCartographic): BmglCartographic;
416
+ [key: string]: any;
417
+ }
418
+
419
+ /** bmgl Color(受控不透明) */
420
+ declare interface BmglColor {
421
+ withAlpha(alpha: number): BmglColor;
422
+ [key: string]: any;
423
+ }
424
+
425
+ /** Color 静态成员 */
426
+ declare interface BmglColorStatic {
427
+ new (red?: number, green?: number, blue?: number, alpha?: number): BmglColor;
428
+ fromCssColorString(css: string): BmglColor;
429
+ fromAlpha(color: BmglColor, alpha: number): BmglColor;
430
+ [key: string]: any;
431
+ }
432
+
433
+ /** bmgl Ellipsoid(受控不透明) */
434
+ declare interface BmglEllipsoid {
435
+ [key: string]: any;
436
+ }
437
+
438
+ /** bmgl Entity(受控不透明;常用字段显式声明便于业务读写,子对象均为可变包) */
439
+ declare interface BmglEntity {
440
+ id?: string;
441
+ name?: string;
442
+ show?: boolean;
443
+ position?: {
444
+ [key: string]: any;
445
+ };
446
+ polyline?: {
447
+ [key: string]: any;
448
+ };
449
+ polygon?: {
450
+ [key: string]: any;
451
+ };
452
+ billboard?: {
453
+ [key: string]: any;
454
+ };
455
+ label?: {
456
+ [key: string]: any;
457
+ };
458
+ point?: {
459
+ [key: string]: any;
460
+ };
461
+ [key: string]: any;
462
+ }
463
+
464
+ /** bmgl 影像图层(受控不透明) */
465
+ declare interface BmglImageryLayer {
466
+ provider?: {
467
+ [key: string]: any;
468
+ };
469
+ show?: boolean;
470
+ [key: string]: any;
471
+ }
472
+
473
+ /** bmgl 影像图层集合(viewer.imageryLayers) */
474
+ declare interface BmglImageryLayerCollection {
475
+ /** 添加图层并原样返回(泛型保留具体类型) */
476
+ add<T>(layer: T): T;
477
+ /** 移除指定图层(destroy 控制是否销毁图层资源) */
478
+ remove(layer: unknown, destroy?: boolean): boolean;
479
+ /** 移除全部图层 */
480
+ removeAll(): void;
481
+ [key: string]: any;
482
+ }
483
+
484
+ /** bmgl 材质(受控不透明) */
485
+ declare interface BmglMaterial {
486
+ [key: string]: any;
487
+ }
488
+
489
+ /** 数学工具静态成员 */
490
+ declare interface BmglMathStatic {
491
+ toRadians(degrees: number): number;
492
+ toDegrees(radians: number): number;
493
+ clamp(value: number, min: number, max: number): number;
494
+ [key: string]: any;
495
+ }
496
+
497
+ /** bmgl NearFarScalar(按视距缩放参数,受控不透明) */
498
+ declare interface BmglNearFarScalar {
499
+ [key: string]: any;
500
+ }
501
+
502
+ /** bmgl PrimitiveCollection(scene.primitives) */
503
+ declare interface BmglPrimitiveCollection {
504
+ /** 添加 primitive 并原样返回(泛型保留具体类型) */
505
+ add<T>(primitive: T): T;
506
+ /** 移除指定 primitive */
507
+ remove(primitive: unknown): boolean;
508
+ /** 移除全部 primitive */
509
+ removeAll(): void;
510
+ [key: string]: any;
511
+ }
512
+
513
+ /** bmgl Rectangle(受控不透明) */
514
+ declare interface BmglRectangle {
515
+ [key: string]: any;
516
+ }
517
+
518
+ /** Rectangle 静态成员 */
519
+ declare interface BmglRectangleStatic {
520
+ fromDegrees(west: number, south: number, east: number, north: number): BmglRectangle;
521
+ [key: string]: any;
522
+ }
523
+
524
+ /** scene.pick 拾取结果(受控不透明) */
525
+ declare interface BmglScenePick {
526
+ /** 拾取到的 primitive(点位 billboard 经 pointData 读回业务点位数据) */
527
+ primitive?: {
528
+ pointData?: Record<string, any>;
529
+ id?: unknown;
530
+ } & {
531
+ [key: string]: any;
532
+ };
533
+ /** 拾取到的实体 id(Entity 拾取场景;bmgl 实体内部 id 存于 _id) */
534
+ id?: {
535
+ _id?: string;
536
+ [key: string]: any;
537
+ };
538
+ [key: string]: any;
539
+ }
540
+
541
+ /** bmgl ScreenSpaceEventHandler(屏幕空间事件句柄;movement 结构随事件类型而异,由调用方自行约束) */
542
+ declare interface BmglScreenSpaceEventHandler {
543
+ setInputAction(action: (movement: any) => void, type: unknown): void;
544
+ removeInputAction(type: unknown): void;
545
+ destroy(): void;
546
+ isDestroyed(): boolean;
547
+ [key: string]: any;
548
+ }
549
+
550
+ /** 边界范围 */
551
+ export declare interface Bounds {
552
+ west: number;
553
+ east: number;
554
+ south: number;
555
+ north: number;
556
+ }
557
+
558
+ /** 组装带令牌的 WMTS 请求 URL */
559
+ export declare function buildGeoServerWmtsUrl(config: GeoServerSourceConfig, token: string): string;
560
+
561
+ /** 海量点位更新配置 */
562
+ export declare interface BulkUpdateConfig {
563
+ add?: BasePointConfig[];
564
+ update?: Array<{
565
+ id: string | number;
566
+ } & Partial<BasePointConfig>>;
567
+ remove?: (string | number)[];
568
+ batchSize?: number;
569
+ throttleTime?: number;
570
+ }
571
+
572
+ /** 按钮尺寸 */
573
+ export declare type ButtonSize = 'small' | 'medium' | 'large';
574
+
575
+ /**
576
+ * AppButton - Apple 风格按钮组件
577
+ * 支持主要/次要/危险三种风格,圆角 8px、系统蓝主色、按压缩放反馈。
578
+ */
579
+ /** 按钮类型 */
580
+ export declare type ButtonType = 'primary' | 'secondary' | 'danger';
581
+
582
+ /** 回调函数类型 */
583
+ export declare type Callback<T = any> = (data: T) => void;
584
+
585
+ /** 相机默认姿态(heading / pitch / roll,弧度制) */
586
+ export declare const CAMERA_CONFIG: {
587
+ readonly heading: 6.267876539812834;
588
+ readonly pitch: -1.3962634015954636;
589
+ readonly roll: 0.00016118230151462853;
590
+ };
591
+
592
+ /** 相机位置 */
593
+ export declare interface CameraPosition extends Position {
594
+ heading: number;
595
+ pitch: number;
596
+ roll: number;
597
+ }
598
+
599
+ /**
600
+ * 由 Coordinate 经纬度构造 Cartesian3(BMGL 未就绪时返回 null)
601
+ */
602
+ export declare function cartesianFromCoord(coord: Coordinate, height?: number): BmglCartesian3 | null;
603
+
604
+ /**
605
+ * 将 Cartesian3 转为十进制度 { lng, lat }
606
+ */
607
+ export declare function cartesianToDegrees(cartesian: BmglCartesian3): {
608
+ lng: number;
609
+ lat: number;
610
+ } | null;
611
+
612
+ /**
613
+ * 将 Cartographic 转为十进制度 { lng, lat }(BMGL 未就绪时返回 null)
614
+ */
615
+ export declare function cartographicToDegrees(cart: BmglCartographic): {
616
+ lng: number;
617
+ lat: number;
618
+ } | null;
619
+
620
+ export declare interface CircleWaveConfig {
621
+ color?: string;
622
+ radius?: number;
623
+ duration?: number;
624
+ /** 生命周期(ms):到期自动移除波纹,防止实体与每帧动画开销只增不减;0 表示不自动过期 */
625
+ ttl?: number;
626
+ }
627
+
628
+ /** 清理函数(可同步或异步) */
629
+ export declare type CleanupFn = () => void | Promise<void>;
630
+
631
+ /**
632
+ * 闭合多边形坐标:若首尾不一致则追加首点
633
+ * 同时支持 Coordinate[] 与 [number, number][] 两种坐标格式
634
+ */
635
+ export declare function closeCoordinates<T extends Coordinate | [number, number]>(coords: T[]): T[];
636
+
637
+ /** 颜色配置 */
638
+ export declare interface ColorConfig {
639
+ color: string;
640
+ alpha?: number;
641
+ }
642
+
643
+ export declare class ConfigManager {
644
+ private config;
645
+ constructor(userConfig: Partial<MapConfig>);
646
+ /**
647
+ * 获取配置
648
+ */
649
+ get<K extends keyof MapConfig>(key: K): MapConfig[K];
650
+ /**
651
+ * 设置配置
652
+ */
653
+ set<K extends keyof MapConfig>(key: K, value: MapConfig[K]): void;
654
+ /**
655
+ * 获取所有配置
656
+ */
657
+ getAll(): Readonly<MapConfig>;
658
+ /**
659
+ * 更新配置(复用与构造一致的合并语义:剔除 undefined、geoserver 深合并)
660
+ */
661
+ update(updates: Partial<MapConfig>): void;
662
+ /**
663
+ * 重置为默认配置
664
+ */
665
+ reset(): void;
666
+ }
667
+
668
+ /** 等高线显示配置(3D 模式"等高线"开关参数,源自官方地形示例) */
669
+ declare interface ContourConfig {
670
+ /** 等高线间距(m,默认 150) */
671
+ spacing?: number;
672
+ /** 等高线线宽(px,默认 2) */
673
+ width?: number;
674
+ }
675
+
676
+ /**
677
+ * 通用类型定义
678
+ */
679
+ /** 坐标点 */
680
+ export declare interface Coordinate {
681
+ lng: number;
682
+ lat: number;
683
+ altitude?: number;
684
+ }
685
+
686
+ /** 创建基于静态配置的 WMTS URL 提供器(使用业务方传入的令牌,不再内部获取) */
687
+ export declare function createGeoServerWmtsProvider(config: GeoServerSourceConfig): () => Promise<string>;
688
+
689
+ /**
690
+ * 由绘制事件数据构建空间查询形状
691
+ * - 多边形/矩形/三角形:使用坐标数组(data.path 为 [lng, lat][])
692
+ * - 圆形:使用圆心与半径(负半径取绝对值)
693
+ *
694
+ * @param event 绘制事件数据(draw-end / draw-delete 等)
695
+ * @returns 可传入 searchByShape 的 SearchShape;无法构建时返回 null
696
+ */
697
+ export declare function createSearchShapeFromDrawEvent(event: DrawEventData | null | undefined): SearchShape | null;
698
+
699
+ /** 默认等高线配置(源自官方地形示例,仅等高线不叠加高程色带,可按 contourConfig 覆盖) */
700
+ export declare const DEFAULT_CONTOUR_CONFIG: Required<ContourConfig>;
701
+
702
+ /** 默认本地库文件路径(随包发布的 bigemap-plot / circleWave 等) */
703
+ export declare const DEFAULT_LIBS_URL = "/libs";
704
+
705
+ /** 默认地图配置 */
706
+ export declare const DEFAULT_MAP_CONFIG: Partial<MapConfig>;
707
+
708
+ /** 默认遮罩反选配置(可按 setMask 传入的 config 覆盖) */
709
+ export declare const DEFAULT_MASK_CONFIG: NormalizedMaskConfig;
710
+
711
+ /** 默认地图中心位置 */
712
+ export declare const DEFAULT_POSITION: Position;
713
+
714
+ /** 默认绘制工具列表(右侧工具栏,由绘制工具注册表派生,可经 tools 配置覆盖) */
715
+ export declare const DEFAULT_TOOLS: ToolItem[];
716
+
717
+ /** 默认轨迹回放配置(可按 load 传入的 config 覆盖) */
718
+ export declare const DEFAULT_TRAJECTORY_CONFIG: Required<TrajectoryConfig>;
719
+
720
+ /** 默认事件映射(未指定泛型时退化为宽松字符串事件,保持向后兼容) */
721
+ declare type DefaultEventMap = Record<string, any>;
722
+
723
+ /** 绘图回调函数类型 */
724
+ export declare type DrawCallback = (event: DrawEventData) => void;
725
+
726
+ /** 绘图配置接口 */
727
+ export declare interface DrawConfig {
728
+ /** 填充颜色,默认 '#369' */
729
+ fillColor?: string;
730
+ /** 填充透明度,默认 0.6 */
731
+ fillAlpha?: number;
732
+ /** 边框颜色,默认 '#fff' */
733
+ borderColor?: string;
734
+ /** 边框透明度,默认 0.8 */
735
+ borderAlpha?: number;
736
+ /** 线条宽度,默认 2 */
737
+ lineWidth?: number;
738
+ /** 标签字体,默认 '14px arial' */
739
+ labelFont?: string;
740
+ /** 箭头宽度,默认 20 */
741
+ arrowWidth?: number;
742
+ }
743
+
744
+ /** 绘制数据类型 */
745
+ export declare interface DrawData {
746
+ vertices?: Array<{
747
+ lng: number;
748
+ lat: number;
749
+ }>;
750
+ bounds?: Array<{
751
+ lng: number;
752
+ lat: number;
753
+ }>;
754
+ center?: {
755
+ lng: number;
756
+ lat: number;
757
+ };
758
+ radius?: number;
759
+ area?: number;
760
+ distance?: number;
761
+ bearing?: number;
762
+ length?: number;
763
+ [key: string]: unknown;
764
+ }
765
+
766
+ /** 绘制图形元素 */
767
+ export declare interface DrawElement {
768
+ id: string;
769
+ type: DrawType;
770
+ coordinates: Coordinate[];
771
+ properties?: Record<string, any>;
772
+ }
773
+
774
+ /** 绘制事件数据 */
775
+ export declare interface DrawEventData {
776
+ type: DrawType;
777
+ operation: OperationType;
778
+ id?: string;
779
+ data: any;
780
+ rawData: any;
781
+ /** 清空操作时携带被清除的图形数量 */
782
+ count?: number;
783
+ }
784
+
785
+ /** 绘制事件 */
786
+ export declare interface DrawEvents {
787
+ 'draw:start': {
788
+ type: DrawType;
789
+ };
790
+ 'draw:end': DrawEventData;
791
+ 'draw:edit': DrawEventData;
792
+ 'draw:cancel': void;
793
+ 'draw:delete': string;
794
+ }
795
+
796
+ /** 绘制配置 */
797
+ export declare interface DrawStyleConfig extends StyleConfig {
798
+ labelFont?: string;
799
+ arrowWidth?: number;
800
+ }
801
+
802
+ /** 绘制配置构建上下文(由 DrawConfigManager 预计算共享样式后传入) */
803
+ export declare interface DrawToolBuildContext {
804
+ bmgl: Bmgl;
805
+ config: Required<DrawConfig>;
806
+ /** 预计算的共享样式(供各绘制配置构建器复用;材质为 bmgl 不透明对象,透传即可) */
807
+ shared: {
808
+ fill: unknown;
809
+ border: unknown;
810
+ label: Record<string, unknown>;
811
+ width: number;
812
+ };
813
+ }
814
+
815
+ /** 绘制工具配置 */
816
+ export declare interface DrawToolConfig {
817
+ icon: DrawType;
818
+ name: string;
819
+ size?: number;
820
+ }
821
+
822
+ /** 绘制工具注册项 */
823
+ export declare interface DrawToolRegistryEntry {
824
+ /** 绘制类型(与 DrawType 对齐;自定义类型需 as DrawType 收敛) */
825
+ type: DrawType;
826
+ /** 工具名称(工具栏显示) */
827
+ name: string;
828
+ /** 默认图标尺寸(tools 配置未指定尺寸时使用) */
829
+ defaultSize: number;
830
+ /** 图标名称(与 assets/icons 对齐) */
831
+ icon: IconName;
832
+ /** 是否进入默认工具栏(false 表示仅编程式可绘制、不展示按钮,如 triangle) */
833
+ inDefaultToolbar?: boolean;
834
+ /** 默认工具栏展示顺序(升序;未指定时排末尾) */
835
+ toolbarOrder?: number;
836
+ /** 绘制配置构建器:产出 bmgl Plot.Draw enable(type) 使用的配置片段 */
837
+ buildConfig?: (ctx: DrawToolBuildContext) => unknown;
838
+ }
839
+
840
+ /** 绘制类型 */
841
+ export declare type DrawType = 'polygon' | 'rectangle' | 'circle' | 'polyline' | 'area' | 'ruler' | 'azimuth' | 'triangle';
842
+
843
+ /** 实体事件 */
844
+ export declare interface EntityEvents {
845
+ 'entity:created': EntityInfo;
846
+ 'entity:updated': EntityInfo;
847
+ 'entity:deleted': string;
848
+ 'entity:clicked': EntityInfo;
849
+ 'entity:hover': EntityInfo;
850
+ }
851
+
852
+ /** 实体信息 */
853
+ export declare interface EntityInfo {
854
+ id: string;
855
+ type: EntityType;
856
+ options: EntityOptions;
857
+ nativeEntity: any;
858
+ coordinates?: any;
859
+ }
860
+
861
+ /** 实体配置 */
862
+ export declare interface EntityOptions extends BaseOptions, StyleConfig {
863
+ type: EntityType;
864
+ coordinates?: Coordinate[];
865
+ lineCoordinates?: number[];
866
+ center?: Coordinate;
867
+ radius?: number;
868
+ point?: Coordinate;
869
+ pixelSize?: number;
870
+ pointColor?: string;
871
+ }
872
+
873
+ /** 实体类型 */
874
+ export declare type EntityType = 'polygon' | 'line' | 'circle' | 'rectangle' | 'point';
875
+
876
+ /** 错误类型 */
877
+ export declare enum ErrorCode {
878
+ INIT_FAILED = "INIT_FAILED",
879
+ LOAD_SCRIPT_FAILED = "LOAD_SCRIPT_FAILED",
880
+ INVALID_PARAMS = "INVALID_PARAMS",
881
+ RESOURCE_NOT_FOUND = "RESOURCE_NOT_FOUND",
882
+ OPERATION_FAILED = "OPERATION_FAILED"
883
+ }
884
+
885
+ export declare class EventBus<TEventMap extends Record<string, any> = DefaultEventMap> {
886
+ private events;
887
+ /**
888
+ * 订阅事件(返回取消订阅函数)
889
+ */
890
+ on<K extends keyof TEventMap>(event: K, handler: EventHandler<TEventMap[K]>): () => void;
891
+ /**
892
+ * 订阅一次性事件(包裹函数回挂原始引用,支持以原始引用 off)
893
+ */
894
+ once<K extends keyof TEventMap>(event: K, handler: EventHandler<TEventMap[K]>): () => void;
895
+ /**
896
+ * 取消订阅(支持以 once 的原始处理器引用匹配包裹函数)
897
+ */
898
+ off<K extends keyof TEventMap>(event: K, handler?: EventHandler<TEventMap[K]>): void;
899
+ /**
900
+ * 触发事件
901
+ * 同步快速路径:全部 handler 同步返回时不进入异步管道(高频事件低开销);
902
+ * 存在异步 handler 时才 await 收尾。单个处理器异常仅记录,不影响其他处理器。
903
+ */
904
+ emit<K extends keyof TEventMap>(event: K, data?: TEventMap[K]): Promise<void>;
905
+ /**
906
+ * 清空所有事件
907
+ */
908
+ clear(): void;
909
+ /**
910
+ * 获取事件统计
911
+ */
912
+ getStats(): {
913
+ event: string;
914
+ handlerCount: number;
915
+ }[];
916
+ }
917
+
918
+ /**
919
+ * 全局事件总线单例
920
+ * @deprecated 内部已改为每地图独立 EventBus(经 MapManager.getEventBus 获取);
921
+ * 多地图场景使用全局单例会串台。仅为存量外部代码兼容保留,v2.0 移除。
922
+ */
923
+ export declare const eventBus: EventBus<DefaultEventMap>;
924
+
925
+ /**
926
+ * 事件总线 - 统一事件管理
927
+ * 泛型化事件地图:传入 TEventMap 后 on/emit 的事件名与载荷获得编译期约束,
928
+ * 防止事件名拼写错误与 payload 类型错配。
929
+ */
930
+ /** 事件处理器 */
931
+ declare type EventHandler<T = any> = (data: T) => void | Promise<void>;
932
+
933
+ /** 飞行选项 */
934
+ export declare interface FlyToOptions {
935
+ destination: BmglCartesian3;
936
+ orientation?: {
937
+ heading?: number;
938
+ pitch?: number;
939
+ roll?: number;
940
+ };
941
+ duration?: number;
942
+ }
943
+
944
+ /** GameLoading 组件 */
945
+ export declare const GameLoading: DefineComponent<ExtractPropTypes< {
946
+ visible: {
947
+ type: BooleanConstructor;
948
+ default: boolean;
949
+ };
950
+ title: {
951
+ type: StringConstructor;
952
+ default: string;
953
+ };
954
+ subtitle: {
955
+ type: StringConstructor;
956
+ default: string;
957
+ };
958
+ }>, () => JSX.Element | null, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes< {
959
+ visible: {
960
+ type: BooleanConstructor;
961
+ default: boolean;
962
+ };
963
+ title: {
964
+ type: StringConstructor;
965
+ default: string;
966
+ };
967
+ subtitle: {
968
+ type: StringConstructor;
969
+ default: string;
970
+ };
971
+ }>> & Readonly<{}>, {
972
+ visible: boolean;
973
+ title: string;
974
+ subtitle: string;
975
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
976
+
977
+ /** 地图几何常量 */
978
+ export declare const GEOMETRY_CONFIG: {
979
+ /** 纬度每度对应米数(圆形搜索/网格计算,较精确) */
980
+ readonly METERS_PER_DEGREE_LAT: 111320;
981
+ /** 纬度每度对应米数(相机高度估算,近似值) */
982
+ readonly METERS_PER_DEGREE_LAT_APPROX: 111000;
983
+ /** 相机默认视野角(°) */
984
+ readonly CAMERA_FOV_DEGREES: 60;
985
+ /** 相机最小高度(m) */
986
+ readonly MIN_CAMERA_HEIGHT: 1000;
987
+ };
988
+
989
+ /**
990
+ * GeoServer(物探)底图源配置:配置后启用生产/物探底图切换。
991
+ * 令牌由业务方获取后经 token 传入,插件核心不再耦合业务鉴权逻辑。
992
+ */
993
+ export declare interface GeoServerSourceConfig {
994
+ /** WMTS 服务地址,形如 http://host:port/geoMap/geoserver/gwc/service/wmts */
995
+ baseUrl: string;
996
+ /** WMTS 图层名(默认 PostGIS:dommap) */
997
+ layer?: string;
998
+ /** 访问令牌:由业务方在调用侧获取后传入(业务逻辑与地图解耦) */
999
+ token?: string;
1000
+ }
1001
+
1002
+ /**
1003
+ * 获取 bmgl 实例
1004
+ * 优先返回已缓存的实例;若未缓存则尝试从 window.bmgl 读取并缓存
1005
+ * 若都不存在返回 null
1006
+ */
1007
+ export declare function getBmgl(): Bmgl | null;
1008
+
1009
+ /** 获取默认工具栏注册项(inDefaultToolbar !== false,按 toolbarOrder 升序) */
1010
+ export declare function getDefaultToolbarEntries(): DrawToolRegistryEntry[];
1011
+
1012
+ /** 派生默认工具栏工具列表(DEFAULT_TOOLS 单一来源) */
1013
+ export declare function getDefaultTools(): ToolItem[];
1014
+
1015
+ /** 获取全部注册项(含非工具栏类型) */
1016
+ export declare function getDrawToolEntries(): DrawToolRegistryEntry[];
1017
+
1018
+ /** 获取指定类型的注册项 */
1019
+ export declare function getDrawToolEntry(type: DrawType): DrawToolRegistryEntry | undefined;
1020
+
1021
+ /**
1022
+ * 根据原生实体属性判断绘图类型
1023
+ * 与 useMapDraw 内部判断逻辑保持一致
1024
+ */
1025
+ export declare function getEntityType(entity: BmglEntity | null | undefined): DrawType;
1026
+
1027
+ /** 获取当前日志级别 */
1028
+ export declare function getLogLevel(): LogLevel;
1029
+
1030
+ /** 获取状态信息 */
1031
+ export declare const getStatusInfo: (status: number | string) => {
1032
+ color: string;
1033
+ text: string;
1034
+ };
1035
+
1036
+ /** 获取指定名称的 SVG(可指定颜色) */
1037
+ export declare function getSvg(name: IconName, color?: string): string;
1038
+
1039
+ /** 图标名称 -> SVG 字符串 映射表 */
1040
+ export declare const ICON_MAP: Record<IconName, string>;
1041
+
1042
+ /** 图标基础配置 */
1043
+ export declare interface IconBaseConfig {
1044
+ /** 图标尺寸(px),默认 32 */
1045
+ iconSize?: number;
1046
+ /** 文字配置 */
1047
+ textConfig?: IconTextConfig;
1048
+ /** 图标缓存条目上限(LRU 淘汰),默认 8000;海量唯一名称图标场景需覆盖单批去重后的配置量级 */
1049
+ maxIconCache?: number;
1050
+ }
1051
+
1052
+ /** 批量创建条目 */
1053
+ export declare interface IconBatchItem {
1054
+ status: string | number;
1055
+ text?: string;
1056
+ id?: string | number;
1057
+ }
1058
+
1059
+ /** 缓存条目 */
1060
+ export declare interface IconCacheItem {
1061
+ icon: IconImagePayload;
1062
+ width: number;
1063
+ height: number;
1064
+ type: 'base' | 'text';
1065
+ text?: string;
1066
+ /** 状态值 */
1067
+ status: string | number;
1068
+ /** 状态对应颜色 */
1069
+ color: string;
1070
+ /** 退化标记:图片未就绪(超时/失败)生成了色块替代,不应写入缓存 */
1071
+ degraded?: boolean;
1072
+ }
1073
+
1074
+ /** 图标高度信息 */
1075
+ export declare interface IconHeightInfo {
1076
+ iconHeight: number;
1077
+ textHeight: number;
1078
+ totalHeight: number;
1079
+ }
1080
+
1081
+ /** 图标图片载荷:基础图标为 SVG data URL(字符串),合成文字图标为 HTMLCanvasElement。
1082
+ * bmgl/cesium 原生支持 HTMLCanvasElement 作为 billboard image,无需 PNG 编码,
1083
+ * 从而避免海量唯一文字图标被逐一带像素转码成 data URL 的性能损耗。 */
1084
+ declare type IconImagePayload = string | HTMLCanvasElement;
1085
+
1086
+ export declare class IconManager {
1087
+ private static instance;
1088
+ /** 图标缓存条目默认上限(LRU 淘汰,防止 data URL 无界增长;
1089
+ * 需覆盖单批去重后的唯一配置量级,如 10 万点位/每 20 命名 = 5000 唯一名称图标) */
1090
+ private static readonly DEFAULT_MAX_ICON_CACHE;
1091
+ /** 图标缓存条目上限(可经 initialize 的 maxIconCache 覆盖) */
1092
+ private maxIconCache;
1093
+ /** 任务期缓存上限:任务进行中不淘汰,避免"先生成的图标在任务内被后续批次淘汰"导致重复合成 */
1094
+ private static readonly TASK_MAX_ICON_CACHE;
1095
+ /** 活跃图标任务计数(beginIconTask / endIconTask 成对维护) */
1096
+ private activeTasks;
1097
+ /** 图标缓存:缓存键 -> 缓存项(Map 迭代序即新近度序,命中时重插) */
1098
+ private iconCache;
1099
+ /** 颜色 SVG 缓存:状态 -> 替换颜色后的 SVG */
1100
+ private colorCache;
1101
+ /** 基础 SVG 单例缓存:"SVG标识 \u0001 颜色" -> 已编码基础图标(同一"SVG|颜色"全任务只生成一次) */
1102
+ private baseSvgCache;
1103
+ /** SVG 源实例列表与标识映射:保证同一模板复用同一缓存条目,同时支持多个不同基础 SVG */
1104
+ private svgKeys;
1105
+ /** 存活基础 SVG 模板的总数(含 rawSvg 默认模板) */
1106
+ private svgCount;
1107
+ /** 复合文字图标缓存:"SVG标识 \u0001 颜色 \u0001 文字" -> 缓存项。
1108
+ * 支持多基础 SVG 的文字合成,且跨批次复用;主线程 canvas 直传(无 PNG 编码)。 */
1109
+ private compositeCache;
1110
+ /** 复合文字图标缓存条目常规上限(任务期不淘汰,仅结束后裁剪) */
1111
+ private static readonly COMPOSITE_CACHE_CAP;
1112
+ /** 性能基准统计(自上次重置累计):文字图标命中/生成数 */
1113
+ private runtimeStats;
1114
+ /** 设备像素比 */
1115
+ private dpr;
1116
+ /** 原始 SVG 模板 */
1117
+ private rawSvg;
1118
+ /** 默认图标配置 */
1119
+ private defaultConfig;
1120
+ private constructor();
1121
+ /** 当前生效的图标缓存上限(有活跃任务时放宽到任务上限,保证任务内不淘汰) */
1122
+ private get effectiveCacheLimit();
1123
+ /** LRU 触碰:命中缓存时重插到末尾(Map 迭代序头部为最旧) */
1124
+ private touchCache;
1125
+ /** LRU 淘汰:超出上限时从迭代序头部(最旧)删除 */
1126
+ private evictCacheIfNeeded;
1127
+ /** 获取单例实例 */
1128
+ static getInstance(): IconManager;
1129
+ /**
1130
+ * 开始一个图标任务周期
1131
+ * 任务期间图标缓存不触发 LRU 淘汰,保证首批生成的图标可被后续批次复用;
1132
+ * 应与 endIconTask 成对调用(建议 try/finally)。
1133
+ */
1134
+ beginIconTask(): void;
1135
+ /**
1136
+ * 结束一个图标任务周期,释放任务期缓存
1137
+ * 仅当全部任务结束时回落常规上限并裁剪多余缓存,回收内存。
1138
+ */
1139
+ endIconTask(): void;
1140
+ /** 归一某 SVG 源到稳定标识,同一模板复用同一标识(支持多基础 SVG 扩展) */
1141
+ private resolveSvgKey;
1142
+ /** 初始化:注入 SVG 模板与配置,预生成颜色 SVG */
1143
+ initialize(rawSvg: string, config?: Partial<IconBaseConfig>): void;
1144
+ /** 预生成所有状态对应的颜色 SVG */
1145
+ private preGenerateBaseColors;
1146
+ /** 确保某状态标识的颜色 SVG 已生成(状态标识可为业务 status 或 color: 前缀的直接颜色) */
1147
+ private ensureColoredSvg;
1148
+ /** 生成指定颜色的 SVG(着色失败时回退圆点占位图) */
1149
+ private buildColoredSvg;
1150
+ /** 文字归一:去除首尾空白;undefined 保持 undefined(区分「不显示」与「空文字」) */
1151
+ private normalizeText;
1152
+ /** 基础图标单例生成("SVG|颜色" 只生成一次并缓存,全任务复用;
1153
+ * 支持点位携带不同 SVG 模板实现多基础图标扩展 */
1154
+ private buildBaseIcon;
1155
+ /** 创建基础图标缓存项(按指定的 SVG 模板 + 颜色单例生成) */
1156
+ private createBaseIconCore;
1157
+ /** 按指定 SVG 模板 + 颜色创建基础图标缓存项(多基础 SVG 扩展;对外/批量路径用) */
1158
+ createBaseIconBySvg(svg: string, color: string): IconCacheItem;
1159
+ /** 复合文字图标缓存键(按 SVG|色|文 归一,支持多基础 SVG) */
1160
+ private compositeKey;
1161
+ /** 只读探测复合文字图标缓存(不触发触碰;命中间隔读命中统计) */
1162
+ peekTextIconBySvg(svg: string, color: string, text: string): IconResult | undefined;
1163
+ /** 创建(含缓存)指定 SVG+色+文的复合文字图标:主线程 canvas 直传,无 PNG 编码;
1164
+ * 结果写入 compositeCache,跨批次复用;任务期内不淘汰,结束后回落上限裁剪。 */
1165
+ createTextIconBySvg(svg: string, color: string, text: string): Promise<IconResult>;
1166
+ /** 复合文字图标缓存 LRU 淘汰(常规上限;任务期不触发) */
1167
+ private evictCompositeCacheIfNeeded;
1168
+ /** 缓存是否命中且匹配请求 */
1169
+ private matchCache;
1170
+ /** 创建图标(带缓存;退化结果不缓存,下次调用重试生成) */
1171
+ createIcon(status: string | number, text?: string): Promise<IconResult>;
1172
+ /** 按直接颜色创建图标(不经过状态色映射;缓存键与业务 status 隔离) */
1173
+ createIconByColor(color: string, text?: string): Promise<IconResult>;
1174
+ /** 创建图标核心流程(状态标识 + 已解析颜色;带缓存,退化结果不缓存) */
1175
+ private createIconCore;
1176
+ /** 批量创建图标(按状态分组 + 分片并发) */
1177
+ batchCreateIcons(items: IconBatchItem[]): Promise<Map<string, IconResult>>;
1178
+ /**
1179
+ * 面向点位的批量图标创建(调用方仅需传入点位信息数组)
1180
+ *
1181
+ * 智能复用:按「颜色 + 合成文字」去重,相同配置的点位共享同一 icon 引用;
1182
+ * 文字图标主线程 canvas 直传合成,无 PNG 编码。
1183
+ * 结果直接回填到入参对象(icon/width/height),可直接传给 loadPoints。
1184
+ *
1185
+ * @param points 点位信息数组(如 [{ ...点位基础信息, color, showName }])
1186
+ * @returns 与输入同序、已回填 icon/width/height 的点位数组
1187
+ */
1188
+ batchCreatePointIcons<T extends PointIconItem>(points: T[]): Promise<(T & Pick<IconResult, 'icon' | 'width' | 'height'>)[]>;
1189
+ /** 根据条件创建图标:条件返回文字则显示文字,否则仅基础图标 */
1190
+ createConditionalIcon(status: string | number, condition: () => string | null | undefined): Promise<IconResult>;
1191
+ /** 获取图标高度信息(图标 + 文字区域) */
1192
+ getIconHeightInfo(): IconHeightInfo;
1193
+ /** 清空全部缓存并重建颜色 SVG(同时重读设备像素比,适配跨屏拖动场景) */
1194
+ clearCache(): void;
1195
+ /** 清除某状态的所有相关缓存 */
1196
+ clearCacheByStatus(status: string | number): void;
1197
+ /** 清除指定文字的图标缓存 */
1198
+ clearTextIconCache(status: string | number, text: string): void;
1199
+ /** 获取缓存统计 */
1200
+ getCacheStats(): {
1201
+ iconCache: number;
1202
+ colorCache: number;
1203
+ baseSvg: number;
1204
+ composite: number;
1205
+ total: number;
1206
+ };
1207
+ /** 获取性能基准统计(文字图标命中/生成累计;clearCache 时重置) */
1208
+ getRuntimeStats(): {
1209
+ textHits: number;
1210
+ textGenerated: number;
1211
+ uniqueText: number;
1212
+ };
1213
+ /** 获取当前配置 */
1214
+ getConfig(): IconBaseConfig;
1215
+ /** 更新状态颜色映射(入参为「状态 -> 颜色」纯色映射) */
1216
+ updateStatusColorMap(newMap: StatusColorMap): void;
1217
+ /** 获取当前状态颜色映射(纯色形式) */
1218
+ getStatusColorMap(): StatusColorMap;
1219
+ /** 回退文字图标(供 canvas 内部异常时使用) */
1220
+ buildFallbackTextIcon(base: IconCacheItem, text: string): IconCacheItem;
1221
+ }
1222
+
1223
+ /** 图标管理器单例 */
1224
+ export declare const iconManager: IconManager;
1225
+
1226
+ /**
1227
+ * 图标注册表
1228
+ * 静态引入全部 SVG 资源(经 Vite ?raw 内联为字符串),
1229
+ * 供 AppIcon 组件按名称渲染并支持颜色替换。
1230
+ */
1231
+ /** 图标名称联合类型 */
1232
+ export declare type IconName = '2d' | '3d' | 'area' | 'aim' | 'azimuth' | 'base' | 'circle' | 'clear' | 'contour' | 'delete' | 'location' | 'polygon' | 'polyline' | 'rectangle' | 'ruler' | 'search' | 'track' | 'triangle' | 'view' | 'weather';
1233
+
1234
+ /** 图标生成结果 */
1235
+ export declare interface IconResult {
1236
+ /** 图标图片载荷(SVG data URL 或合成后的 canvas) */
1237
+ icon: IconImagePayload;
1238
+ /** 图标宽度(像素) */
1239
+ width: number;
1240
+ /** 图标高度(像素) */
1241
+ height: number;
1242
+ /** 图标类型:'base' 基础图标 | 'text' 带文字图标 */
1243
+ type: 'base' | 'text';
1244
+ /** 若带文字则包含文字内容 */
1245
+ text?: string;
1246
+ }
1247
+
1248
+ /** 文字图标文本配置 */
1249
+ export declare interface IconTextConfig {
1250
+ /** 字号(px),默认 12 */
1251
+ fontSize?: number;
1252
+ /** 文字颜色,默认 #FFFFFF */
1253
+ textColor?: string;
1254
+ /** 文字背景色,默认 rgba(0,0,0,0.6) */
1255
+ textBgColor?: string;
1256
+ /** 文字内边距(px),默认 4 */
1257
+ padding?: number;
1258
+ /** 是否圆角背景,默认 true */
1259
+ rounded?: boolean;
1260
+ /** 背景圆角半径(px),默认 4 */
1261
+ borderRadius?: number;
1262
+ }
1263
+
1264
+ /** 判断是否为合法的图标名称 */
1265
+ export declare function isIconName(name: string): name is IconName;
1266
+
1267
+ /** 图层配置 */
1268
+ export declare interface LayerConfig {
1269
+ id: string;
1270
+ type: 'imagery' | 'wmts' | 'geojson';
1271
+ url: string;
1272
+ visible?: boolean;
1273
+ opacity?: number;
1274
+ zIndex?: number;
1275
+ }
1276
+
1277
+ /**
1278
+ * 脚本加载器
1279
+ * 用于动态加载 BigMap/Cesium 相关脚本与样式,支持依赖解析、去重与并发控制。
1280
+ */
1281
+ /** 库资源配置 */
1282
+ export declare interface LibConfig {
1283
+ /** 库名称 */
1284
+ name: string;
1285
+ /** 资源路径(以 /libs 开头为随包发布的本地库,以 / 开头拼接到 serverUrl) */
1286
+ path: string;
1287
+ /** 是否为 CSS 资源 */
1288
+ isCss?: boolean;
1289
+ /** 依赖的库键名 */
1290
+ dependencies?: string[];
1291
+ }
1292
+
1293
+ /** 预定义库配置 */
1294
+ export declare const LIBRARIES: Record<string, LibConfig>;
1295
+
1296
+ /** 3D 光源配置 */
1297
+ export declare interface LightingConfig {
1298
+ /** 是否开启光源自动设置(按系统时间判断白天/黄昏/夜晚,默认 false) */
1299
+ enabled?: boolean;
1300
+ /** 白天起始小时(0-23,默认 6;[dayStartHour, duskStartHour) 为白天) */
1301
+ dayStartHour?: number;
1302
+ /** 黄昏起始小时(0-23,默认 18;[duskStartHour, nightStartHour) 为黄昏) */
1303
+ duskStartHour?: number;
1304
+ /** 夜晚起始小时(0-23,默认 20;其余为夜晚) */
1305
+ nightStartHour?: number;
1306
+ /** 当前时间提供器(默认读取系统时间;测试/演示可注入) */
1307
+ now?: () => Date;
1308
+ }
1309
+
1310
+ /**
1311
+ * 3D 光源(时间光照)类型定义
1312
+ * 依据当前系统时间自动判定周期(白天/黄昏/夜晚)并切换 3D 场景光源,
1313
+ * 基于 git 示例 scripts/2D天气.html 中的光照思路(SunLight / 黄昏暖色 / 月光)。
1314
+ */
1315
+ /** 光照周期:白天 / 黄昏 / 夜晚 */
1316
+ export declare type LightingPeriod = 'day' | 'dusk' | 'night';
1317
+
1318
+ /** 3D 光源状态(响应式) */
1319
+ export declare interface LightingState {
1320
+ /** 是否开启光源(默认 false,不开启保持地图默认光照) */
1321
+ enabled: boolean;
1322
+ /** 周期来源:auto=按系统时间自动判断;manual=手动指定周期 */
1323
+ mode: 'auto' | 'manual';
1324
+ /** 当前生效的日期周期 */
1325
+ period: LightingPeriod;
1326
+ /** auto 模式判定使用的小时(0-23) */
1327
+ hour: number;
1328
+ }
1329
+
1330
+ /** 统一日志器(API 与 console 对齐,替换成本最低) */
1331
+ export declare const logger: {
1332
+ debug(...args: unknown[]): void;
1333
+ info(...args: unknown[]): void;
1334
+ warn(...args: unknown[]): void;
1335
+ error(...args: unknown[]): void;
1336
+ };
1337
+
1338
+ /**
1339
+ * 统一日志器
1340
+ * 收敛全库散落的 console 调用:级别开关 + 统一前缀。
1341
+ * 默认级别:生产环境(NODE_ENV=production)仅输出 warn 及以上;其余环境输出全部。
1342
+ * 宿主可通过 setLogLevel 运行时调整(如调试时开启 debug、CI 中静默为 silent)。
1343
+ */
1344
+ /** 日志级别(silent 表示完全静默) */
1345
+ export declare type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
1346
+
1347
+ /** MapView 从 MapConfig 消费的字段清单(单一来源:MapViewProps 类型与组件 config 映射均由此派生) */
1348
+ declare const MAP_VIEW_CONFIG_KEYS: readonly ["containerId", "position", "serverUrl", "libsUrl", "showSearch", "showControls", "showDeleteControls", "showStatus", "tools", "searchDebounceTime", "wmtsUrlProvider", "geoserver", "contourConfig", "lightingConfig"];
1349
+
1350
+ /** 地图实例 API(MapContainer/MapView 组件 expose 的完整能力集) */
1351
+ export declare interface MapApi {
1352
+ /** 地图实例 */
1353
+ map: Ref<MapViewer | null>;
1354
+ /** 地图状态 */
1355
+ state: Ref<MapState>;
1356
+ /** 飞行到指定经纬度(高度缺省时使用默认高度) */
1357
+ setView: (lng: number, lat: number, height?: number) => void;
1358
+ /** 批量加载点位(带加载态;mode 为 replace 时先清空再加载) */
1359
+ loadPoints: (points: Record<string, any>[], config?: PointConfig, searchFields?: string[], mode?: 'replace' | 'append') => Promise<void>;
1360
+ /** 文本搜索点位(多字段任一命中即返回) */
1361
+ searchByText: (config: TextSearchConfig) => PointData[];
1362
+ /** 形状搜索点位(矩形/圆形/多边形/三角形) */
1363
+ searchByShape: (shape: SearchShape) => PointData[];
1364
+ /** 更新点位(图标/尺寸) */
1365
+ updatePoints: (points: Record<string, any>[]) => Promise<void>;
1366
+ /** 清空全部点位 */
1367
+ clearPoints: () => Promise<void>;
1368
+ /** 开始绘制指定图形 */
1369
+ startDrawing: (drawType: DrawType) => void;
1370
+ /** 停止当前绘制 */
1371
+ stopDrawing: () => void;
1372
+ /** 清除全部绘制图形 */
1373
+ clearDrawings: () => void;
1374
+ /** 移除指定绘制图形(不传则取消当前绘制) */
1375
+ removeDrawing: (targetId?: string) => void;
1376
+ /** 绘制实体(返回实体 ID,失败返回 null) */
1377
+ drawEntity: (options: EntityOptions) => Promise<string | null>;
1378
+ /** 删除实体(不传 ID 则删除全部) */
1379
+ deleteEntity: (id?: string) => boolean;
1380
+ /** 切换"地图名称"注记开关 */
1381
+ setMapNameVisible: (visible: boolean) => void;
1382
+ /** 切换等高线显示(仅 3D 模式有效,2D 自动关闭) */
1383
+ setContourVisible: (visible: boolean) => void;
1384
+ /** 轨迹回放状态(响应式:status/currentTime/duration/progress/pointCount) */
1385
+ trajectoryState: Ref<TrajectoryState>;
1386
+ /** 加载轨迹并创建可视化(2D/3D 均可用;成功且 autoPlay 时自动播放) */
1387
+ loadTrajectory: (track: TrackPoint[], config?: Partial<TrajectoryConfig>) => void;
1388
+ /** 开始/继续轨迹回放 */
1389
+ playTrajectory: () => void;
1390
+ /** 暂停轨迹回放 */
1391
+ pauseTrajectory: () => void;
1392
+ /** 停止轨迹回放并回到起点 */
1393
+ stopTrajectory: () => void;
1394
+ /** 调整轨迹回放速度倍率 */
1395
+ setTrajectorySpeed: (speed: number) => void;
1396
+ /** 跳转到指定时间点(秒) */
1397
+ jumpTrajectoryTo: (time: number) => void;
1398
+ /** 移除轨迹可视化并复位状态 */
1399
+ clearTrajectory: () => void;
1400
+ /** 遮罩反选状态(响应式:visible/hasMask/boundaryCount) */
1401
+ maskState: Ref<MaskState>;
1402
+ /** 设置遮罩反选(boundary 为保留区域边界环;遮罩其外区域,2D/3D 均可用,模式切换自动重建) */
1403
+ setMask: (boundary: Coordinate[], config?: Partial<MaskConfig>) => void;
1404
+ /** 切换遮罩显隐(保留边界数据) */
1405
+ setMaskVisible: (visible: boolean) => void;
1406
+ /** 清除遮罩并复位状态 */
1407
+ clearMask: () => void;
1408
+ /** 天气状态(响应式:type/active) */
1409
+ weatherState: Ref<WeatherState>;
1410
+ /** 切换天气特效(clear=晴/无;rain=下雨;snow=下雪),2D/3D 通用 */
1411
+ setWeather: (type: WeatherType, config?: Partial<WeatherConfig>) => void;
1412
+ /** 清除天气特效 */
1413
+ clearWeather: () => void;
1414
+ /** 3D 光源状态(响应式:enabled/mode/period/hour) */
1415
+ lightingState: Ref<LightingState>;
1416
+ /** 开/关光源(auto 模式按系统时间判断白天/黄昏/夜晚;默认关闭,仅 3D 模式生效,关闭还原开启前光照) */
1417
+ setLightingEnabled: (enabled: boolean) => void;
1418
+ /** 设置光源周期来源:'auto'=按系统时间自动判断;或手动指定 day/dusk/night */
1419
+ setLightingPeriod: (period: LightingPeriod | 'auto') => void;
1420
+ /** 切换主题(浅色/暗色) */
1421
+ setTheme: (theme: Theme) => void;
1422
+ }
1423
+
1424
+ /** 事件回调集(聚合配置时使用) */
1425
+ export declare interface MapCallbacks {
1426
+ onInit?: (mapInstance: MapViewer | null) => void;
1427
+ onClick?: (position: {
1428
+ lng: number;
1429
+ lat: number;
1430
+ }, data?: Record<string, unknown>) => void;
1431
+ onMouseMove?: (position: {
1432
+ lng: number;
1433
+ lat: number;
1434
+ }) => void;
1435
+ onDrawEnd?: (event: DrawEventData) => void;
1436
+ onPointClick?: (point: BasePointConfig) => void;
1437
+ onPointMouseOver?: (point: BasePointConfig) => void;
1438
+ onLayerChange?: (layers: LayerConfig[]) => void;
1439
+ }
1440
+
1441
+ /** 地图配置 */
1442
+ export declare interface MapConfig {
1443
+ /** 容器ID */
1444
+ containerId?: string;
1445
+ /** 地图资源/瓦片服务器地址(由使用方传入,用于加载地图库与瓦片数据) */
1446
+ serverUrl?: string;
1447
+ /** 库文件地址 */
1448
+ libsUrl?: string;
1449
+ /** 地图类型 */
1450
+ mapType?: MapType;
1451
+ /** 初始位置 */
1452
+ position?: Position;
1453
+ /** 地图ID */
1454
+ mapId?: string;
1455
+ /** 地形ID */
1456
+ terrainId?: string;
1457
+ /** 是否显示加载动画 */
1458
+ showLoading?: boolean;
1459
+ /** 是否显示顶部搜索组件 */
1460
+ showSearch?: boolean;
1461
+ /** 是否显示右侧工具栏(整体显隐,默认 true) */
1462
+ showControls?: boolean;
1463
+ /** 是否显示清除绘制按钮 */
1464
+ showDeleteControls?: boolean;
1465
+ /** 是否显示底部 FPS 状态组件 */
1466
+ showStatus?: boolean;
1467
+ /** 右侧工具栏绘制工具列表 */
1468
+ tools?: ToolItem[];
1469
+ /** 搜索防抖延迟(ms) */
1470
+ searchDebounceTime?: number;
1471
+ /** 生产底图 WMTS URL 提供器(优先于 geoserver 静态配置) */
1472
+ wmtsUrlProvider?: () => Promise<string>;
1473
+ /** GeoServer(物探)底图源配置:配置后启用生产/物探底图切换 */
1474
+ geoserver?: GeoServerSourceConfig;
1475
+ /** 等高线显示配置(3D 模式"等高线"开关参数,可选项,默认见 DEFAULT_CONTOUR_CONFIG) */
1476
+ contourConfig?: Partial<ContourConfig>;
1477
+ /** 是否开启光源自动设置(按当前系统时间判断白天/黄昏/夜晚;默认 false,仅 3D 模式生效) */
1478
+ lightingConfig?: boolean;
1479
+ /** 自定义扩展库配置:按库键名覆盖默认库(路径/依赖)或新增自有依赖库(如自定义绘图插件),无需改包内代码 */
1480
+ extraLibs?: Record<string, Partial<LibConfig>>;
1481
+ }
1482
+
1483
+ export declare const MapContainer: DefineComponent<ExtractPropTypes< {
1484
+ /**
1485
+ * 是否显示搜索栏(旧版命名,语义反转保留兼容)
1486
+ * @deprecated v2.0 移除,请使用 showSearch
1487
+ */
1488
+ hideSearch: {
1489
+ type: BooleanConstructor;
1490
+ default: undefined;
1491
+ };
1492
+ theme: {
1493
+ type: PropType<Theme | undefined>;
1494
+ default: string;
1495
+ };
1496
+ popupConfig: {
1497
+ type: PropType<PopupDisplayConfig | undefined>;
1498
+ default: () => undefined;
1499
+ };
1500
+ position: {
1501
+ type: PropType<Position | undefined>;
1502
+ default: undefined;
1503
+ };
1504
+ containerId: {
1505
+ type: PropType<string | undefined>;
1506
+ default: undefined;
1507
+ };
1508
+ serverUrl: {
1509
+ type: PropType<string | undefined>;
1510
+ default: undefined;
1511
+ };
1512
+ libsUrl: {
1513
+ type: PropType<string | undefined>;
1514
+ default: undefined;
1515
+ };
1516
+ showSearch: {
1517
+ type: PropType<boolean | undefined>;
1518
+ default: undefined;
1519
+ };
1520
+ showControls: {
1521
+ type: PropType<boolean | undefined>;
1522
+ default: undefined;
1523
+ };
1524
+ showDeleteControls: {
1525
+ type: PropType<boolean | undefined>;
1526
+ default: undefined;
1527
+ };
1528
+ showStatus: {
1529
+ type: PropType<boolean | undefined>;
1530
+ default: undefined;
1531
+ };
1532
+ tools: {
1533
+ type: PropType<ToolItem[] | undefined>;
1534
+ default: undefined;
1535
+ };
1536
+ searchDebounceTime: {
1537
+ type: PropType<number | undefined>;
1538
+ default: undefined;
1539
+ };
1540
+ wmtsUrlProvider: {
1541
+ type: PropType<(() => Promise<string>) | undefined>;
1542
+ default: undefined;
1543
+ };
1544
+ geoserver: {
1545
+ type: PropType<GeoServerSourceConfig | undefined>;
1546
+ default: undefined;
1547
+ };
1548
+ contourConfig: {
1549
+ type: PropType<Partial<ContourConfig> | undefined>;
1550
+ default: undefined;
1551
+ };
1552
+ lightingConfig: {
1553
+ type: PropType<boolean | undefined>;
1554
+ default: undefined;
1555
+ };
1556
+ config: {
1557
+ type: PropType<Partial<MapConfig>>;
1558
+ default: undefined;
1559
+ };
1560
+ }>, () => JSX.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("error" | "clear-button-click" | "clear-draw" | "expose" | "draw-end" | "draw-delete" | "draw-clear" | "ready" | "init" | "point-click")[], "error" | "clear-button-click" | "clear-draw" | "expose" | "draw-end" | "draw-delete" | "draw-clear" | "ready" | "init" | "point-click", PublicProps, Readonly<ExtractPropTypes< {
1561
+ /**
1562
+ * 是否显示搜索栏(旧版命名,语义反转保留兼容)
1563
+ * @deprecated v2.0 移除,请使用 showSearch
1564
+ */
1565
+ hideSearch: {
1566
+ type: BooleanConstructor;
1567
+ default: undefined;
1568
+ };
1569
+ theme: {
1570
+ type: PropType<Theme | undefined>;
1571
+ default: string;
1572
+ };
1573
+ popupConfig: {
1574
+ type: PropType<PopupDisplayConfig | undefined>;
1575
+ default: () => undefined;
1576
+ };
1577
+ position: {
1578
+ type: PropType<Position | undefined>;
1579
+ default: undefined;
1580
+ };
1581
+ containerId: {
1582
+ type: PropType<string | undefined>;
1583
+ default: undefined;
1584
+ };
1585
+ serverUrl: {
1586
+ type: PropType<string | undefined>;
1587
+ default: undefined;
1588
+ };
1589
+ libsUrl: {
1590
+ type: PropType<string | undefined>;
1591
+ default: undefined;
1592
+ };
1593
+ showSearch: {
1594
+ type: PropType<boolean | undefined>;
1595
+ default: undefined;
1596
+ };
1597
+ showControls: {
1598
+ type: PropType<boolean | undefined>;
1599
+ default: undefined;
1600
+ };
1601
+ showDeleteControls: {
1602
+ type: PropType<boolean | undefined>;
1603
+ default: undefined;
1604
+ };
1605
+ showStatus: {
1606
+ type: PropType<boolean | undefined>;
1607
+ default: undefined;
1608
+ };
1609
+ tools: {
1610
+ type: PropType<ToolItem[] | undefined>;
1611
+ default: undefined;
1612
+ };
1613
+ searchDebounceTime: {
1614
+ type: PropType<number | undefined>;
1615
+ default: undefined;
1616
+ };
1617
+ wmtsUrlProvider: {
1618
+ type: PropType<(() => Promise<string>) | undefined>;
1619
+ default: undefined;
1620
+ };
1621
+ geoserver: {
1622
+ type: PropType<GeoServerSourceConfig | undefined>;
1623
+ default: undefined;
1624
+ };
1625
+ contourConfig: {
1626
+ type: PropType<Partial<ContourConfig> | undefined>;
1627
+ default: undefined;
1628
+ };
1629
+ lightingConfig: {
1630
+ type: PropType<boolean | undefined>;
1631
+ default: undefined;
1632
+ };
1633
+ config: {
1634
+ type: PropType<Partial<MapConfig>>;
1635
+ default: undefined;
1636
+ };
1637
+ }>> & Readonly<{
1638
+ onError?: ((...args: any[]) => any) | undefined;
1639
+ "onClear-button-click"?: ((...args: any[]) => any) | undefined;
1640
+ "onClear-draw"?: ((...args: any[]) => any) | undefined;
1641
+ onExpose?: ((...args: any[]) => any) | undefined;
1642
+ "onDraw-end"?: ((...args: any[]) => any) | undefined;
1643
+ "onDraw-delete"?: ((...args: any[]) => any) | undefined;
1644
+ "onDraw-clear"?: ((...args: any[]) => any) | undefined;
1645
+ onReady?: ((...args: any[]) => any) | undefined;
1646
+ onInit?: ((...args: any[]) => any) | undefined;
1647
+ "onPoint-click"?: ((...args: any[]) => any) | undefined;
1648
+ }>, {
1649
+ position: Position | undefined;
1650
+ config: Partial<MapConfig>;
1651
+ containerId: string | undefined;
1652
+ serverUrl: string | undefined;
1653
+ libsUrl: string | undefined;
1654
+ showSearch: boolean | undefined;
1655
+ showControls: boolean | undefined;
1656
+ showDeleteControls: boolean | undefined;
1657
+ showStatus: boolean | undefined;
1658
+ tools: ToolItem[] | undefined;
1659
+ searchDebounceTime: number | undefined;
1660
+ wmtsUrlProvider: (() => Promise<string>) | undefined;
1661
+ geoserver: GeoServerSourceConfig | undefined;
1662
+ contourConfig: Partial<ContourConfig> | undefined;
1663
+ lightingConfig: boolean | undefined;
1664
+ theme: Theme | undefined;
1665
+ popupConfig: PopupDisplayConfig | undefined;
1666
+ hideSearch: boolean;
1667
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
1668
+
1669
+ /**
1670
+ * 组件属性:地图配置字段(单一类型源 MapViewProps,字段新增只需改一处)
1671
+ * + 统一 config 对象(默认值 → config → 显式 props 覆盖)+ hideSearch 旧版兼容。
1672
+ */
1673
+ export declare interface MapContainerProps extends MapViewProps {
1674
+ /** 统一配置对象(默认值 → config → 显式 props 覆盖) */
1675
+ config?: Partial<MapConfig>;
1676
+ /**
1677
+ * 是否显示搜索栏(旧版命名,语义反转保留兼容)
1678
+ * @deprecated v2.0 移除,请使用 showSearch
1679
+ */
1680
+ hideSearch?: boolean;
1681
+ }
1682
+
1683
+ /** MapControls 组件 */
1684
+ export declare const MapControls: DefineComponent<ExtractPropTypes< {
1685
+ showDeleteControls: {
1686
+ type: BooleanConstructor;
1687
+ default: boolean;
1688
+ };
1689
+ mapType: {
1690
+ type: StringConstructor;
1691
+ default: string;
1692
+ };
1693
+ mapBase: {
1694
+ type: StringConstructor;
1695
+ default: string;
1696
+ };
1697
+ currentDrawType: {
1698
+ type: StringConstructor;
1699
+ default: null;
1700
+ };
1701
+ mapNameVisible: {
1702
+ type: BooleanConstructor;
1703
+ default: boolean;
1704
+ };
1705
+ contourVisible: {
1706
+ type: BooleanConstructor;
1707
+ default: boolean;
1708
+ };
1709
+ tools: {
1710
+ type: PropType<ToolItem[]>;
1711
+ default: () => ToolItem[];
1712
+ };
1713
+ showBaseSwitch: {
1714
+ type: BooleanConstructor;
1715
+ default: boolean;
1716
+ };
1717
+ }>, () => JSX.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("delete" | "toggle-map-type" | "toggle-map-base" | "start-drawing" | "toggle-map-view" | "toggle-map-name" | "toggle-contour")[], "delete" | "toggle-map-type" | "toggle-map-base" | "start-drawing" | "toggle-map-view" | "toggle-map-name" | "toggle-contour", PublicProps, Readonly<ExtractPropTypes< {
1718
+ showDeleteControls: {
1719
+ type: BooleanConstructor;
1720
+ default: boolean;
1721
+ };
1722
+ mapType: {
1723
+ type: StringConstructor;
1724
+ default: string;
1725
+ };
1726
+ mapBase: {
1727
+ type: StringConstructor;
1728
+ default: string;
1729
+ };
1730
+ currentDrawType: {
1731
+ type: StringConstructor;
1732
+ default: null;
1733
+ };
1734
+ mapNameVisible: {
1735
+ type: BooleanConstructor;
1736
+ default: boolean;
1737
+ };
1738
+ contourVisible: {
1739
+ type: BooleanConstructor;
1740
+ default: boolean;
1741
+ };
1742
+ tools: {
1743
+ type: PropType<ToolItem[]>;
1744
+ default: () => ToolItem[];
1745
+ };
1746
+ showBaseSwitch: {
1747
+ type: BooleanConstructor;
1748
+ default: boolean;
1749
+ };
1750
+ }>> & Readonly<{
1751
+ onDelete?: ((...args: any[]) => any) | undefined;
1752
+ "onToggle-map-type"?: ((...args: any[]) => any) | undefined;
1753
+ "onToggle-map-base"?: ((...args: any[]) => any) | undefined;
1754
+ "onStart-drawing"?: ((...args: any[]) => any) | undefined;
1755
+ "onToggle-map-view"?: ((...args: any[]) => any) | undefined;
1756
+ "onToggle-map-name"?: ((...args: any[]) => any) | undefined;
1757
+ "onToggle-contour"?: ((...args: any[]) => any) | undefined;
1758
+ }>, {
1759
+ mapType: string;
1760
+ showDeleteControls: boolean;
1761
+ tools: ToolItem[];
1762
+ contourVisible: boolean;
1763
+ mapBase: string;
1764
+ currentDrawType: string;
1765
+ mapNameVisible: boolean;
1766
+ showBaseSwitch: boolean;
1767
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
1768
+
1769
+ /** 组件属性 */
1770
+ export declare interface MapControlsProps {
1771
+ /** 是否显示清除绘制按钮 */
1772
+ showDeleteControls?: boolean;
1773
+ /** 当前地图类型 */
1774
+ mapType?: '3d' | '2d';
1775
+ /** 当前底图类型 */
1776
+ mapBase?: 'bigemap' | 'geoserver';
1777
+ /** 当前激活的绘制类型 */
1778
+ currentDrawType?: DrawType | null;
1779
+ /** 是否显示地图名称注记图层("地图名称"开关状态,默认关闭) */
1780
+ mapNameVisible?: boolean;
1781
+ /** 等高线开关状态(仅 3D 模式显示与生效) */
1782
+ contourVisible?: boolean;
1783
+ /** 绘制工具列表 */
1784
+ tools?: MapToolItem[];
1785
+ /** 是否启用生产/物探底图切换(已配置生产地图源信息时为 true) */
1786
+ showBaseSwitch?: boolean;
1787
+ }
1788
+
1789
+ /** MapError 组件 */
1790
+ export declare const MapError: DefineComponent<ExtractPropTypes< {
1791
+ visible: {
1792
+ type: BooleanConstructor;
1793
+ default: boolean;
1794
+ };
1795
+ title: {
1796
+ type: StringConstructor;
1797
+ default: string;
1798
+ };
1799
+ message: {
1800
+ type: StringConstructor;
1801
+ default: string;
1802
+ };
1803
+ }>, () => JSX.Element | null, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, "retry"[], "retry", PublicProps, Readonly<ExtractPropTypes< {
1804
+ visible: {
1805
+ type: BooleanConstructor;
1806
+ default: boolean;
1807
+ };
1808
+ title: {
1809
+ type: StringConstructor;
1810
+ default: string;
1811
+ };
1812
+ message: {
1813
+ type: StringConstructor;
1814
+ default: string;
1815
+ };
1816
+ }>> & Readonly<{
1817
+ onRetry?: ((...args: any[]) => any) | undefined;
1818
+ }>, {
1819
+ visible: boolean;
1820
+ title: string;
1821
+ message: string;
1822
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
1823
+
1824
+ /** 自定义错误类 */
1825
+ export declare class MapErrorClass extends Error {
1826
+ code: ErrorCode;
1827
+ details?: any;
1828
+ constructor(message: string, code: ErrorCode, details?: any);
1829
+ }
1830
+
1831
+ /**
1832
+ * MapError - 地图错误状态组件(TSX)
1833
+ * 初始化失败等致命错误时替换加载动画展示:图标 + 标题 + 描述 + 重试按钮。
1834
+ * 视觉语言与 GameLoading 一致(暗色卡片 / 系统蓝强调 / 双层阴影)。
1835
+ */
1836
+ /** 组件属性 */
1837
+ export declare interface MapErrorProps {
1838
+ /** 是否显示 */
1839
+ visible?: boolean;
1840
+ /** 错误标题 */
1841
+ title?: string;
1842
+ /** 错误描述 */
1843
+ message?: string;
1844
+ }
1845
+
1846
+ /** 地图事件类型 */
1847
+ export declare interface MapEvents {
1848
+ 'map:ready': void;
1849
+ 'map:click': MousePosition;
1850
+ 'map:move': MousePosition;
1851
+ 'map:camera-changed': CameraPosition;
1852
+ 'map:zoom-end': {
1853
+ zoom: number;
1854
+ };
1855
+ 'map:mode-changed': MapType;
1856
+ 'map:bounds-changed': Bounds;
1857
+ 'map:error': Error;
1858
+ }
1859
+
1860
+ /** 地图实例入参(支持 Ref 或直接实例) */
1861
+ declare type MapInput = Ref<MapViewer | null> | MapViewer | null | undefined;
1862
+
1863
+ export declare class MapManager {
1864
+ private static instance;
1865
+ private entries;
1866
+ private constructor();
1867
+ /**
1868
+ * 获取单例实例
1869
+ */
1870
+ static getInstance(): MapManager;
1871
+ /**
1872
+ * 注册地图实例
1873
+ */
1874
+ register(id: string, map: MapViewer, eventBus: EventBus, resourceManager: ResourceManager): void;
1875
+ /**
1876
+ * 获取地图实例
1877
+ */
1878
+ get(id: string): MapViewer | undefined;
1879
+ /**
1880
+ * 检查指定 ID 的地图实例是否已注册
1881
+ * 用于 re-entry 场景检测残留条目
1882
+ */
1883
+ has(id: string): boolean;
1884
+ /**
1885
+ * 获取事件总线
1886
+ */
1887
+ getEventBus(id: string): EventBus | undefined;
1888
+ /**
1889
+ * 获取资源管理器
1890
+ */
1891
+ getResourceManager(id: string): ResourceManager | undefined;
1892
+ /**
1893
+ * 注销地图实例
1894
+ */
1895
+ unregister(id: string): Promise<void>;
1896
+ /**
1897
+ * 获取所有地图ID
1898
+ */
1899
+ getAllMapIds(): string[];
1900
+ /**
1901
+ * 清理所有地图
1902
+ */
1903
+ cleanupAll(): Promise<void>;
1904
+ }
1905
+
1906
+ export declare const mapManager: MapManager;
1907
+
1908
+ /** 地图模式 */
1909
+ export declare type MapMode = 'normal' | 'satellite' | 'terrain';
1910
+
1911
+ /** 地图状态 */
1912
+ export declare interface MapState {
1913
+ isReady: boolean;
1914
+ isLoading: boolean;
1915
+ mapType: MapType;
1916
+ cameraPosition: CameraPosition;
1917
+ bounds: Bounds | null;
1918
+ error: Error | null;
1919
+ }
1920
+
1921
+ /** MapStatus 组件 */
1922
+ export declare const MapStatus: DefineComponent<ExtractPropTypes< {
1923
+ map: {
1924
+ type: PropType<MapViewer | Ref<MapViewer | null, MapViewer | null> | null>;
1925
+ default: null;
1926
+ };
1927
+ mapBase: {
1928
+ type: StringConstructor;
1929
+ default: string;
1930
+ };
1931
+ visible: {
1932
+ type: BooleanConstructor;
1933
+ default: boolean;
1934
+ };
1935
+ }>, () => JSX.Element | null, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes< {
1936
+ map: {
1937
+ type: PropType<MapViewer | Ref<MapViewer | null, MapViewer | null> | null>;
1938
+ default: null;
1939
+ };
1940
+ mapBase: {
1941
+ type: StringConstructor;
1942
+ default: string;
1943
+ };
1944
+ visible: {
1945
+ type: BooleanConstructor;
1946
+ default: boolean;
1947
+ };
1948
+ }>> & Readonly<{}>, {
1949
+ visible: boolean;
1950
+ map: MapViewer | Ref<MapViewer | null, MapViewer | null> | null;
1951
+ mapBase: string;
1952
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
1953
+
1954
+ /** 组件属性 */
1955
+ export declare interface MapStatusProps {
1956
+ /** 地图实例(Ref) */
1957
+ map: Ref<MapViewer | null> | MapViewer | null;
1958
+ /** 当前底图源(2D 模式显示图层名) */
1959
+ mapBase?: 'bigemap' | 'geoserver';
1960
+ /** 是否显示 */
1961
+ visible?: boolean;
1962
+ }
1963
+
1964
+ /** 工具项定义(兼容旧命名导出) */
1965
+ export declare type MapToolItem = ToolItem;
1966
+
1967
+ /** MapTools 组件 */
1968
+ export declare const MapTools: DefineComponent<ExtractPropTypes< {
1969
+ showSearch: {
1970
+ type: BooleanConstructor;
1971
+ default: boolean;
1972
+ };
1973
+ theme: {
1974
+ type: PropType<Theme>;
1975
+ default: string;
1976
+ };
1977
+ filteredList: {
1978
+ type: PropType<SearchResultItem[]>;
1979
+ default: () => never[];
1980
+ };
1981
+ showResults: {
1982
+ type: BooleanConstructor;
1983
+ default: boolean;
1984
+ };
1985
+ input: {
1986
+ type: StringConstructor;
1987
+ default: string;
1988
+ };
1989
+ isSearching: {
1990
+ type: BooleanConstructor;
1991
+ default: boolean;
1992
+ };
1993
+ searchError: {
1994
+ type: BooleanConstructor;
1995
+ default: boolean;
1996
+ };
1997
+ highlightIndex: {
1998
+ type: NumberConstructor;
1999
+ default: number;
2000
+ };
2001
+ selectedIndex: {
2002
+ type: NumberConstructor;
2003
+ default: number;
2004
+ };
2005
+ }>, () => JSX.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("result-click" | "result-hover" | "result-leave" | "search-input" | "search-focus" | "search-clear" | "search-close" | "search-navigate" | "search-select")[], "result-click" | "result-hover" | "result-leave" | "search-input" | "search-focus" | "search-clear" | "search-close" | "search-navigate" | "search-select", PublicProps, Readonly<ExtractPropTypes< {
2006
+ showSearch: {
2007
+ type: BooleanConstructor;
2008
+ default: boolean;
2009
+ };
2010
+ theme: {
2011
+ type: PropType<Theme>;
2012
+ default: string;
2013
+ };
2014
+ filteredList: {
2015
+ type: PropType<SearchResultItem[]>;
2016
+ default: () => never[];
2017
+ };
2018
+ showResults: {
2019
+ type: BooleanConstructor;
2020
+ default: boolean;
2021
+ };
2022
+ input: {
2023
+ type: StringConstructor;
2024
+ default: string;
2025
+ };
2026
+ isSearching: {
2027
+ type: BooleanConstructor;
2028
+ default: boolean;
2029
+ };
2030
+ searchError: {
2031
+ type: BooleanConstructor;
2032
+ default: boolean;
2033
+ };
2034
+ highlightIndex: {
2035
+ type: NumberConstructor;
2036
+ default: number;
2037
+ };
2038
+ selectedIndex: {
2039
+ type: NumberConstructor;
2040
+ default: number;
2041
+ };
2042
+ }>> & Readonly<{
2043
+ "onResult-click"?: ((...args: any[]) => any) | undefined;
2044
+ "onResult-hover"?: ((...args: any[]) => any) | undefined;
2045
+ "onResult-leave"?: ((...args: any[]) => any) | undefined;
2046
+ "onSearch-input"?: ((...args: any[]) => any) | undefined;
2047
+ "onSearch-focus"?: ((...args: any[]) => any) | undefined;
2048
+ "onSearch-clear"?: ((...args: any[]) => any) | undefined;
2049
+ "onSearch-close"?: ((...args: any[]) => any) | undefined;
2050
+ "onSearch-navigate"?: ((...args: any[]) => any) | undefined;
2051
+ "onSearch-select"?: ((...args: any[]) => any) | undefined;
2052
+ }>, {
2053
+ showSearch: boolean;
2054
+ input: string;
2055
+ theme: Theme;
2056
+ highlightIndex: number;
2057
+ selectedIndex: number;
2058
+ filteredList: SearchResultItem[];
2059
+ showResults: boolean;
2060
+ isSearching: boolean;
2061
+ searchError: boolean;
2062
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
2063
+
2064
+ /** 组件属性 */
2065
+ export declare interface MapToolsProps {
2066
+ /** 是否显示搜索栏(正向语义;旧版 hideSearch 兼容已由 MapContainer 归一化) */
2067
+ showSearch?: boolean;
2068
+ /** 主题(浅色/暗色),透传给 Teleport 至 body 的结果面板以应用主题变量 */
2069
+ theme?: Theme;
2070
+ /** 过滤后的结果列表 */
2071
+ filteredList?: SearchResultItem[];
2072
+ /** 是否显示结果面板 */
2073
+ showResults?: boolean;
2074
+ /** 当前搜索词(受控) */
2075
+ input?: string;
2076
+ /** 是否搜索中 */
2077
+ isSearching?: boolean;
2078
+ /** 搜索是否失败(展示错误文案而非"无结果") */
2079
+ searchError?: boolean;
2080
+ /** 高亮索引 */
2081
+ highlightIndex?: number;
2082
+ /** 选中索引 */
2083
+ selectedIndex?: number;
2084
+ }
2085
+
2086
+ /** 地图类型 */
2087
+ export declare type MapType = '2d' | '3d';
2088
+
2089
+ /** MapView 组件 */
2090
+ export declare const MapView: DefineComponent<ExtractPropTypes< {
2091
+ /** 统一地图配置(由 MapContainer 归一化后传入,单一配置源) */
2092
+ config: {
2093
+ type: PropType<Partial<MapConfig>>;
2094
+ default: undefined;
2095
+ };
2096
+ theme: {
2097
+ type: PropType<Theme | undefined>;
2098
+ default: string;
2099
+ };
2100
+ popupConfig: {
2101
+ type: PropType<PopupDisplayConfig | undefined>;
2102
+ default: () => undefined;
2103
+ };
2104
+ }>, () => JSX.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("error" | "clear-button-click" | "clear-draw" | "expose" | "draw-end" | "draw-delete" | "draw-clear" | "ready" | "init" | "point-click" | "error-retry")[], "error" | "clear-button-click" | "clear-draw" | "expose" | "draw-end" | "draw-delete" | "draw-clear" | "ready" | "init" | "point-click" | "error-retry", PublicProps, Readonly<ExtractPropTypes< {
2105
+ /** 统一地图配置(由 MapContainer 归一化后传入,单一配置源) */
2106
+ config: {
2107
+ type: PropType<Partial<MapConfig>>;
2108
+ default: undefined;
2109
+ };
2110
+ theme: {
2111
+ type: PropType<Theme | undefined>;
2112
+ default: string;
2113
+ };
2114
+ popupConfig: {
2115
+ type: PropType<PopupDisplayConfig | undefined>;
2116
+ default: () => undefined;
2117
+ };
2118
+ }>> & Readonly<{
2119
+ onError?: ((...args: any[]) => any) | undefined;
2120
+ "onClear-button-click"?: ((...args: any[]) => any) | undefined;
2121
+ "onClear-draw"?: ((...args: any[]) => any) | undefined;
2122
+ onExpose?: ((...args: any[]) => any) | undefined;
2123
+ "onDraw-end"?: ((...args: any[]) => any) | undefined;
2124
+ "onDraw-delete"?: ((...args: any[]) => any) | undefined;
2125
+ "onDraw-clear"?: ((...args: any[]) => any) | undefined;
2126
+ onReady?: ((...args: any[]) => any) | undefined;
2127
+ onInit?: ((...args: any[]) => any) | undefined;
2128
+ "onPoint-click"?: ((...args: any[]) => any) | undefined;
2129
+ "onError-retry"?: ((...args: any[]) => any) | undefined;
2130
+ }>, {
2131
+ config: Partial<MapConfig>;
2132
+ theme: Theme | undefined;
2133
+ popupConfig: PopupDisplayConfig | undefined;
2134
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
2135
+
2136
+ /** MapView 消费的 MapConfig 字段联合类型 */
2137
+ declare type MapViewConfigKey = (typeof MAP_VIEW_CONFIG_KEYS)[number];
2138
+
2139
+ /** 地图实例接口(成员类型对接 bmgl.types 受控不透明类型) */
2140
+ export declare interface MapViewer {
2141
+ scene: {
2142
+ canvas: HTMLCanvasElement;
2143
+ globe: {
2144
+ ellipsoid: BmglEllipsoid;
2145
+ tilesLoaded: boolean;
2146
+ tileLoadProgressEvent: {
2147
+ [key: string]: any;
2148
+ };
2149
+ depthTestAgainstTerrain: boolean;
2150
+ /** 地表材质(等高线功能经此切换,undefined 表示默认地表) */
2151
+ material?: BmglMaterial;
2152
+ [key: string]: any;
2153
+ };
2154
+ primitives: BmglPrimitiveCollection;
2155
+ pick: (position: BmglCartesian2) => BmglScenePick | undefined;
2156
+ [key: string]: any;
2157
+ };
2158
+ camera: {
2159
+ position: BmglCartesian3;
2160
+ changed: {
2161
+ [key: string]: any;
2162
+ };
2163
+ pickEllipsoid: (position: BmglCartesian2, ellipsoid?: BmglEllipsoid) => BmglCartesian3 | undefined;
2164
+ flyTo: (options: FlyToOptions) => void;
2165
+ setView: (options: SetViewOptions) => void;
2166
+ computeViewRectangle: () => BmglRectangle | undefined;
2167
+ [key: string]: any;
2168
+ };
2169
+ entities: {
2170
+ add: (entity: BmglEntity) => BmglEntity;
2171
+ remove: (entity: BmglEntity) => void;
2172
+ removeAll: () => void;
2173
+ getById: (id: string) => BmglEntity | undefined;
2174
+ [key: string]: any;
2175
+ };
2176
+ screenSpaceEventHandler: BmglScreenSpaceEventHandler;
2177
+ imageryLayers: BmglImageryLayerCollection;
2178
+ destroy: () => void;
2179
+ isDestroyed?: () => boolean;
2180
+ [key: string]: any;
2181
+ }
2182
+
2183
+ /** 组件钩子(事件与实例暴露) */
2184
+ export declare interface MapViewHooks {
2185
+ emit: (event: string, ...args: unknown[]) => void;
2186
+ /** 暴露地图实例 API(受 MapApi 类型约束,新增方法时编译器强制契约同步) */
2187
+ expose: (exposed: MapApi) => void;
2188
+ onPointClick: (point: Record<string, any>) => void;
2189
+ }
2190
+
2191
+ /** 组件外部属性:从 MapConfig 派生 UI 相关字段(单一配置源),补充视图编排专有字段 */
2192
+ export declare interface MapViewProps extends Pick<MapConfig, MapViewConfigKey> {
2193
+ /** 主题(浅色/暗色,默认暗色) */
2194
+ theme?: Theme;
2195
+ /** 弹窗展示配置(字段/主题色) */
2196
+ popupConfig?: PopupDisplayConfig;
2197
+ }
2198
+
2199
+ /** 遮罩反选配置(全部可选,缺省值见 DEFAULT_MASK_CONFIG) */
2200
+ export declare interface MaskConfig {
2201
+ /** 遮罩填充色,默认 #000000 */
2202
+ fillColor?: string;
2203
+ /** 遮罩填充透明度(0 ~ 1),默认 0.8 */
2204
+ fillAlpha?: number;
2205
+ /** 保留区域边界发光线颜色,默认 #44d5ff */
2206
+ outlineColor?: string;
2207
+ /** 保留区域边界发光线透明度,默认 1 */
2208
+ outlineAlpha?: number;
2209
+ /** 保留区域边界发光线宽(px),默认 4 */
2210
+ outlineWidth?: number;
2211
+ /** 是否绘制保留区域边界发光线,默认 true */
2212
+ showOutline?: boolean;
2213
+ /** 遮罩覆盖范围外环:默认根据保留区域边界自动外扩推导(避开整环球无法渲染);可显式指定更大覆盖(含全球) */
2214
+ outerRing?: Coordinate[];
2215
+ }
2216
+
2217
+ /** 遮罩反选对外状态(响应式) */
2218
+ export declare interface MaskState {
2219
+ /** 遮罩是否显示中 */
2220
+ visible: boolean;
2221
+ /** 是否已设置遮罩边界 */
2222
+ hasMask: boolean;
2223
+ /** 保留区域边界顶点数 */
2224
+ boundaryCount: number;
2225
+ }
2226
+
2227
+ /** 切换到 3D 模式后设置视图的延迟(ms) */
2228
+ export declare const MORPH_3D_DELAY = 800;
2229
+
2230
+ /** 鼠标位置 */
2231
+ export declare interface MousePosition extends Position {
2232
+ position: BmglCartesian3;
2233
+ screenX?: number;
2234
+ screenY?: number;
2235
+ }
2236
+
2237
+ /** NoResultsPanel 组件 */
2238
+ export declare const NoResultsPanel: DefineComponent<ExtractPropTypes< {
2239
+ keyword: {
2240
+ type: StringConstructor;
2241
+ default: string;
2242
+ };
2243
+ error: {
2244
+ type: BooleanConstructor;
2245
+ default: boolean;
2246
+ };
2247
+ }>, () => JSX.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, "clear"[], "clear", PublicProps, Readonly<ExtractPropTypes< {
2248
+ keyword: {
2249
+ type: StringConstructor;
2250
+ default: string;
2251
+ };
2252
+ error: {
2253
+ type: BooleanConstructor;
2254
+ default: boolean;
2255
+ };
2256
+ }>> & Readonly<{
2257
+ onClear?: ((...args: any[]) => any) | undefined;
2258
+ }>, {
2259
+ error: boolean;
2260
+ keyword: string;
2261
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
2262
+
2263
+ /**
2264
+ * NoResultsPanel - 无结果/查询失败提示面板(TSX)
2265
+ * 搜索无匹配结果时展示空状态提示(含后续引导),
2266
+ * 查询失败(error)时展示错误文案供用户排障,供 MapTools 通过 Teleport 使用。
2267
+ */
2268
+ /** 组件属性 */
2269
+ export declare interface NoResultsPanelProps {
2270
+ /** 搜索关键字 */
2271
+ keyword: string;
2272
+ /** 是否为查询失败(区别于无匹配结果) */
2273
+ error?: boolean;
2274
+ }
2275
+
2276
+ /** 归一化后的遮罩配置(outerRing 可选,运行时按保留区域自动推导) */
2277
+ declare type NormalizedMaskConfig = Omit<Required<MaskConfig>, 'outerRing'> & {
2278
+ /** 遮罩覆盖范围外环:默认根据保留区域边界自动外扩推导(避开整环球无法渲染);可显式指定更大覆盖(含全球) */
2279
+ outerRing?: Coordinate[];
2280
+ };
2281
+
2282
+ /** 合并默认遮罩配置 */
2283
+ export declare function normalizeMaskConfig(config?: Partial<MaskConfig>): NormalizedMaskConfig;
2284
+
2285
+ /** 合并默认轨迹配置 */
2286
+ export declare function normalizeTrajectoryConfig(config?: Partial<TrajectoryConfig>): Required<TrajectoryConfig>;
2287
+
2288
+ /** 操作类型 */
2289
+ export declare type OperationType = 'draw' | 'edit' | 'select' | 'cancel' | 'delete' | 'clear';
2290
+
2291
+ /** 性能配置 */
2292
+ export declare const PERFORMANCE_CONFIG: {
2293
+ /** 点位批量加载批次大小(批内含 Canvas 标签纹理绘制,过大易阻塞主线程) */
2294
+ readonly BATCH_SIZE: 200;
2295
+ /** 点位加载让出主线程的时间预算(ms):累计执行达预算才让出,
2296
+ * 避免无标签等轻量点位场景下"让出开销 > 批内工作开销"拖慢整体加载 */
2297
+ readonly YIELD_BUDGET_MS: 8;
2298
+ /** 搜索输入防抖延迟(ms) */
2299
+ readonly DEBOUNCE_DELAY: 300;
2300
+ /** 点位网格索引的网格尺寸(经纬度) */
2301
+ readonly GRID_SIZE: 0.1;
2302
+ };
2303
+
2304
+ /** 点位点击事件 */
2305
+ export declare interface PointClickEvent {
2306
+ point: BasePointConfig;
2307
+ position: {
2308
+ lng: number;
2309
+ lat: number;
2310
+ altitude?: number;
2311
+ };
2312
+ screenPosition?: {
2313
+ x: number;
2314
+ y: number;
2315
+ };
2316
+ }
2317
+
2318
+ /** 点位配置 */
2319
+ export declare interface PointConfig {
2320
+ width?: number;
2321
+ height?: number;
2322
+ fieldMapping?: {
2323
+ lng?: string;
2324
+ lat?: string;
2325
+ altitude?: string;
2326
+ id?: string;
2327
+ [key: string]: string | undefined;
2328
+ };
2329
+ }
2330
+
2331
+ /** 点位数据 */
2332
+ export declare interface PointData extends Coordinate {
2333
+ id: string;
2334
+ /** 图标图片载荷:基础图标为 SVG data URL,合成文字图标为 HTMLCanvasElement */
2335
+ icon: string | HTMLCanvasElement;
2336
+ name?: string;
2337
+ status?: number | string;
2338
+ [key: string]: any;
2339
+ }
2340
+
2341
+ /** 点位事件 */
2342
+ export declare interface PointEvents {
2343
+ 'point:loaded': PointData[];
2344
+ 'point:clicked': PointData;
2345
+ 'point:hover': PointData;
2346
+ 'point:updated': PointData[];
2347
+ }
2348
+
2349
+ /** 点位悬停事件 */
2350
+ export declare interface PointHoverEvent {
2351
+ point: BasePointConfig;
2352
+ position: {
2353
+ lng: number;
2354
+ lat: number;
2355
+ altitude?: number;
2356
+ };
2357
+ screenPosition?: {
2358
+ x: number;
2359
+ y: number;
2360
+ };
2361
+ type: 'enter' | 'leave';
2362
+ }
2363
+
2364
+ /** 面向点位的批量图标创建条目(随点位基础信息传入) */
2365
+ export declare interface PointIconItem {
2366
+ /** 点位标识(用于结果回填定位,可选) */
2367
+ id?: string | number;
2368
+ /** 直接指定图标颜色(优先于 status 映射) */
2369
+ color?: string;
2370
+ /** 业务状态:未传 color 时按状态色映射取色 */
2371
+ status?: string | number;
2372
+ /** 点位名称 */
2373
+ name?: string;
2374
+ /** 是否将名称合成进图标(文字在上、图标在下);为 true 且 name 非空时生效 */
2375
+ showName?: boolean;
2376
+ /** 可选:覆盖基础 SVG 模板(默认使用 iconManager.initialize 注入的模板);
2377
+ * 支持同一任务内使用多个不同基础 SVG 图标(按 "SVG|颜色" 独立去重并单例生成) */
2378
+ svg?: string;
2379
+ }
2380
+
2381
+ /** DivLayer 点击事件载荷(position/detail 为 bmgl 不透明对象) */
2382
+ declare interface PopupClickEvent {
2383
+ position: unknown;
2384
+ detail: unknown;
2385
+ }
2386
+
2387
+ /**
2388
+ * 弹窗类型定义
2389
+ */
2390
+ /** 弹窗配置 */
2391
+ export declare interface PopupConfig {
2392
+ /** 弹窗水平偏移量(像素) */
2393
+ offsetX?: number;
2394
+ /** 弹窗垂直偏移量(像素) */
2395
+ offsetY?: number;
2396
+ /** 自定义 CSS 类名 */
2397
+ className?: string;
2398
+ }
2399
+
2400
+ /** 弹窗展示配置(外部可配置字段与主题色) */
2401
+ declare interface PopupDisplayConfig {
2402
+ /** 展示字段列表(未配置时使用内置点位字段) */
2403
+ fields?: PopupFieldConfig[];
2404
+ /** 弹窗主题色(十六进制或任意 CSS 色值,用于顶部色条、详情按钮等强调元素) */
2405
+ themeColor?: string;
2406
+ }
2407
+
2408
+ /** 弹窗展示字段配置(外部可配置弹窗内容) */
2409
+ declare interface PopupFieldConfig {
2410
+ /** 字段 key(取点位数据属性) */
2411
+ key: string;
2412
+ /** 显示标签 */
2413
+ label: string;
2414
+ /** 值格式化:内置格式(经纬度/高程/默认)或自定义函数 */
2415
+ format?: 'default' | 'lng' | 'lat' | 'altitude' | ((value: unknown, data: PopupPointData) => string);
2416
+ }
2417
+
2418
+ /** 弹窗点位数据 */
2419
+ export declare interface PopupPointData {
2420
+ /** 线名 */
2421
+ lineCode?: string;
2422
+ /** 线号 */
2423
+ lineNo?: string;
2424
+ /** 点号 */
2425
+ pointNo?: string;
2426
+ /** 状态编码 */
2427
+ status?: number;
2428
+ /** 经度 */
2429
+ lng?: number;
2430
+ /** 纬度 */
2431
+ lat?: number;
2432
+ /** 高程 */
2433
+ altitude?: number;
2434
+ /** 扩展数据(仅在回调时返回) */
2435
+ ext?: Record<string, unknown>;
2436
+ /** 其他任意字段 */
2437
+ [key: string]: any;
2438
+ }
2439
+
2440
+ /** 位置信息 */
2441
+ export declare interface Position extends Coordinate {
2442
+ height?: number;
2443
+ }
2444
+
2445
+ /** 地图就绪后的延迟(ms),用于等待渲染稳定 */
2446
+ export declare const READY_DELAY = 500;
2447
+
2448
+ /**
2449
+ * 由矩形的两个对角点生成 5 点闭合路径([lng, lat][] 格式)
2450
+ */
2451
+ export declare function rectangleToPath(point1: {
2452
+ lng: number;
2453
+ lat: number;
2454
+ }, point2: {
2455
+ lng: number;
2456
+ lat: number;
2457
+ }): [number, number][];
2458
+
2459
+ /** 注册自定义绘制工具(或覆盖内置工具元数据 / 配置) */
2460
+ export declare function registerDrawTool(entry: DrawToolRegistryEntry): void;
2461
+
2462
+ /** 根据配置解析资源的完整 URL(serverUrl 由使用方传入,缺失时给出明确报错) */
2463
+ export declare function resolveUrl(config: LibConfig, serverUrl: string, libsUrl: string): string;
2464
+
2465
+ export declare class ResourceManager {
2466
+ private resources;
2467
+ /**
2468
+ * 注册资源清理函数
2469
+ */
2470
+ register(cleanup: CleanupFn): void;
2471
+ /**
2472
+ * 注销资源清理函数
2473
+ */
2474
+ unregister(cleanup: CleanupFn): void;
2475
+ /**
2476
+ * 清理所有资源
2477
+ * 等待所有(含异步)清理函数完成后再清空集合
2478
+ */
2479
+ cleanup(): Promise<void>;
2480
+ /**
2481
+ * 获取资源数量
2482
+ */
2483
+ getResourceCount(): number;
2484
+ }
2485
+
2486
+ /** 脚本加载器类 */
2487
+ export declare class ScriptLoader {
2488
+ /** 已加载完成的资源 URL */
2489
+ private loaded;
2490
+ /** 正在加载中的资源 Promise */
2491
+ private pending;
2492
+ /** 加载单个 JS 资源(带超时;失败时移除标签,保证重试不会因残留 DOM 假成功) */
2493
+ private loadJs;
2494
+ /** 加载单个 CSS 资源(带超时;失败时移除标签) */
2495
+ private loadCss;
2496
+ /** 加载单个资源(去重 + 并发去重) */
2497
+ private loadResource;
2498
+ /** 递归加载依赖后加载当前资源 */
2499
+ private loadWithDependencies;
2500
+ /** 批量加载多个脚本(顶层无依赖的库并行加载,依赖链内部保持顺序;共享依赖经 pending 去重) */
2501
+ loadScripts(scriptKeys: string[], serverUrl?: string, libsUrl?: string, customConfigs?: Record<string, Partial<LibConfig>>): Promise<void>;
2502
+ /** 检查某资源是否已加载 */
2503
+ isLoaded(scriptKey: string, serverUrl?: string, libsUrl?: string): boolean;
2504
+ /** 清空已加载记录(测试与热重载使用) */
2505
+ clearLoaded(): void;
2506
+ }
2507
+
2508
+ /** 脚本加载器单例 */
2509
+ export declare const scriptLoader: ScriptLoader;
2510
+
2511
+ export declare interface SearchCircle {
2512
+ type: 'circle';
2513
+ center: [number, number];
2514
+ radius: number;
2515
+ }
2516
+
2517
+ /** 搜索结果项 */
2518
+ declare interface SearchItem {
2519
+ id?: string | number;
2520
+ name?: string;
2521
+ lng?: number;
2522
+ lat?: number;
2523
+ altitude?: number;
2524
+ [key: string]: any;
2525
+ }
2526
+
2527
+ export declare interface SearchPolygon {
2528
+ /** polygon / triangle 均以顶点序列表示(搜索语义一致) */
2529
+ type: 'polygon' | 'triangle';
2530
+ coordinates: [number, number][];
2531
+ }
2532
+
2533
+ export declare interface SearchRectangle {
2534
+ type: 'rectangle';
2535
+ coordinates: [number, number][];
2536
+ }
2537
+
2538
+ /**
2539
+ * 地图搜索工具类型定义
2540
+ */
2541
+ /** 搜索结果项 */
2542
+ export declare interface SearchResultItem {
2543
+ id?: string | number;
2544
+ name?: string;
2545
+ lng?: number;
2546
+ lat?: number;
2547
+ altitude?: number;
2548
+ [key: string]: any;
2549
+ }
2550
+
2551
+ /** SearchResultsPanel 组件 */
2552
+ export declare const SearchResultsPanel: DefineComponent<ExtractPropTypes< {
2553
+ list: {
2554
+ type: PropType<SearchResultItem[]>;
2555
+ default: () => never[];
2556
+ };
2557
+ highlightIndex: {
2558
+ type: NumberConstructor;
2559
+ default: number;
2560
+ };
2561
+ selectedIndex: {
2562
+ type: NumberConstructor;
2563
+ default: number;
2564
+ };
2565
+ }>, () => JSX.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("result-click" | "result-hover" | "result-leave")[], "result-click" | "result-hover" | "result-leave", PublicProps, Readonly<ExtractPropTypes< {
2566
+ list: {
2567
+ type: PropType<SearchResultItem[]>;
2568
+ default: () => never[];
2569
+ };
2570
+ highlightIndex: {
2571
+ type: NumberConstructor;
2572
+ default: number;
2573
+ };
2574
+ selectedIndex: {
2575
+ type: NumberConstructor;
2576
+ default: number;
2577
+ };
2578
+ }>> & Readonly<{
2579
+ "onResult-click"?: ((...args: any[]) => any) | undefined;
2580
+ "onResult-hover"?: ((...args: any[]) => any) | undefined;
2581
+ "onResult-leave"?: ((...args: any[]) => any) | undefined;
2582
+ }>, {
2583
+ list: SearchResultItem[];
2584
+ highlightIndex: number;
2585
+ selectedIndex: number;
2586
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
2587
+
2588
+ /** 组件属性 */
2589
+ export declare interface SearchResultsPanelProps {
2590
+ /** 结果列表 */
2591
+ list: SearchResultItem[];
2592
+ /** 高亮索引 */
2593
+ highlightIndex: number;
2594
+ /** 选中索引 */
2595
+ selectedIndex: number;
2596
+ }
2597
+
2598
+ /** 搜索形状 */
2599
+ export declare type SearchShape = SearchRectangle | SearchCircle | SearchPolygon;
2600
+
2601
+ /**
2602
+ * 设置 bmgl 实例(通常在脚本加载完成后由 useMap 调用)
2603
+ */
2604
+ export declare function setBmgl(instance: Bmgl): void;
2605
+
2606
+ /** 设置日志级别 */
2607
+ export declare function setLogLevel(level: LogLevel): void;
2608
+
2609
+ /** 视图设置选项 */
2610
+ export declare interface SetViewOptions {
2611
+ destination: BmglCartesian3;
2612
+ orientation?: {
2613
+ heading: number;
2614
+ pitch: number;
2615
+ roll: number;
2616
+ };
2617
+ }
2618
+
2619
+ /** 状态颜色映射 */
2620
+ export declare const STATUS_COLOR_MAP: Record<number | string, {
2621
+ color: string;
2622
+ text: string;
2623
+ }>;
2624
+
2625
+ /**
2626
+ * 图标管理器类型定义
2627
+ * 定义图标生成相关的配置、结果与缓存数据结构。
2628
+ */
2629
+ /** 状态颜色映射:状态 -> 颜色 */
2630
+ export declare interface StatusColorMap {
2631
+ [key: string]: string;
2632
+ [key: number]: string;
2633
+ default: string;
2634
+ }
2635
+
2636
+ /** 样式配置 */
2637
+ export declare interface StyleConfig {
2638
+ fillColor?: string;
2639
+ fillAlpha?: number;
2640
+ strokeColor?: string;
2641
+ strokeAlpha?: number;
2642
+ strokeWidth?: number;
2643
+ }
2644
+
2645
+ /** 文本搜索配置 */
2646
+ export declare interface TextSearchConfig {
2647
+ /** 搜索字段,支持单个字段或字段数组(任一字段命中即返回) */
2648
+ field: string | string[];
2649
+ keyword: string;
2650
+ limit?: number;
2651
+ caseSensitive?: boolean;
2652
+ }
2653
+
2654
+ /** 主题类型:浅色 / 暗色 */
2655
+ export declare type Theme = 'dark' | 'light';
2656
+
2657
+ /** 工具栏工具项定义 */
2658
+ declare interface ToolItem {
2659
+ /** 绘制类型(图标名) */
2660
+ icon: DrawType;
2661
+ /** 工具名称 */
2662
+ name: string;
2663
+ /** 图标尺寸 */
2664
+ size: number;
2665
+ }
2666
+ export { ToolItem as MapToolItemType }
2667
+ export { ToolItem }
2668
+
2669
+ /**
2670
+ * 轨迹回放类型定义
2671
+ * TrackPoint / TrajectoryConfig / TrajectoryState 等统一由外部(types 出口 / MapApi)消费。
2672
+ */
2673
+ /** 轨迹采样点(lng/lat 必填;altitude 可选;time 可选秒,缺省按 interval 推断) */
2674
+ export declare interface TrackPoint {
2675
+ lng: number;
2676
+ lat: number;
2677
+ altitude?: number;
2678
+ /** 相对轨迹起点的秒数(可缺省,缺省时按 interval 等间隔推断) */
2679
+ time?: number;
2680
+ }
2681
+
2682
+ /** 轨迹回放配置(全部可选,缺省值见 DEFAULT_TRAJECTORY_CONFIG) */
2683
+ export declare interface TrajectoryConfig {
2684
+ /** 加载后自动播放,默认 false */
2685
+ autoPlay?: boolean;
2686
+ /** 播放速度倍率,默认 1 */
2687
+ speed?: number;
2688
+ /** 循环播放(到达终点后回到起点继续),默认 false */
2689
+ loop?: boolean;
2690
+ /** 相机跟随标记(顶视垂直跟随),默认 false */
2691
+ follow?: boolean;
2692
+ /** 跟随视角相机高度(m),默认 2000 */
2693
+ followHeight?: number;
2694
+ /** 已走过尾迹时长(秒);0 表示保留起点到当前的整段,默认 10 */
2695
+ trailTime?: number;
2696
+ /** 总时长(秒)覆盖;缺省按时间表推算 */
2697
+ duration?: number;
2698
+ /** 无 time 字段时点间间隔(秒),默认 1 */
2699
+ interval?: number;
2700
+ /** 移动标记颜色,默认 #ff3b30 */
2701
+ markerColor?: string;
2702
+ /** 移动标记大小(px),默认 12 */
2703
+ markerSize?: number;
2704
+ /** 可选移动标记图片 URL(缺省为圆点);图标保持图片原始朝向(车头朝右),与官方示例一致 */
2705
+ markerIcon?: string;
2706
+ /** 路径线颜色,默认 #0a84ff */
2707
+ lineColor?: string;
2708
+ /** 路径线宽(px),默认 4 */
2709
+ lineWidth?: number;
2710
+ /** 显示折线抽稀上限(点数过多时按等距步长抽稀,保证渲染性能),默认 20000 */
2711
+ maxPoints?: number;
2712
+ }
2713
+
2714
+ /** 轨迹回放所需的库加载参数(serverUrl/libsUrl 透传至 ScriptLoader 解析本地库路径) */
2715
+ declare interface TrajectoryDeps {
2716
+ /** 地图资源服务器地址(本地库不依赖,可省略) */
2717
+ serverUrl?: string;
2718
+ /** 本地库路径前缀,默认 /libs */
2719
+ libsUrl?: string;
2720
+ }
2721
+
2722
+ /** 轨迹回放对外状态(响应式) */
2723
+ export declare interface TrajectoryState {
2724
+ /** 回放状态 */
2725
+ status: TrajectoryStatus;
2726
+ /** 当前已播放秒(0 ~ duration) */
2727
+ currentTime: number;
2728
+ /** 总时长(秒) */
2729
+ duration: number;
2730
+ /** 播放进度(0 ~ 1) */
2731
+ progress: number;
2732
+ /** 有效采样点数 */
2733
+ pointCount: number;
2734
+ }
2735
+
2736
+ /** 轨迹回放状态 */
2737
+ export declare type TrajectoryStatus = 'idle' | 'playing' | 'paused' | 'ended';
2738
+
2739
+ /**
2740
+ * 地图核心 Hook
2741
+ *
2742
+ * @param config 地图配置
2743
+ * @returns 地图状态与操作方法集合
2744
+ */
2745
+ export declare function useMap(config: MapConfig): {
2746
+ map: Ref<MapViewer | null, MapViewer | null>;
2747
+ state: Ref<MapState, MapState>;
2748
+ initMap: () => Promise<void>;
2749
+ setView: (lng: number, lat: number, height?: number) => void;
2750
+ toggleMapType: () => void;
2751
+ destroy: () => Promise<void>;
2752
+ on: <K extends string>(event: K, handler: EventHandler<any>) => () => void;
2753
+ once: <K_1 extends string>(event: K_1, handler: EventHandler<any>) => () => void;
2754
+ off: <K_2 extends string>(event: K_2, handler?: EventHandler<any> | undefined) => void;
2755
+ emit: <K_3 extends string>(event: K_3, data?: any) => Promise<void>;
2756
+ };
2757
+
2758
+ export declare function useMapCircleWave(map: Ref<MapViewer | null> | MapViewer | null): {
2759
+ addWave: (params: AddWaveParams) => string;
2760
+ removeWave: (waveId: string) => boolean;
2761
+ };
2762
+
2763
+ /**
2764
+ * 等高线显示控制
2765
+ * @param map 地图实例引用
2766
+ * @param config 等高线配置(可选项,未配置使用默认常量)
2767
+ */
2768
+ export declare function useMapContour(map: Ref<MapViewer | null>, config?: Partial<ContourConfig>): UseMapContourResult;
2769
+
2770
+ /** useMapContour 返回值 */
2771
+ declare interface UseMapContourResult {
2772
+ /** 等高线开关状态 */
2773
+ contourVisible: Ref<boolean>;
2774
+ /** 切换等高线显隐(立即应用/移除材质) */
2775
+ setContourVisible: (visible: boolean) => void;
2776
+ /** 按当前开关状态重新应用材质(切回 3D 时恢复等高线) */
2777
+ reapply: () => void;
2778
+ /** 移除等高线材质(切到 2D 时调用,不改开关状态) */
2779
+ remove: () => void;
2780
+ }
2781
+
2782
+ /**
2783
+ * 地图绘图工具 Hook
2784
+ *
2785
+ * @param map - 地图实例(支持 Ref 或直接实例)
2786
+ * @param config - 绘图配置
2787
+ * @returns 绘图工具 API
2788
+ */
2789
+ export declare function useMapDraw(map: Ref<any> | any, config?: DrawConfig): {
2790
+ startDrawing: (drawType: DrawType) => void;
2791
+ cancelDrawing: () => void;
2792
+ removeDrawing: (targetId?: string) => void;
2793
+ clearAllDrawings: () => void;
2794
+ setCallback: (callback: DrawCallback) => void;
2795
+ getDrawingStatus: () => {
2796
+ isDrawing: boolean;
2797
+ isEditing: boolean;
2798
+ currentDrawId: string;
2799
+ currentDrawType: DrawType | null;
2800
+ drawInstance: boolean;
2801
+ editInstance: boolean;
2802
+ };
2803
+ getIsDrawing: () => boolean;
2804
+ initialize: () => void;
2805
+ cleanup: () => void;
2806
+ };
2807
+
2808
+ /** 实体管理 Hook */
2809
+ export declare function useMapEntity(map: Ref<MapViewer | null>): {
2810
+ drawEntity: (options: EntityOptions) => Promise<string | null>;
2811
+ updateEntity: (entityId: string, updates: Partial<EntityOptions>) => Promise<boolean>;
2812
+ deleteEntity: (id?: string) => boolean;
2813
+ redrawAllEntities: () => void;
2814
+ getCurrentEntityId: () => string;
2815
+ };
2816
+
2817
+ /**
2818
+ * 地图图层管理 Hook
2819
+ *
2820
+ * @param map - 地图实例 Ref
2821
+ * @returns 图层管理 API
2822
+ */
2823
+ export declare function useMapLayers(map: Ref<MapViewer | null>): {
2824
+ addImageryLayer: (mapId: string) => BmglImageryLayer;
2825
+ addWmtsLayer: (url: string, layerName?: string) => BmglImageryLayer;
2826
+ removeLayer: (layerOrName: string | BmglImageryLayer) => boolean;
2827
+ removeAllLayers: () => void;
2828
+ setLayerVisible: (layerOrName: string | BmglImageryLayer, visible: boolean) => boolean;
2829
+ setLayerOpacity: (layerOrName: string | BmglImageryLayer, opacity: number) => boolean;
2830
+ getAllLayers: () => {
2831
+ name: string;
2832
+ layer: BmglImageryLayer;
2833
+ }[];
2834
+ };
2835
+
2836
+ /**
2837
+ * 3D 自动光源控制
2838
+ * @param map 地图实例引用
2839
+ * @param config 默认配置(enabled 默认 false;周期边界与当前时间提供器可覆盖)
2840
+ * @param options 运行选项(is3D 判定)
2841
+ */
2842
+ export declare function useMapLighting(map: Ref<MapViewer | null>, config?: Partial<LightingConfig>, options?: UseMapLightingOptions): UseMapLightingResult;
2843
+
2844
+ /** useMapLighting 选项 */
2845
+ declare interface UseMapLightingOptions {
2846
+ /** 是否处于 3D 模式(光源仅在 3D 生效);缺省视为始终 3D */
2847
+ is3D?: Ref<boolean>;
2848
+ }
2849
+
2850
+ /** useMapLighting 返回值 */
2851
+ export declare interface UseMapLightingResult {
2852
+ /** 光源状态(响应式:enabled/mode/period/hour) */
2853
+ state: Ref<LightingState>;
2854
+ /** 开启/关闭光源(auto 模式按系统时间智能判定周期;关闭还原开启前光照) */
2855
+ setEnabled: (enabled: boolean) => void;
2856
+ /** 周期来源:'auto'=按系统时间自动判断;或手动指定 day/dusk/night */
2857
+ setPeriod: (period: LightingPeriod | 'auto') => void;
2858
+ /** 按当前时间与环境重应用(模式切换/初始化后调用以生效) */
2859
+ apply: () => void;
2860
+ /** 彻底清理(还原默认光照并关闭开关) */
2861
+ destroy: () => void;
2862
+ }
2863
+
2864
+ /**
2865
+ * 遮罩反选控制
2866
+ * @param map 地图实例引用
2867
+ * @param config 默认配置(可选项,setMask 时可按边界单独覆盖)
2868
+ */
2869
+ export declare function useMapMask(map: Ref<MapViewer | null>, config?: Partial<MaskConfig>): UseMapMaskResult;
2870
+
2871
+ /** useMapMask 返回值 */
2872
+ export declare interface UseMapMaskResult {
2873
+ /** 遮罩状态(响应式) */
2874
+ state: Ref<MaskState>;
2875
+ /** 设置遮罩反选(boundary 为保留区域边界环,可覆盖默认配置) */
2876
+ setMask: (boundary: Coordinate[], config?: Partial<MaskConfig>) => void;
2877
+ /** 切换遮罩显隐(保留边界数据) */
2878
+ setVisible: (visible: boolean) => void;
2879
+ /** 移除遮罩并复位状态 */
2880
+ clear: () => void;
2881
+ /** 按当前模式重建可视化(模式切换后由内部自动调用,也支持手动调用) */
2882
+ reapply: () => void;
2883
+ /** 移除可视化实体(保留边界数据与显隐状态,供卸载等场景) */
2884
+ remove: () => void;
2885
+ /** 彻底清理(移除实体 + 取消模式监听 + 复位状态) */
2886
+ destroy: () => void;
2887
+ }
2888
+
2889
+ /** 点位管理 Hook */
2890
+ export declare function useMapPoint(map: Ref<MapViewer | null>): {
2891
+ loadPoints: (points: Record<string, any>[], config?: PointConfig, _searchFields?: string[], mode?: 'replace' | 'append') => Promise<void>;
2892
+ searchByShape: (shape: SearchShape) => PointData[];
2893
+ searchByText: (config: TextSearchConfig) => PointData[];
2894
+ updatePoints: (points: Record<string, any>[]) => Promise<void>;
2895
+ clearPoints: () => Promise<void>;
2896
+ };
2897
+
2898
+ /**
2899
+ * 地图弹窗管理工具 Hook
2900
+ *
2901
+ * @param map - 地图实例(支持 Ref 或直接实例)
2902
+ * @param event - DivLayer 点击事件回调
2903
+ * @param options - 可选配置(展示字段/主题色等)
2904
+ * @returns 弹窗管理工具 API
2905
+ */
2906
+ export declare function useMapPopup(map?: MapInput, event?: (pos: PopupClickEvent) => void, options?: {
2907
+ displayConfig?: PopupDisplayConfig;
2908
+ }): {
2909
+ showPointPopup: (data: PopupPointData, config?: PopupConfig) => Promise<void>;
2910
+ removePopup: () => void;
2911
+ isPopupVisible: () => boolean;
2912
+ getCurrentPopupData: () => PopupPointData | null;
2913
+ };
2914
+
2915
+ /**
2916
+ * 轨迹回放控制
2917
+ * @param map 地图实例引用
2918
+ * @param config 默认配置(可选项,load 时可按轨迹单独覆盖)
2919
+ * @param deps 按需加载辅助库所需参数(moveMarker / bm.geometryutil / bmgl-header)
2920
+ */
2921
+ export declare function useMapTrajectory(map: Ref<MapViewer | null>, config?: Partial<TrajectoryConfig>, deps?: TrajectoryDeps): UseMapTrajectoryResult;
2922
+
2923
+ /** useMapTrajectory 返回值 */
2924
+ export declare interface UseMapTrajectoryResult {
2925
+ /** 回放状态(响应式) */
2926
+ state: Ref<TrajectoryState>;
2927
+ /** 加载轨迹并创建可视化(2D/3D 均可用;成功且 autoPlay 时自动播放) */
2928
+ load: (track: TrackPoint[], config?: Partial<TrajectoryConfig>) => void;
2929
+ /** 开始/继续播放 */
2930
+ play: () => void;
2931
+ /** 暂停播放 */
2932
+ pause: () => void;
2933
+ /** 停止并回到起点 */
2934
+ stop: () => void;
2935
+ /** 调整播放速度倍率 */
2936
+ setSpeed: (speed: number) => void;
2937
+ /** 跳转到指定时间点(秒,0 ~ duration) */
2938
+ jumpTo: (time: number) => void;
2939
+ /** 移除轨迹可视化并复位状态(保留已加载轨迹数据前需再 load) */
2940
+ clear: () => void;
2941
+ /** 模式切换后按当前模式重建可视化(保留已加载轨迹与播放状态) */
2942
+ reapply: () => void;
2943
+ /** 移除可视化实体(保留轨迹数据与播放状态,供卸载等场景) */
2944
+ remove: () => void;
2945
+ /** 彻底清理(取消 rAF + 移除实体 + 复位状态) */
2946
+ destroy: () => void;
2947
+ }
2948
+
2949
+ /** 地图视图编排 Hook */
2950
+ export declare function useMapView(props: MapViewProps, hooks: MapViewHooks): {
2951
+ state: Ref<MapState, MapState>;
2952
+ map: Ref<MapViewer | null, MapViewer | null>;
2953
+ showSearch: ComputedRef<boolean>;
2954
+ showControls: ComputedRef<boolean>;
2955
+ showDeleteControls: ComputedRef<boolean>;
2956
+ showStatus: ComputedRef<boolean>;
2957
+ wmtsEnabled: ComputedRef<boolean>;
2958
+ search: {
2959
+ searchInput: Ref<string, string>;
2960
+ searchList: Ref< {
2961
+ [x: string]: any;
2962
+ id?: string | number | undefined;
2963
+ name?: string | undefined;
2964
+ lng?: number | undefined;
2965
+ lat?: number | undefined;
2966
+ altitude?: number | undefined;
2967
+ }[], SearchItem[] | {
2968
+ [x: string]: any;
2969
+ id?: string | number | undefined;
2970
+ name?: string | undefined;
2971
+ lng?: number | undefined;
2972
+ lat?: number | undefined;
2973
+ altitude?: number | undefined;
2974
+ }[]>;
2975
+ showResults: Ref<boolean, boolean>;
2976
+ isSearching: Ref<boolean, boolean>;
2977
+ searchError: Ref<boolean, boolean>;
2978
+ highlightIndex: Ref<number, number>;
2979
+ selectedIndex: Ref<number, number>;
2980
+ filteredList: ComputedRef<SearchItem[]>;
2981
+ handleInputSearch: (value: string) => void;
2982
+ handleResultClick: (item: SearchItem, index: number) => void;
2983
+ moveHighlight: (delta: 1 | -1) => void;
2984
+ selectHighlighted: () => void;
2985
+ closeResults: () => void;
2986
+ clearSearch: () => void;
2987
+ };
2988
+ onDelete: () => void;
2989
+ handleStartDrawing: (drawType: DrawType) => void;
2990
+ setMapNameVisible: (visible: boolean) => void;
2991
+ setContourVisible: (visible: boolean) => void;
2992
+ contourVisible: Ref<boolean, boolean>;
2993
+ trajectoryState: Ref<TrajectoryState, TrajectoryState>;
2994
+ maskState: Ref<MaskState, MaskState>;
2995
+ weatherState: Ref<WeatherState, WeatherState>;
2996
+ lightingState: Ref<LightingState, LightingState>;
2997
+ setTheme: (theme: Theme) => void;
2998
+ toggleMapType: () => void;
2999
+ resetView: () => void;
3000
+ toggleMapBaseLayer: () => Promise<void>;
3001
+ init: () => Promise<void>;
3002
+ mapType: Ref<"2d" | "3d", "2d" | "3d">;
3003
+ mapBase: Ref<"geoserver" | "bigemap", "geoserver" | "bigemap">;
3004
+ currentDrawType: Ref<DrawType | null, DrawType | null>;
3005
+ loadingTitle: Ref<string, string>;
3006
+ loadingSubtitle: Ref<string, string>;
3007
+ theme: Ref<Theme, Theme>;
3008
+ mapNameVisible: Ref<boolean, boolean>;
3009
+ };
3010
+
3011
+ /**
3012
+ * 天气效果控制
3013
+ * @param map 地图实例引用
3014
+ * @param config 默认配置(可选项,setWeather 时可按次覆盖)
3015
+ */
3016
+ export declare function useMapWeather(map: Ref<MapViewer | null>, config?: Partial<WeatherConfig>): UseMapWeatherResult;
3017
+
3018
+ /** useMapWeather 返回值 */
3019
+ export declare interface UseMapWeatherResult {
3020
+ /** 天气状态(响应式) */
3021
+ state: Ref<WeatherState>;
3022
+ /** 切换天气(clear=晴/无特效;rain=下雨;snow=下雪;可按调用再覆盖 opacity) */
3023
+ setWeather: (type: WeatherType, config?: Partial<WeatherConfig>) => void;
3024
+ /** 移除天气特效并复位状态 */
3025
+ clear: () => void;
3026
+ /** 彻底清理(同 clear) */
3027
+ destroy: () => void;
3028
+ }
3029
+
3030
+ /**
3031
+ * 等待 bmgl 就绪
3032
+ * 若已就绪立即返回;否则轮询 window.bmgl 直到超时
3033
+ *
3034
+ * @param timeout 超时时间(毫秒),默认 3000
3035
+ * @throws Error 超时后抛出错误
3036
+ */
3037
+ export declare function waitForBmgl(timeout?: number): Promise<Bmgl>;
3038
+
3039
+ /** 搜索结果波纹效果移除延迟(ms) */
3040
+ export declare const WAVE_REMOVE_DELAY = 10000;
3041
+
3042
+ /** 天气效果配置 */
3043
+ export declare interface WeatherConfig {
3044
+ /** 特效混合强度(透明度,0 ~ 1);缺省时按类型使用内置默认(雨 0.5 / 雪 0.3) */
3045
+ opacity?: number;
3046
+ }
3047
+
3048
+ /** 天气状态(响应式) */
3049
+ export declare interface WeatherState {
3050
+ /** 当前天气类型 */
3051
+ type: WeatherType;
3052
+ /** 是否有天气特效运行中 */
3053
+ active: boolean;
3054
+ }
3055
+
3056
+ /**
3057
+ * 天气效果类型定义
3058
+ * 基于 bmgl 全屏后处理着色器(PostProcessStage)实现,2D/3D 场景通用。
3059
+ */
3060
+ /** 天气类型 */
3061
+ export declare type WeatherType = 'clear' | 'rain' | 'snow';
3062
+
3063
+ export { }