se3dx-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1908 @@
1
+ import { App } from 'vue';
2
+ import * as Cesium from 'cesium';
3
+ import { ComponentOptionsMixin } from 'vue';
4
+ import { ComponentProvideOptions } from 'vue';
5
+ import { DefineComponent } from 'vue';
6
+ import { Emitter } from 'mitt';
7
+ import { ExtractPropTypes } from 'vue';
8
+ import { PublicProps } from 'vue';
9
+ import { ShallowRef } from 'vue';
10
+
11
+ declare const __VLS_component: DefineComponent<__VLS_Props, {
12
+ viewerInstance: ShallowRef<Se3dViewer | null, Se3dViewer | null>;
13
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
14
+ ready: (viewer: Se3dViewer) => any;
15
+ }, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
16
+ onReady?: ((viewer: Se3dViewer) => any) | undefined;
17
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {
18
+ viewerContainer: HTMLDivElement;
19
+ }, HTMLDivElement>;
20
+
21
+ declare type __VLS_Props = {
22
+ token?: string;
23
+ config?: ViewerConfig;
24
+ showLayerManager?: boolean;
25
+ };
26
+
27
+ declare type __VLS_Props_2 = {
28
+ viewer: Se3dViewer | null;
29
+ };
30
+
31
+ declare function __VLS_template(): {
32
+ attrs: Partial<{}>;
33
+ slots: {
34
+ default?(_: {}): any;
35
+ };
36
+ refs: {
37
+ viewerContainer: HTMLDivElement;
38
+ };
39
+ rootEl: HTMLDivElement;
40
+ };
41
+
42
+ declare type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
43
+
44
+ declare type __VLS_WithTemplateSlots<T, S> = T & {
45
+ new (): {
46
+ $slots: S;
47
+ };
48
+ };
49
+
50
+ declare interface AdvancedObjectOptions {
51
+ id?: string;
52
+ [key: string]: any;
53
+ }
54
+
55
+ declare interface BoreholeLayer {
56
+ depth: number;
57
+ color: string;
58
+ name: string;
59
+ }
60
+
61
+ declare interface BoreholeOptions {
62
+ position: {
63
+ longitude: number;
64
+ latitude: number;
65
+ height?: number;
66
+ };
67
+ diameter: number;
68
+ layers: BoreholeLayer[];
69
+ showLabel?: boolean;
70
+ }
71
+
72
+ export declare class EventManager implements ISe3dManager {
73
+ private viewer;
74
+ private handler;
75
+ emitter: Emitter<Events>;
76
+ constructor(viewer: Cesium.Viewer);
77
+ private initDefaultEvents;
78
+ on<Key extends keyof Events>(type: Key, handler: (event: Events[Key]) => void): void;
79
+ off<Key extends keyof Events>(type: Key, handler: (event: Events[Key]) => void): void;
80
+ destroy(): void;
81
+ clear(): void;
82
+ /**
83
+ * 激活坐标拾取工具 (一次性)
84
+ * @returns Promise<Cesium.Cartographic>
85
+ */
86
+ pickCoordinate(): Promise<Cesium.Cartographic>;
87
+ }
88
+
89
+ declare type Events = {
90
+ 'click': {
91
+ position: Cesium.Cartesian3;
92
+ object?: any;
93
+ };
94
+ 'hover': {
95
+ position: Cesium.Cartesian3;
96
+ object?: any;
97
+ };
98
+ [key: string]: any;
99
+ };
100
+
101
+ declare interface HeatmapPoint {
102
+ x: number;
103
+ y: number;
104
+ value: number;
105
+ }
106
+
107
+ /**
108
+ * Standard interface for all Se3d Managers
109
+ */
110
+ export declare interface ISe3dManager {
111
+ /**
112
+ * Completely destroy the manager and release all resources.
113
+ * After calling this, the manager instance should not be used anymore.
114
+ */
115
+ destroy(): void;
116
+ /**
117
+ * Clear all data/entities managed by this manager, but keep the instance alive.
118
+ * This is useful for resetting the state without re-creating the manager.
119
+ */
120
+ clear(): void;
121
+ }
122
+
123
+ export declare interface LayerItem {
124
+ id: string;
125
+ name: string;
126
+ type: 'imagery' | 'terrain' | '3dtiles' | 'geojson' | 'kml' | 'czml' | 'cluster';
127
+ visible: boolean;
128
+ provider: any;
129
+ }
130
+
131
+ export declare class Se3dAdvancedObjectManager implements ISe3dManager {
132
+ private viewer;
133
+ private objects;
134
+ constructor(viewer: Cesium.Viewer);
135
+ /**
136
+ * Completely destroy the manager and release all resources.
137
+ */
138
+ destroy(): void;
139
+ /**
140
+ * Clear all advanced objects
141
+ */
142
+ clear(): void;
143
+ private createDynamicWaterPrimitive;
144
+ /**
145
+ * 添加漫游路线
146
+ */
147
+ addRoamingRoute(positions: Cesium.Cartesian3[], options?: AdvancedObjectOptions): void;
148
+ /**
149
+ * 添加军标
150
+ */
151
+ addMilitarySymbol(position: Cesium.Cartesian3, options?: AdvancedObjectOptions): void;
152
+ addAttackArrow(position: Cesium.Cartesian3, options?: AdvancedObjectOptions): void;
153
+ addPincerArrow(position: Cesium.Cartesian3, options?: AdvancedObjectOptions): void;
154
+ addAssemblyArea(position: Cesium.Cartesian3, options?: AdvancedObjectOptions): void;
155
+ addFlagSymbol(position: Cesium.Cartesian3, options?: AdvancedObjectOptions): void;
156
+ /**
157
+ * 添加动态水域
158
+ */
159
+ addDynamicWater(positions: Cesium.Cartesian3[], options?: AdvancedObjectOptions): void;
160
+ /**
161
+ * 添加粒子特效
162
+ */
163
+ addParticleSystem(position: Cesium.Cartesian3, options?: AdvancedObjectOptions): void;
164
+ /**
165
+ * 添加视频投射
166
+ */
167
+ addVideoProjection(position: Cesium.Cartesian3, options?: AdvancedObjectOptions): void;
168
+ addVideoProjectionByRectangle(rectangle: [number, number, number, number], options?: AdvancedObjectOptions): void;
169
+ /**
170
+ * 更新视频投射参数
171
+ */
172
+ updateVideoProjection(id: string, options: {
173
+ fov?: number;
174
+ aspectRatio?: number;
175
+ width?: number;
176
+ height?: number;
177
+ }): void;
178
+ /**
179
+ * 添加雷达扫描
180
+ */
181
+ addRadarScan(position: Cesium.Cartesian3, options?: AdvancedObjectOptions): void;
182
+ /**
183
+ * 更新雷达扫描参数
184
+ */
185
+ updateRadarScan(id: string, options: {
186
+ radius?: number;
187
+ color?: string;
188
+ speed?: number;
189
+ }): void;
190
+ /**
191
+ * 添加卫星推演
192
+ */
193
+ addSatellite(options?: AdvancedObjectOptions): void;
194
+ /**
195
+ * 更新卫星推演参数
196
+ */
197
+ updateSatellite(id: string, options: {
198
+ showOrbit?: boolean;
199
+ altitude?: number;
200
+ }): void;
201
+ /**
202
+ * 添加流动飞线
203
+ */
204
+ addFlowingLine(positions: Cesium.Cartesian3[], options?: AdvancedObjectOptions): void;
205
+ /**
206
+ * 更新流动飞线参数
207
+ */
208
+ updateFlowingLine(id: string, options: {
209
+ width?: number;
210
+ color?: string;
211
+ speed?: number;
212
+ }): void;
213
+ /**
214
+ * 添加动态墙体
215
+ */
216
+ addDynamicWall(positions: Cesium.Cartesian3[], options?: AdvancedObjectOptions): void;
217
+ /**
218
+ * 更新动态墙体参数
219
+ */
220
+ updateDynamicWall(id: string, options: {
221
+ height?: number;
222
+ color?: string;
223
+ speed?: number;
224
+ }): void;
225
+ /**
226
+ * 添加雷达圆
227
+ */
228
+ addRadarCircle(position: Cesium.Cartesian3, options?: AdvancedObjectOptions): void;
229
+ /**
230
+ * 更新雷达圆参数
231
+ */
232
+ updateRadarCircle(id: string, options: {
233
+ radius?: number;
234
+ speed?: number;
235
+ color?: string;
236
+ }): void;
237
+ removeRoamingRoute(id: string): void;
238
+ removeMilitarySymbol(id: string): void;
239
+ removeAttackArrow(id: string): void;
240
+ removePincerArrow(id: string): void;
241
+ removeAssemblyArea(id: string): void;
242
+ removeFlagSymbol(id: string): void;
243
+ removeDynamicWater(id: string): void;
244
+ removeParticleSystem(id: string): void;
245
+ removeVideoProjection(id: string): void;
246
+ removeRadarScan(id: string): void;
247
+ removeSatellite(id: string): void;
248
+ removeFlowingLine(id: string): void;
249
+ removeDynamicWall(id: string): void;
250
+ removeRadarCircle(id: string): void;
251
+ /**
252
+ * 设置第一人称/第三人称跟随
253
+ */
254
+ setTrackedEntity(id: string | null, viewMode?: 'first' | 'third' | 'none'): void;
255
+ /**
256
+ * 更新粒子特效参数
257
+ */
258
+ updateParticleSystem(id: string, options: {
259
+ scale?: number;
260
+ rate?: number;
261
+ emissionRate?: number;
262
+ imageSize?: number;
263
+ lifetime?: number;
264
+ }): void;
265
+ /**
266
+ * 更新动态水域参数
267
+ */
268
+ updateDynamicWater(id: string, options: {
269
+ frequency?: number;
270
+ color?: string;
271
+ speed?: number;
272
+ height?: number;
273
+ }): void;
274
+ /**
275
+ * 移除对象
276
+ */
277
+ remove(id: string): void;
278
+ removeAll(): void;
279
+ }
280
+
281
+ export declare class Se3dAnalysisManager implements ISe3dManager {
282
+ private viewer;
283
+ private analysisLayer;
284
+ private viewshed3d;
285
+ private skylineStage;
286
+ constructor(viewer: Cesium.Viewer);
287
+ /**
288
+ * Completely destroy the manager and release all resources.
289
+ */
290
+ destroy(): void;
291
+ /**
292
+ * 通视分析 (Line of Sight)
293
+ * @param startPosition 起点
294
+ * @param endPosition 终点
295
+ */
296
+ addLineOfSight(startPosition: Cesium.Cartesian3, endPosition: Cesium.Cartesian3, options?: {
297
+ visibleColor?: string;
298
+ invisibleColor?: string;
299
+ lineWidth?: number;
300
+ }): Promise<void>;
301
+ /**
302
+ * 可视域分析 (Viewshed) - 简化版 (Frustum)
303
+ * @param origin 观察点
304
+ * @param target 目标点 (决定方向)
305
+ * @param options 配置
306
+ */
307
+ addViewshed(origin: Cesium.Cartesian3, targetOrOptions?: Cesium.Cartesian3 | {
308
+ fovH?: number;
309
+ fovV?: number;
310
+ distance?: number;
311
+ radius?: number;
312
+ aspectRatio?: number;
313
+ horizontalFov?: number;
314
+ verticalFov?: number;
315
+ visibleAreaColor?: string;
316
+ invisibleAreaColor?: string;
317
+ }, options?: {
318
+ fovH?: number;
319
+ fovV?: number;
320
+ distance?: number;
321
+ radius?: number;
322
+ aspectRatio?: number;
323
+ horizontalFov?: number;
324
+ verticalFov?: number;
325
+ visibleAreaColor?: string;
326
+ invisibleAreaColor?: string;
327
+ }): void;
328
+ addSkyline(options?: {
329
+ color?: string;
330
+ width?: number;
331
+ }): void;
332
+ removeSkyline(): void;
333
+ /**
334
+ * 剖面分析 (Profile Analysis)
335
+ * @param startPosition 起点
336
+ * @param endPosition 终点
337
+ * @param options 配置项
338
+ * @returns 剖面数据点数组 { distance, height, position }
339
+ */
340
+ addProfile(startPosition: Cesium.Cartesian3, endPosition: Cesium.Cartesian3, options?: {
341
+ sampleCount?: number;
342
+ color?: string;
343
+ }): Promise<Array<{
344
+ distance: number;
345
+ height: number;
346
+ position: Cesium.Cartesian3;
347
+ }>>;
348
+ /**
349
+ * 限高分析 (Height Limit)
350
+ * @param positions 区域多边形
351
+ * @param height 限制高度 (绝对高度)
352
+ * @param options 配置
353
+ */
354
+ addHeightLimit(positions: Cesium.Cartesian3[], height: number, options?: {
355
+ color?: string;
356
+ }): void;
357
+ /**
358
+ * 清除分析结果
359
+ */
360
+ clear(): void;
361
+ clearAll(): void;
362
+ /**
363
+ * 填挖方分析 (Cut & Fill Analysis)
364
+ * @param positions 区域多边形
365
+ * @param baseHeight 基准高度
366
+ * @param options 配置项
367
+ */
368
+ computeCutFill(positions: Cesium.Cartesian3[], baseHeight: number, options?: {
369
+ sampleDistance?: number;
370
+ }): Promise<{
371
+ cutVolume: number;
372
+ fillVolume: number;
373
+ area: number;
374
+ }>;
375
+ }
376
+
377
+ export declare class Se3dBuildingManager implements ISe3dManager {
378
+ private viewer;
379
+ private activeClippingPlanes;
380
+ private targetTileset;
381
+ constructor(viewer: Cesium.Viewer);
382
+ /**
383
+ * Completely destroy the manager and release all resources.
384
+ */
385
+ destroy(): void;
386
+ /**
387
+ * Clear all building effects
388
+ */
389
+ clear(): void;
390
+ /**
391
+ * Enable floor viewing by clipping the building from top
392
+ * @param tileset The 3D Tileset to clip
393
+ * @param height Height to clip at (relative to building base or absolute)
394
+ * @param inverse If true, clips bottom instead
395
+ */
396
+ setFloorClipping(tileset: Cesium.Cesium3DTileset, height: number, inverse?: boolean): void;
397
+ /**
398
+ * Highlight a specific building (feature)
399
+ */
400
+ highlightBuilding(feature: Cesium.Cesium3DTileFeature, color: Cesium.Color): void;
401
+ /**
402
+ * Clear clipping
403
+ */
404
+ clearClipping(): void;
405
+ /**
406
+ * Enter "Floor Split" mode (Exploded View)
407
+ * Note: This requires CustomShader support (Cesium 1.87+)
408
+ */
409
+ enableExplodedView(tileset: Cesium.Cesium3DTileset, floorHeight: number, expandFactor: number): void;
410
+ updateExplodedView(tileset: Cesium.Cesium3DTileset, expandFactor: number): void;
411
+ disableExplodedView(tileset: Cesium.Cesium3DTileset): void;
412
+ }
413
+
414
+ export declare class Se3dControlManager implements ISe3dManager {
415
+ private viewer;
416
+ constructor(viewer: Cesium.Viewer);
417
+ /**
418
+ * Completely destroy the manager and release all resources.
419
+ */
420
+ destroy(): void;
421
+ /**
422
+ * Clear all controls
423
+ */
424
+ clear(): void;
425
+ /**
426
+ * 设置时间轴显示状态
427
+ * @param show 是否显示
428
+ */
429
+ setTimeline(show: boolean): void;
430
+ /**
431
+ * 设置动画控件显示状态
432
+ * @param show 是否显示
433
+ */
434
+ setAnimation(show: boolean): void;
435
+ /**
436
+ * 设置全屏按钮显示状态
437
+ * @param show 是否显示
438
+ */
439
+ setFullscreenButton(show: boolean): void;
440
+ /**
441
+ * 设置VR按钮显示状态
442
+ * @param show 是否显示
443
+ */
444
+ setVRButton(show: boolean): void;
445
+ /**
446
+ * 设置主页按钮显示状态
447
+ * @param show 是否显示
448
+ */
449
+ setHomeButton(show: boolean): void;
450
+ /**
451
+ * 设置信息框显示状态
452
+ * @param show 是否显示
453
+ */
454
+ setInfoBox(show: boolean): void;
455
+ /**
456
+ * 设置选择指示器显示状态
457
+ * @param show 是否显示
458
+ */
459
+ setSelectionIndicator(show: boolean): void;
460
+ /**
461
+ * 设置导航帮助按钮显示状态
462
+ * @param show 是否显示
463
+ */
464
+ setNavigationHelpButton(show: boolean): void;
465
+ /**
466
+ * 设置场景模式拾取器显示状态
467
+ * @param show 是否显示
468
+ */
469
+ setSceneModePicker(show: boolean): void;
470
+ /**
471
+ * 设置底图选择器显示状态
472
+ * @param show 是否显示
473
+ */
474
+ setBaseLayerPicker(show: boolean): void;
475
+ /**
476
+ * 设置鼠标交互模式
477
+ * @param mode 'default' | 'google'
478
+ */
479
+ setMouseMode(mode: 'default' | 'google'): void;
480
+ /**
481
+ * 激活坐标拾取 (一次性)
482
+ * @param callback 回调函数,返回拾取的坐标信息 {lng, lat, height}
483
+ */
484
+ activateCoordinatePicking(callback: (position: {
485
+ lng: number;
486
+ lat: number;
487
+ height: number;
488
+ }) => void): void;
489
+ }
490
+
491
+ export declare class Se3dDrawTool implements ISe3dManager {
492
+ private viewer;
493
+ private handler;
494
+ private activeShapePoints;
495
+ private activeShape;
496
+ private floatingPoint;
497
+ private drawingMode;
498
+ private resolvePromise;
499
+ private drawnEntities;
500
+ constructor(viewer: Cesium.Viewer);
501
+ /**
502
+ * 开始绘制
503
+ * @param type 绘制类型
504
+ * @param style 样式配置
505
+ */
506
+ startDraw(type: 'point' | 'polyline' | 'polygon' | 'circle' | 'rectangle', style?: any): Promise<Cesium.Entity>;
507
+ private createPoint;
508
+ private drawShape;
509
+ private terminateShape;
510
+ stopDraw(): void;
511
+ clear(): void;
512
+ removeAll(): void;
513
+ reset(): void;
514
+ destroy(): void;
515
+ }
516
+
517
+ export declare class Se3dEditorManager implements ISe3dManager {
518
+ private viewer;
519
+ private handler;
520
+ private selectedEntity;
521
+ private _enabled;
522
+ private vertexEntities;
523
+ private isDraggingVertex;
524
+ private draggedVertex;
525
+ private editPositions;
526
+ onSelectionChange: ((entity: Cesium.Entity | null) => void) | null;
527
+ constructor(viewer: Cesium.Viewer);
528
+ /**
529
+ * Completely destroy the manager and release all resources.
530
+ */
531
+ destroy(): void;
532
+ /**
533
+ * Clear editor state
534
+ */
535
+ clear(): void;
536
+ set enabled(val: boolean);
537
+ get enabled(): boolean;
538
+ selectEntity(entity: Cesium.Entity | null): void;
539
+ private clearVertexHandles;
540
+ private createVertexHandles;
541
+ private createHandle;
542
+ getSelectedEntity(): Cesium.Entity | null;
543
+ /**
544
+ * Move entity to new position
545
+ */
546
+ setPosition(lon: number, lat: number, height: number): void;
547
+ /**
548
+ * Rotate entity
549
+ */
550
+ setOrientation(heading: number, pitch: number, roll: number): void;
551
+ /**
552
+ * Scale entity (Model only for now)
553
+ */
554
+ setScale(scale: number): void;
555
+ }
556
+
557
+ export declare class Se3dEffectManager implements ISe3dManager {
558
+ private viewer;
559
+ private stages;
560
+ private cloudEntities;
561
+ private particleSystems;
562
+ constructor(viewer: Cesium.Viewer);
563
+ /**
564
+ * Completely destroy the manager and release all resources.
565
+ */
566
+ destroy(): void;
567
+ /**
568
+ * Clear all effects
569
+ */
570
+ clear(): void;
571
+ /**
572
+ * 开启/关闭泛光
573
+ * @param enable 是否开启
574
+ */
575
+ setBloom(enable: boolean): void;
576
+ /**
577
+ * 开启/关闭黑白效果
578
+ * @param enable 是否开启
579
+ */
580
+ setBlackAndWhite(enable: boolean): void;
581
+ /**
582
+ * 开启/关闭夜视效果
583
+ * @param enable 是否开启
584
+ */
585
+ setNightVision(enable: boolean): void;
586
+ /**
587
+ * 开启/关闭亮度调整
588
+ * @param enable 是否开启
589
+ * @param brightness 亮度值 (default: 1.0)
590
+ */
591
+ setBrightness(enable: boolean, brightness?: number): void;
592
+ /**
593
+ * 设置雾
594
+ * @param enable 是否开启
595
+ * @param density 密度 (0-1)
596
+ */
597
+ setFog(enable: boolean, density?: number): void;
598
+ /**
599
+ * 设置轮廓 (Silhouette)
600
+ * @param enable 是否开启
601
+ * @param color 颜色 (CSS 字符串)
602
+ * @param length 长度
603
+ */
604
+ setSilhouette(enable: boolean, color?: string, length?: number): void;
605
+ /**
606
+ * 设置马赛克效果
607
+ * @param enable 是否开启
608
+ * @param size 马赛克大小
609
+ */
610
+ setMosaic(enable: boolean, size?: number): void;
611
+ /**
612
+ * 设置景深
613
+ * @param enable 是否开启
614
+ * @param focalDistance 焦距
615
+ * @param delta 增量
616
+ * @param sigma sigma
617
+ */
618
+ setDepthOfField(enable: boolean, focalDistance?: number, delta?: number, sigma?: number): void;
619
+ /**
620
+ * 设置镜头光斑
621
+ * @param enable 是否开启
622
+ * @param intensity 强度
623
+ * @param distortion 失真
624
+ * @param dispersion 色散
625
+ * @param haloWidth 光环宽度
626
+ */
627
+ setLensFlare(enable: boolean, intensity?: number, distortion?: number, dispersion?: number, haloWidth?: number): void;
628
+ /**
629
+ * 开启/关闭日照阴影
630
+ * @param enable 是否开启
631
+ */
632
+ setShadows(enable: boolean): void;
633
+ /**
634
+ * 设置雨效
635
+ * @param enable 是否开启
636
+ */
637
+ setRain(enable: boolean): void;
638
+ /**
639
+ * 设置雪效
640
+ * @param enable 是否开启
641
+ */
642
+ setSnow(enable: boolean): void;
643
+ setCloudField(enable: boolean, options?: {
644
+ count?: number;
645
+ size?: number;
646
+ height?: number;
647
+ rectangle?: [number, number, number, number];
648
+ }): void;
649
+ clearCloudField(): void;
650
+ /**
651
+ * 添加爆炸特效 (Explosion)
652
+ * @param position 爆炸中心点
653
+ * @param options 配置项
654
+ */
655
+ addExplosion(position: Cesium.Cartesian3, options?: {
656
+ minSize?: number;
657
+ maxSize?: number;
658
+ lifeTime?: number;
659
+ emissionRate?: number;
660
+ duration?: number;
661
+ }): Cesium.ParticleSystem;
662
+ /**
663
+ * 添加污染源模拟 (基于粒子)
664
+ * @param position 污染源位置
665
+ * @param options 配置项
666
+ */
667
+ addPollutionSource(position: Cesium.Cartesian3, options?: {
668
+ radius?: number;
669
+ color?: Cesium.Color;
670
+ speed?: number;
671
+ }): Cesium.ParticleSystem;
672
+ /**
673
+ * 移除指定的粒子系统
674
+ * @param particleSystem 粒子系统对象
675
+ */
676
+ removeParticleSystem(particleSystem: Cesium.ParticleSystem): void;
677
+ private getCameraLocalRectangle;
678
+ private createCloudTexture;
679
+ private getRainShader;
680
+ private getSnowShader;
681
+ /**
682
+ * 移除所有特效
683
+ */
684
+ clearAll(): void;
685
+ private toggleStage;
686
+ }
687
+
688
+ export declare class Se3dFieldManager implements ISe3dManager {
689
+ private viewer;
690
+ private dataSource;
691
+ private windFields;
692
+ constructor(viewer: Cesium.Viewer);
693
+ /**
694
+ * Completely destroy the manager and release all resources.
695
+ */
696
+ destroy(): void;
697
+ /**
698
+ * Clear all fields
699
+ */
700
+ clear(): void;
701
+ /**
702
+ * 添加热力图 (Heatmap)
703
+ * @param points 数据点数组
704
+ * @param bounds 边界范围 [west, south, east, north]
705
+ * @param options 配置项
706
+ */
707
+ addHeatmap(points: HeatmapPoint[], bounds: [number, number, number, number], options?: {
708
+ min?: number;
709
+ max?: number;
710
+ radius?: number;
711
+ opacity?: number;
712
+ gradient?: Record<number, string>;
713
+ id?: string;
714
+ }): Cesium.Entity | null;
715
+ /**
716
+ * Add a wind field simulation (Particle System)
717
+ * @param position Origin [lon, lat, height]
718
+ * @param options Configuration options
719
+ */
720
+ addWindField(position: [number, number, number], options?: {
721
+ color?: string;
722
+ speed?: number;
723
+ lifetime?: number;
724
+ particleSize?: number;
725
+ rate?: number;
726
+ }): Cesium.ParticleSystem;
727
+ clearWindFields(): void;
728
+ clearAll(): void;
729
+ }
730
+
731
+ export declare class Se3dGeologyManager implements ISe3dManager {
732
+ private viewer;
733
+ private boreholes;
734
+ private signalEntities;
735
+ private fieldEntities;
736
+ private gprEntities;
737
+ private airspaceGridSources;
738
+ constructor(viewer: Cesium.Viewer);
739
+ /**
740
+ * Completely destroy the manager and release all resources.
741
+ */
742
+ destroy(): void;
743
+ /**
744
+ * Clear all geological visualizations
745
+ */
746
+ clear(): void;
747
+ /**
748
+ * Add a geological borehole visualization
749
+ * @param options Configuration for the borehole
750
+ */
751
+ addBorehole(options: BoreholeOptions): void;
752
+ /**
753
+ * Clear all boreholes
754
+ */
755
+ clearBoreholes(): void;
756
+ /**
757
+ * Create a low-altitude airspace grid visualization
758
+ * @param center Center [lon, lat]
759
+ * @param size Size in meters [width, height]
760
+ * @param altitude Height above ground
761
+ * @param spacing Grid cell size in meters
762
+ */
763
+ addAirspaceGrid(center: [number, number], size: [number, number], altitude: number, spacing: number): void;
764
+ /**
765
+ * Add a signal coverage visualization (Dome)
766
+ * @param center Center [lon, lat, height]
767
+ * @param radius Coverage radius in meters
768
+ * @param color Coverage color
769
+ */
770
+ addSignalCoverage(center: [number, number, number], radius: number, color?: string): Cesium.Entity;
771
+ /**
772
+ * Add a geophysical field volume visualization (Box)
773
+ * @param center Center [lon, lat, height]
774
+ * @param dimensions Dimensions [length, width, height]
775
+ * @param color Color
776
+ */
777
+ addGeophysicalVolume(center: [number, number, number], dimensions: [number, number, number], color?: string): Cesium.Entity;
778
+ /**
779
+ * Add a Ground Penetrating Radar (GPR) slice visualization
780
+ * @param start Start position [lon, lat]
781
+ * @param end End position [lon, lat]
782
+ * @param depth Depth in meters
783
+ * @param image Image URL for the slice (optional)
784
+ */
785
+ addGPRSlice(start: [number, number], end: [number, number], depth: number, image?: string): Cesium.Entity;
786
+ clearAirspaceGrid(): void;
787
+ clearSignalCoverage(): void;
788
+ clearGeophysicalVolumes(): void;
789
+ clearGPRSlices(): void;
790
+ }
791
+
792
+ export declare class Se3dGraphicManager implements ISe3dManager {
793
+ private viewer;
794
+ constructor(viewer: Cesium.Viewer);
795
+ /**
796
+ * Completely destroy the manager and release all resources.
797
+ */
798
+ destroy(): void;
799
+ /**
800
+ * Clear all graphics
801
+ */
802
+ clear(): void;
803
+ /**
804
+ * 添加点
805
+ * @param options 配置项
806
+ */
807
+ addPoint(options: {
808
+ position: Cesium.Cartesian3;
809
+ pixelSize?: number;
810
+ color?: string;
811
+ outlineColor?: string;
812
+ outlineWidth?: number;
813
+ id?: string;
814
+ }): Cesium.Entity;
815
+ /**
816
+ * 添加线
817
+ * @param options 配置项
818
+ */
819
+ addPolyline(options: {
820
+ positions: Cesium.Cartesian3[];
821
+ width?: number;
822
+ color?: string;
823
+ clampToGround?: boolean;
824
+ id?: string;
825
+ }): Cesium.Entity;
826
+ /**
827
+ * 添加面
828
+ * @param options 配置项
829
+ */
830
+ addPolygon(options: {
831
+ positions: Cesium.Cartesian3[];
832
+ color?: string;
833
+ image?: string;
834
+ outlineColor?: string;
835
+ outlineWidth?: number;
836
+ height?: number;
837
+ extrudedHeight?: number;
838
+ id?: string;
839
+ }): Cesium.Entity;
840
+ /**
841
+ * 移除图形
842
+ * @param id 图形ID或Entity对象
843
+ */
844
+ removeGraphic(id: string | Cesium.Entity): void;
845
+ /**
846
+ * 添加圆
847
+ * @param options 配置项
848
+ */
849
+ addCircle(options: {
850
+ center: Cesium.Cartesian3;
851
+ radius: number;
852
+ color?: string;
853
+ outlineColor?: string;
854
+ outlineWidth?: number;
855
+ height?: number;
856
+ extrudedHeight?: number;
857
+ id?: string;
858
+ }): Cesium.Entity;
859
+ /**
860
+ * 添加矩形
861
+ * @param options 配置项
862
+ */
863
+ addRectangle(options: {
864
+ coordinates: Cesium.Rectangle;
865
+ color?: string;
866
+ outlineColor?: string;
867
+ outlineWidth?: number;
868
+ height?: number;
869
+ extrudedHeight?: number;
870
+ id?: string;
871
+ }): Cesium.Entity;
872
+ /**
873
+ * 添加立方体 (Box)
874
+ * @param options 配置项
875
+ */
876
+ addBox(options: {
877
+ position: Cesium.Cartesian3;
878
+ dimensions: Cesium.Cartesian3;
879
+ color?: string;
880
+ outlineColor?: string;
881
+ outlineWidth?: number;
882
+ id?: string;
883
+ }): Cesium.Entity;
884
+ /**
885
+ * 添加圆柱/圆锥 (Cylinder/Cone)
886
+ * @param options 配置项
887
+ */
888
+ addCylinder(options: {
889
+ position: Cesium.Cartesian3;
890
+ length: number;
891
+ topRadius: number;
892
+ bottomRadius: number;
893
+ color?: string;
894
+ outlineColor?: string;
895
+ outlineWidth?: number;
896
+ id?: string;
897
+ }): Cesium.Entity;
898
+ /**
899
+ * 添加球体/椭球 (Ellipsoid/Sphere)
900
+ * @param options 配置项
901
+ */
902
+ addEllipsoid(options: {
903
+ position: Cesium.Cartesian3;
904
+ radii: Cesium.Cartesian3;
905
+ color?: string;
906
+ outlineColor?: string;
907
+ outlineWidth?: number;
908
+ id?: string;
909
+ }): Cesium.Entity;
910
+ /**
911
+ * 添加管道 (Tube/PolylineVolume)
912
+ * @param options 配置项
913
+ */
914
+ addTube(options: {
915
+ positions: Cesium.Cartesian3[];
916
+ radius: number;
917
+ color?: string;
918
+ shape?: 'circle' | 'square';
919
+ id?: string;
920
+ }): Cesium.Entity;
921
+ /**
922
+ * 添加基础墙 (Basic Wall)
923
+ * @param options 配置项
924
+ */
925
+ addWall(options: {
926
+ positions: Cesium.Cartesian3[];
927
+ maximumHeights?: number[];
928
+ minimumHeights?: number[];
929
+ color?: string;
930
+ outlineColor?: string;
931
+ id?: string;
932
+ }): Cesium.Entity;
933
+ /**
934
+ * 添加文本标签
935
+ * @param options 配置项
936
+ */
937
+ addLabel(options: {
938
+ position: Cesium.Cartesian3;
939
+ text: string;
940
+ font?: string;
941
+ fillColor?: string;
942
+ outlineColor?: string;
943
+ outlineWidth?: number;
944
+ pixelOffset?: Cesium.Cartesian2;
945
+ id?: string;
946
+ }): Cesium.Entity;
947
+ /**
948
+ * 添加图标 (Billboard)
949
+ * @param options 配置项
950
+ */
951
+ addBillboard(options: {
952
+ position: Cesium.Cartesian3;
953
+ image: string;
954
+ scale?: number;
955
+ pixelOffset?: Cesium.Cartesian2;
956
+ id?: string;
957
+ }): Cesium.Entity;
958
+ /**
959
+ * 添加攻击箭头 (简化版)
960
+ * @param options 配置项
961
+ */
962
+ addAttackArrow(options: {
963
+ positions: Cesium.Cartesian3[];
964
+ color?: string;
965
+ id?: string;
966
+ }): Cesium.Entity;
967
+ /**
968
+ * 添加流动飞线 (Flowing Line)
969
+ * @param options 配置项
970
+ */
971
+ addFlowingLine(options: {
972
+ positions: Cesium.Cartesian3[];
973
+ width?: number;
974
+ color?: string;
975
+ speed?: number;
976
+ id?: string;
977
+ }): Cesium.Entity;
978
+ /**
979
+ * 添加竖直线 (Vertical Line)
980
+ * @param options 配置项
981
+ */
982
+ addVerticalLine(options: {
983
+ position: Cesium.Cartesian3;
984
+ height: number;
985
+ width?: number;
986
+ color?: string;
987
+ id?: string;
988
+ }): Cesium.Entity;
989
+ /**
990
+ * 添加发光线 (Glowing Line)
991
+ * @param options 配置项
992
+ */
993
+ addGlowingLine(options: {
994
+ positions: Cesium.Cartesian3[];
995
+ width?: number;
996
+ color?: string;
997
+ glowPower?: number;
998
+ taperPower?: number;
999
+ id?: string;
1000
+ }): Cesium.Entity;
1001
+ /**
1002
+ * 添加直线箭头 (Straight Arrow)
1003
+ * @param options 配置项
1004
+ */
1005
+ addStraightArrow(options: {
1006
+ positions: Cesium.Cartesian3[];
1007
+ width?: number;
1008
+ headWidth?: number;
1009
+ headLength?: number;
1010
+ color?: string;
1011
+ id?: string;
1012
+ }): Cesium.Entity | null;
1013
+ /**
1014
+ * 添加钳击箭头 (Pincer Arrow - 简化双箭头)
1015
+ * @param options 配置项
1016
+ */
1017
+ addPincerArrow(options: {
1018
+ positions: Cesium.Cartesian3[];
1019
+ color?: string;
1020
+ id?: string;
1021
+ }): Cesium.Entity | null;
1022
+ /**
1023
+ * 添加动态墙体 (Dynamic Wall)
1024
+ * @param options 配置项
1025
+ */
1026
+ addDynamicWall(options: {
1027
+ positions: Cesium.Cartesian3[];
1028
+ minHeight?: number;
1029
+ maxHeight?: number;
1030
+ color?: string;
1031
+ image?: string;
1032
+ speed?: number;
1033
+ id?: string;
1034
+ }): Cesium.Entity;
1035
+ /**
1036
+ * 添加雷达圆 (Radar Circle)
1037
+ * @param options 配置项
1038
+ */
1039
+ addRadarCircle(options: {
1040
+ center: Cesium.Cartesian3;
1041
+ radius: number;
1042
+ color?: string;
1043
+ speed?: number;
1044
+ id?: string;
1045
+ }): Cesium.Entity;
1046
+ /**
1047
+ * 添加波纹扩散 (Ripple Spread)
1048
+ * @param options 配置项
1049
+ */
1050
+ addRippleCircle(options: {
1051
+ center: Cesium.Cartesian3;
1052
+ radius: number;
1053
+ color?: string;
1054
+ count?: number;
1055
+ speed?: number;
1056
+ id?: string;
1057
+ }): Cesium.Entity;
1058
+ /**
1059
+ * 清除所有图形
1060
+ */
1061
+ removeAll(): void;
1062
+ }
1063
+
1064
+ export declare class Se3dLayerManager implements ISe3dManager {
1065
+ private viewer;
1066
+ private layers;
1067
+ constructor(viewer: Cesium.Viewer);
1068
+ /**
1069
+ * Completely destroy the manager and release all resources.
1070
+ */
1071
+ destroy(): void;
1072
+ /**
1073
+ * Clear all layers
1074
+ */
1075
+ clear(): void;
1076
+ /**
1077
+ * 添加Google Earth Enterprise 图层
1078
+ * @param id 图层ID
1079
+ * @param name 图层名称
1080
+ * @param url 服务地址
1081
+ * @param metadataUrl 元数据地址
1082
+ * @param visible 是否可见
1083
+ */
1084
+ addGoogleEarthEnterpriseLayer(id: string, name: string, url: string, metadataUrl: string, visible?: boolean): Promise<void>;
1085
+ /**
1086
+ * 设置图层样式 (透明度、亮度、对比度等)
1087
+ * @param id 图层ID
1088
+ * @param options 样式选项
1089
+ */
1090
+ setLayerStyle(id: string, options: {
1091
+ alpha?: number;
1092
+ brightness?: number;
1093
+ contrast?: number;
1094
+ hue?: number;
1095
+ saturation?: number;
1096
+ gamma?: number;
1097
+ }): void;
1098
+ /**
1099
+ * 获取切片方案
1100
+ * @param crs 坐标系 ('EPSG:3857' | 'EPSG:4326' | 'EPSG:4490')
1101
+ */
1102
+ private getTilingScheme;
1103
+ /**
1104
+ * 添加Web Map Service (WMS) 图层
1105
+ * @param id 图层ID
1106
+ * @param name 图层名称
1107
+ * @param url 服务地址
1108
+ * @param layers WMS图层名称
1109
+ * @param parameters 其他参数 (如 format, transparent 等)
1110
+ * @param visible 是否可见
1111
+ * @param crs 坐标系 (EPSG:3857/4326)
1112
+ */
1113
+ addWMSLayer(id: string, name: string, url: string, layers: string, parameters?: any, visible?: boolean, crs?: string): void;
1114
+ /**
1115
+ * 添加Tile Map Service (TMS) 图层
1116
+ * @param id 图层ID
1117
+ * @param name 图层名称
1118
+ * @param url 服务地址
1119
+ * @param visible 是否可见
1120
+ * @param crs 坐标系
1121
+ */
1122
+ addTMSLayer(id: string, name: string, url: string, visible?: boolean, crs?: string): Promise<void>;
1123
+ /**
1124
+ * 添加WMTS图层
1125
+ * @param id 图层ID
1126
+ * @param name 图层名称
1127
+ * @param url 服务地址
1128
+ * @param layer 图层名
1129
+ * @param style 样式 (default)
1130
+ * @param format 格式 (image/png)
1131
+ * @param tileMatrixSetID 矩阵集ID (w)
1132
+ * @param visible 是否可见
1133
+ * @param crs 坐标系
1134
+ */
1135
+ addWMTSLayer(id: string, name: string, url: string, layer: string, style?: string, format?: string, tileMatrixSetID?: string, visible?: boolean, crs?: string): void;
1136
+ /**
1137
+ * 添加ArcGIS MapServer图层
1138
+ * @param id 图层ID
1139
+ * @param name 图层名称
1140
+ * @param url 服务地址
1141
+ * @param visible 是否可见
1142
+ */
1143
+ addArcGisMapServerLayer(id: string, name: string, url: string, visible?: boolean): Promise<void>;
1144
+ /**
1145
+ * 添加单张图片图层
1146
+ * @param id 图层ID
1147
+ * @param name 图层名称
1148
+ * @param url 图片地址
1149
+ * @param rectangle 图片范围
1150
+ * @param visible 是否可见
1151
+ */
1152
+ addSingleTileLayer(id: string, name: string, url: string, rectangle: Cesium.Rectangle, visible?: boolean): void;
1153
+ /**
1154
+ * 添加GeoJSON矢量图层
1155
+ * @param id 图层ID
1156
+ * @param name 图层名称
1157
+ * @param url 数据地址
1158
+ * @param options 加载选项 (fill, stroke, etc.)
1159
+ * @param visible 是否可见
1160
+ */
1161
+ addGeoJsonLayer(id: string, name: string, url: string, options?: any, visible?: boolean): Promise<Cesium.GeoJsonDataSource | undefined>;
1162
+ /**
1163
+ * 添加KML矢量图层
1164
+ * @param id 图层ID
1165
+ * @param name 图层名称
1166
+ * @param url 数据地址
1167
+ * @param options 加载选项
1168
+ * @param visible 是否可见
1169
+ */
1170
+ addKmlLayer(id: string, name: string, url: string, options?: any, visible?: boolean): Promise<Cesium.KmlDataSource | undefined>;
1171
+ /**
1172
+ * 添加CZML矢量图层
1173
+ * @param id 图层ID
1174
+ * @param name 图层名称
1175
+ * @param url 数据地址
1176
+ * @param visible 是否可见
1177
+ */
1178
+ addCzmlLayer(id: string, name: string, url: string, visible?: boolean): Promise<Cesium.CzmlDataSource | undefined>;
1179
+ addClusterLayer(id: string, name: string, points: Array<{
1180
+ longitude: number;
1181
+ latitude: number;
1182
+ height?: number;
1183
+ properties?: Record<string, any>;
1184
+ }>, options?: {
1185
+ pixelRange?: number;
1186
+ minimumClusterSize?: number;
1187
+ pointColor?: string;
1188
+ pointSize?: number;
1189
+ outlineColor?: string;
1190
+ outlineWidth?: number;
1191
+ visible?: boolean;
1192
+ }): Cesium.CustomDataSource;
1193
+ updateClusterLayer(id: string, options: {
1194
+ pixelRange?: number;
1195
+ minimumClusterSize?: number;
1196
+ }): void;
1197
+ /**
1198
+ * 移除图层 (支持 Imagery 和 DataSource)
1199
+ * @param id 图层ID
1200
+ */
1201
+ removeLayer(id: string): void;
1202
+ /**
1203
+ * 切换图层可见性
1204
+ * @param id 图层ID
1205
+ * @param visible 是否可见
1206
+ */
1207
+ toggleLayer(id: string, visible: boolean): void;
1208
+ setVectorLayerStyle(id: string, options: {
1209
+ stroke?: string;
1210
+ strokeWidth?: number;
1211
+ fill?: string;
1212
+ pointColor?: string;
1213
+ pointSize?: number;
1214
+ }): void;
1215
+ setVectorLayerProperties(id: string, properties: Record<string, any>): void;
1216
+ /**
1217
+ * 获取所有图层
1218
+ */
1219
+ getLayers(): LayerItem[];
1220
+ /**
1221
+ * 获取指定图层
1222
+ * @param id 图层ID
1223
+ */
1224
+ getLayer(id: string): LayerItem | undefined;
1225
+ /**
1226
+ * 清空所有图层
1227
+ */
1228
+ removeAll(): void;
1229
+ addImageryLayer(id: string, name: string, provider: Cesium.ImageryProvider, visible: boolean): void;
1230
+ addGridLayer(id: string, name: string, visible: boolean): void;
1231
+ private addDataSource;
1232
+ addOnlineMap(type: string, options?: {
1233
+ key?: string;
1234
+ bingKey?: string;
1235
+ }): Promise<void>;
1236
+ }
1237
+
1238
+ export declare const Se3dLocationBarComponent: DefineComponent<__VLS_Props_2, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_2> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
1239
+
1240
+ export declare class Se3dMeasureTool implements ISe3dManager {
1241
+ private viewer;
1242
+ private handler;
1243
+ private dataSource;
1244
+ private activePoints;
1245
+ private activePointEntity;
1246
+ private activeShapeEntity;
1247
+ private measureType;
1248
+ constructor(viewer: Cesium.Viewer);
1249
+ /**
1250
+ * Completely destroy the manager and release all resources.
1251
+ */
1252
+ destroy(): void;
1253
+ /**
1254
+ * 开始空间距离测量
1255
+ */
1256
+ startDistanceMeasure(): void;
1257
+ /**
1258
+ * 开始贴地距离测量
1259
+ */
1260
+ startGroundDistanceMeasure(): void;
1261
+ /**
1262
+ * 开始水平面积测量
1263
+ */
1264
+ startAreaMeasure(): void;
1265
+ /**
1266
+ * 开始高度差测量
1267
+ */
1268
+ startHeightMeasure(): void;
1269
+ /**
1270
+ * 清除所有测量结果
1271
+ */
1272
+ clear(): void;
1273
+ private resetState;
1274
+ private setupInputActions;
1275
+ private calculateResult;
1276
+ private addLabel;
1277
+ private pickPosition;
1278
+ private createPoint;
1279
+ private createPolyline;
1280
+ private createPolygon;
1281
+ }
1282
+
1283
+ export declare const Se3dNavigationComponent: DefineComponent<ExtractPropTypes< {
1284
+ viewer: {
1285
+ type: () => ViewerLike;
1286
+ required: true;
1287
+ };
1288
+ position: {
1289
+ type: StringConstructor;
1290
+ default: string;
1291
+ validator: (val: string) => boolean;
1292
+ };
1293
+ offset: {
1294
+ type: () => number[];
1295
+ default: () => number[];
1296
+ };
1297
+ customClass: {
1298
+ type: StringConstructor;
1299
+ default: string;
1300
+ };
1301
+ showCompass: {
1302
+ type: BooleanConstructor;
1303
+ default: boolean;
1304
+ };
1305
+ showZoom: {
1306
+ type: BooleanConstructor;
1307
+ default: boolean;
1308
+ };
1309
+ showLocation: {
1310
+ type: BooleanConstructor;
1311
+ default: boolean;
1312
+ };
1313
+ showPrint: {
1314
+ type: BooleanConstructor;
1315
+ default: boolean;
1316
+ };
1317
+ showTerrainToggle: {
1318
+ type: BooleanConstructor;
1319
+ default: boolean;
1320
+ };
1321
+ }>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes< {
1322
+ viewer: {
1323
+ type: () => ViewerLike;
1324
+ required: true;
1325
+ };
1326
+ position: {
1327
+ type: StringConstructor;
1328
+ default: string;
1329
+ validator: (val: string) => boolean;
1330
+ };
1331
+ offset: {
1332
+ type: () => number[];
1333
+ default: () => number[];
1334
+ };
1335
+ customClass: {
1336
+ type: StringConstructor;
1337
+ default: string;
1338
+ };
1339
+ showCompass: {
1340
+ type: BooleanConstructor;
1341
+ default: boolean;
1342
+ };
1343
+ showZoom: {
1344
+ type: BooleanConstructor;
1345
+ default: boolean;
1346
+ };
1347
+ showLocation: {
1348
+ type: BooleanConstructor;
1349
+ default: boolean;
1350
+ };
1351
+ showPrint: {
1352
+ type: BooleanConstructor;
1353
+ default: boolean;
1354
+ };
1355
+ showTerrainToggle: {
1356
+ type: BooleanConstructor;
1357
+ default: boolean;
1358
+ };
1359
+ }>> & Readonly<{}>, {
1360
+ position: string;
1361
+ offset: number[];
1362
+ customClass: string;
1363
+ showCompass: boolean;
1364
+ showZoom: boolean;
1365
+ showLocation: boolean;
1366
+ showPrint: boolean;
1367
+ showTerrainToggle: boolean;
1368
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, HTMLDivElement>;
1369
+
1370
+ declare class Se3dOverviewManager implements ISe3dManager {
1371
+ private mainViewer;
1372
+ private overviewViewer;
1373
+ private removeSyncListener;
1374
+ private viewRectEntity;
1375
+ private removeMoveStartListener;
1376
+ private removeMoveEndListener;
1377
+ constructor(mainViewer: Cesium.Viewer);
1378
+ initialize(container: HTMLElement): void;
1379
+ private syncLoopId;
1380
+ private lastSyncTime;
1381
+ private startSyncLoop;
1382
+ private stopSyncLoop;
1383
+ /**
1384
+ * Completely destroy the manager and release all resources.
1385
+ */
1386
+ destroy(): void;
1387
+ /**
1388
+ * Clear overview resources
1389
+ */
1390
+ clear(): void;
1391
+ private syncFromMain;
1392
+ }
1393
+
1394
+ export declare const Se3dPlugin: {
1395
+ install(app: App): void;
1396
+ };
1397
+
1398
+ export declare class Se3dSceneManager implements ISe3dManager {
1399
+ private viewer;
1400
+ private rotateHandler;
1401
+ private keyboardHandler;
1402
+ private bookmarks;
1403
+ private cameraTourToken;
1404
+ constructor(viewer: Cesium.Viewer);
1405
+ /**
1406
+ * Completely destroy the manager and release all resources.
1407
+ */
1408
+ destroy(): void;
1409
+ /**
1410
+ * Clear all scene effects and listeners
1411
+ */
1412
+ clear(): void;
1413
+ /**
1414
+ * 设置背景颜色
1415
+ * @param color CSS颜色字符串
1416
+ */
1417
+ setBackgroundColor(color: string): void;
1418
+ /**
1419
+ * 设置背景图片 (需要先开启地球透明 setGlobeTransparency(true))
1420
+ * @param url 图片地址
1421
+ */
1422
+ setBackgroundImage(url: string): void;
1423
+ /**
1424
+ * 设置地球透明度
1425
+ * @param enable 是否开启透明
1426
+ */
1427
+ setGlobeTransparency(enable: boolean): void;
1428
+ /**
1429
+ * 设置容器遮罩 (CSS Clip-path)
1430
+ * @param enabled 是否开启
1431
+ * @param type 类型 'circle' | 'rectangle'
1432
+ * @param inverted 是否反选 (挖孔)
1433
+ */
1434
+ setContainerMask(enabled: boolean, type?: 'circle' | 'rectangle', inverted?: boolean): void;
1435
+ /**
1436
+ * 设置地球裁剪平面 (Globe Clipping)
1437
+ * @param enabled 是否开启
1438
+ * @param options 配置项 { normal: Cesium.Cartesian3, distance: number, edgeColor: string, edgeWidth: number }
1439
+ */
1440
+ setGlobeClippingPlane(enabled: boolean, options?: {
1441
+ normal?: Cesium.Cartesian3;
1442
+ distance?: number;
1443
+ edgeColor?: string;
1444
+ edgeWidth?: number;
1445
+ }): void;
1446
+ /**
1447
+ * 设置天空盒
1448
+ * @param sources 天空盒图片源
1449
+ */
1450
+ setSkyBox(sources: {
1451
+ positiveX: string;
1452
+ negativeX: string;
1453
+ positiveY: string;
1454
+ negativeY: string;
1455
+ positiveZ: string;
1456
+ negativeZ: string;
1457
+ }): void;
1458
+ /**
1459
+ * 设置FPS显示
1460
+ * @param show 是否显示
1461
+ */
1462
+ setShowFPS(show: boolean): void;
1463
+ /**
1464
+ * 设置太阳光照 (同时控制太阳可见性和地球光照)
1465
+ * @param enable 是否开启
1466
+ */
1467
+ setSunLighting(enable: boolean): void;
1468
+ /**
1469
+ * 设置月亮是否可见
1470
+ * @param visible 是否可见
1471
+ */
1472
+ setMoonVisibility(visible: boolean): void;
1473
+ /**
1474
+ * 设置大气层是否可见
1475
+ * @param visible 是否可见
1476
+ */
1477
+ setAtmosphereVisibility(visible: boolean): void;
1478
+ /**
1479
+ * 开启/关闭深度检测 (防止地下透视)
1480
+ * @param enable 是否开启
1481
+ */
1482
+ setDepthTestAgainstTerrain(enable: boolean): void;
1483
+ /**
1484
+ * 开启/关闭对数深度缓冲区 (解决z-fighting闪烁)
1485
+ * @param enable 是否开启
1486
+ */
1487
+ setLogarithmicDepthBuffer(enable: boolean): void;
1488
+ /**
1489
+ * 相机飞行定位
1490
+ * @param options 定位参数
1491
+ */
1492
+ flyTo(options: {
1493
+ longitude: number;
1494
+ latitude: number;
1495
+ height: number;
1496
+ heading?: number;
1497
+ pitch?: number;
1498
+ roll?: number;
1499
+ duration?: number;
1500
+ }): void;
1501
+ /**
1502
+ * 瞬间定位 (无动画)
1503
+ * @param options 定位参数
1504
+ */
1505
+ setView(options: {
1506
+ longitude: number;
1507
+ latitude: number;
1508
+ height: number;
1509
+ heading?: number;
1510
+ pitch?: number;
1511
+ roll?: number;
1512
+ }): void;
1513
+ /**
1514
+ * 飞回初始视角 (Home)
1515
+ * @param duration 动画时长
1516
+ */
1517
+ flyToHome(duration?: number): void;
1518
+ /**
1519
+ * 开启/关闭地球自转
1520
+ * @param enable 是否开启
1521
+ * @param speed 自转速度 (默认 1000)
1522
+ */
1523
+ setAutoRotate(enable: boolean, speed?: number): void;
1524
+ private onTickRotate;
1525
+ /**
1526
+ * 添加当前视角书签
1527
+ * @param name 书签名称
1528
+ */
1529
+ addBookmark(name: string): void;
1530
+ /**
1531
+ * 飞向书签
1532
+ * @param name 书签名称
1533
+ */
1534
+ flyToBookmark(name: string): void;
1535
+ getBookmarks(): string[];
1536
+ deleteBookmark(name: string): void;
1537
+ /**
1538
+ * 视点飞行 (FlyTo Point)
1539
+ * @param lng 经度
1540
+ * @param lat 纬度
1541
+ * @param height 高度
1542
+ * @param heading 偏航角 (度)
1543
+ * @param pitch 俯仰角 (度)
1544
+ * @param roll 翻滚角 (度)
1545
+ * @param duration 飞行时间
1546
+ */
1547
+ flyToPoint(lng: number, lat: number, height: number, heading?: number, pitch?: number, roll?: number, duration?: number): void;
1548
+ /**
1549
+ * 飞向矩形区域
1550
+ */
1551
+ flyToRectangle(west: number, south: number, east: number, north: number, duration?: number): void;
1552
+ flyToChina(duration?: number): void;
1553
+ /**
1554
+ * 开启/关闭 键盘漫游 (WASD移动)
1555
+ * @param enabled 是否开启
1556
+ * @param speed 移动速度 (米/帧)
1557
+ */
1558
+ setKeyboardRoaming(enabled: boolean, speed?: number): void;
1559
+ /**
1560
+ * 开启/关闭 第一人称漫游 (锁定俯仰角范围,WASD移动)
1561
+ * @param enabled 是否开启
1562
+ */
1563
+ setFirstPersonMode(enabled: boolean): void;
1564
+ /**
1565
+ * 环绕旋转 (Orbit)
1566
+ * @param point 旋转中心点 (Cartesian3) - 如果不传则使用当前相机中心点(如果lookAt被设置)或屏幕中心投射点
1567
+ * @param speed 旋转速度 (默认 1)
1568
+ */
1569
+ rotateAroundPoint(point?: Cesium.Cartesian3, speed?: number): void;
1570
+ /**
1571
+ * 停止旋转
1572
+ */
1573
+ stopRotate(): void;
1574
+ /**
1575
+ * 播放视角漫游动画 (时序任务)
1576
+ * @param stops 视角站点列表
1577
+ * @param duration 每个站点飞行时间(秒)
1578
+ */
1579
+ playCameraTour(stops: {
1580
+ name: string;
1581
+ position: any;
1582
+ orientation: any;
1583
+ }[], duration?: number): Promise<void>;
1584
+ stopCameraTour(): void;
1585
+ /**
1586
+ * 限制相机高度范围
1587
+ */
1588
+ setCameraHeightLimit(minHeight: number, maxHeight: number): void;
1589
+ /**
1590
+ * 场景模式切换 (2D / 3D / Columbus View)
1591
+ */
1592
+ setSceneMode(mode: '3D' | '2D' | 'COLUMBUS', duration?: number): void;
1593
+ /**
1594
+ * 场景截图
1595
+ */
1596
+ takeScreenshot(): Promise<string>;
1597
+ /**
1598
+ * 获取当前相机位置信息
1599
+ */
1600
+ getCameraInfo(): {
1601
+ longitude: number;
1602
+ latitude: number;
1603
+ height: number;
1604
+ heading: number;
1605
+ pitch: number;
1606
+ roll: number;
1607
+ };
1608
+ /**
1609
+ * 开启/关闭 分屏对比
1610
+ * @param splitPosition 分割位置 (0.0 - 1.0)
1611
+ */
1612
+ setSplitPosition(splitPosition: number): void;
1613
+ setSplitScreen(enable: boolean, splitPosition?: number): void;
1614
+ /**
1615
+ * 设置图层分割方向
1616
+ * @param layerIndex 图层索引
1617
+ * @param direction 'LEFT' | 'RIGHT' | 'NONE'
1618
+ */
1619
+ setLayerSplitDirection(layerIndex: number, direction: 'LEFT' | 'RIGHT' | 'NONE'): void;
1620
+ /**
1621
+ * 设置鼠标交互模式
1622
+ * @param mode 'default' | 'google'
1623
+ */
1624
+ setMouseMode(mode: 'default' | 'google'): void;
1625
+ private viewSyncHandler;
1626
+ /**
1627
+ * 与二维地图联动 (Leaflet / OpenLayers)
1628
+ * @param map 二维地图实例或回调函数
1629
+ * @param type 'leaflet' | 'openlayers' | 'generic'
1630
+ */
1631
+ syncView(map: any, type: 'leaflet' | 'openlayers' | 'generic'): void;
1632
+ unsyncView(): void;
1633
+ /**
1634
+ * 监听相机变化 (用于多屏联动)
1635
+ * @param callback 回调函数
1636
+ */
1637
+ onCameraChange(callback: (info: any) => void): void;
1638
+ }
1639
+
1640
+ /**
1641
+ * 地形管理与分析类
1642
+ */
1643
+ export declare class Se3dTerrainManager implements ISe3dManager {
1644
+ private viewer;
1645
+ private floodEntity;
1646
+ private floodInterval;
1647
+ private excavationPlanes;
1648
+ private excavationEntities;
1649
+ constructor(viewer: Cesium.Viewer);
1650
+ /**
1651
+ * Completely destroy the manager and release all resources.
1652
+ */
1653
+ destroy(): void;
1654
+ /**
1655
+ * Clear all terrain analysis effects
1656
+ */
1657
+ clear(): void;
1658
+ private createSlopeRamp;
1659
+ /**
1660
+ * 设置地形夸张倍数
1661
+ * @param scale 倍数 (默认1.0)
1662
+ */
1663
+ setExaggeration(scale: number): void;
1664
+ /**
1665
+ * 开启/关闭地形
1666
+ * @param enable 是否开启
1667
+ * @param url 地形服务地址 (可选)
1668
+ */
1669
+ setTerrain(enable: boolean, options?: {
1670
+ source?: 'default' | 'arcgis' | 'tdt' | 'custom';
1671
+ url?: string;
1672
+ key?: string;
1673
+ }): Promise<void>;
1674
+ /**
1675
+ * 开启/关闭 等高线分析
1676
+ * @param enable 是否开启
1677
+ * @param options 配置项 { color: string, width: number, spacing: number }
1678
+ */
1679
+ setContour(enable: boolean, options?: {
1680
+ color?: string;
1681
+ width?: number;
1682
+ spacing?: number;
1683
+ }): void;
1684
+ /**
1685
+ * 开启/关闭 坡度分析
1686
+ * @param enable 是否开启
1687
+ * @param options 配置项 { minSlope: number, maxSlope: number, color: string }
1688
+ */
1689
+ setSlope(enable: boolean, options?: {
1690
+ minSlope?: number;
1691
+ maxSlope?: number;
1692
+ color?: string;
1693
+ }): void;
1694
+ /**
1695
+ * 开启/关闭 地形开挖/压平
1696
+ * @param enable 是否开启
1697
+ * @param options 配置项
1698
+ */
1699
+ setExcavation(enable: boolean, options?: {
1700
+ center: [number, number];
1701
+ width: number;
1702
+ height: number;
1703
+ depth: number;
1704
+ type: 'excavate' | 'flatten';
1705
+ baseHeight: number;
1706
+ }): void;
1707
+ /**
1708
+ * 开启/关闭 淹没分析 (动态上升)
1709
+ * @param enable 是否开启
1710
+ * @param options 配置项 { minHeight: number, maxHeight: number, speed: number, color: string }
1711
+ */
1712
+ setFlood(enable: boolean, options?: {
1713
+ minHeight?: number;
1714
+ maxHeight?: number;
1715
+ speed?: number;
1716
+ color?: string;
1717
+ rectangle?: [number, number, number, number];
1718
+ }): void;
1719
+ /**
1720
+ * 开启/关闭 坡向分析
1721
+ * @param enable 是否开启
1722
+ */
1723
+ setAspect(enable: boolean): void;
1724
+ /**
1725
+ * 开启/关闭 地下模式 (透明地表)
1726
+ * @param enable 是否开启
1727
+ * @param alpha 透明度 (0-1)
1728
+ */
1729
+ setUndergroundMode(enable: boolean, alpha?: number): void;
1730
+ }
1731
+
1732
+ export declare class Se3dTilesetManager implements ISe3dManager {
1733
+ private viewer;
1734
+ private tilesets;
1735
+ constructor(viewer: Cesium.Viewer);
1736
+ /**
1737
+ * Clear all tilesets
1738
+ */
1739
+ clear(): void;
1740
+ /**
1741
+ * 加载 3DTiles 模型
1742
+ * @param id 模型ID
1743
+ * @param url 模型地址
1744
+ * @param options 配置项
1745
+ */
1746
+ addTileset(id: string, url: string, options?: {
1747
+ flyTo?: boolean;
1748
+ style?: any;
1749
+ heightOffset?: number;
1750
+ scale?: number;
1751
+ longitude?: number;
1752
+ latitude?: number;
1753
+ height?: number;
1754
+ heading?: number;
1755
+ pitch?: number;
1756
+ roll?: number;
1757
+ type?: string;
1758
+ }): Promise<Cesium.Cesium3DTileset>;
1759
+ /**
1760
+ * 移除 3DTiles 模型
1761
+ * @param id 模型ID
1762
+ */
1763
+ removeTileset(id: string): void;
1764
+ addBIM(id: string, url: string, options?: any): Promise<Cesium.Cesium3DTileset>;
1765
+ addPointCloud(id: string, url: string, options?: any): Promise<Cesium.Cesium3DTileset>;
1766
+ addPhotogrammetry(id: string, url: string, options?: any): Promise<Cesium.Cesium3DTileset>;
1767
+ /**
1768
+ * 加载高斯泼溅 (Gaussian Splatting)
1769
+ * 注意:Cesium 1.115+ 支持直接加载 .splat 文件或包含 splat 的 tileset.json
1770
+ * @param id 模型ID
1771
+ * @param url .splat 文件地址或 tileset.json 地址
1772
+ * @param options 配置项
1773
+ */
1774
+ addGaussianSplatting(id: string, url: string, options?: any): Promise<Cesium.Cesium3DTileset>;
1775
+ removeAll(): void;
1776
+ destroy(): void;
1777
+ getTileset(id: string): Cesium.Cesium3DTileset | undefined;
1778
+ updateTilesetTransform(id: string, options: {
1779
+ longitude?: number;
1780
+ latitude?: number;
1781
+ height?: number;
1782
+ heading?: number;
1783
+ pitch?: number;
1784
+ roll?: number;
1785
+ scale?: number;
1786
+ }): void;
1787
+ /**
1788
+ * 调整模型高度
1789
+ * @param tileset 模型对象
1790
+ * @param heightOffset 高度偏移量
1791
+ */
1792
+ private adjustHeight;
1793
+ private applyTransform;
1794
+ /**
1795
+ * 设置模型样式
1796
+ * @param id 模型ID
1797
+ * @param style 样式对象 (Cesium3DTileStyle)
1798
+ */
1799
+ setStyle(id: string, style: any): void;
1800
+ /**
1801
+ * 高亮指定要素 (单体化高亮)
1802
+ * @param feature 3DTiles 要素
1803
+ * @param color 高亮颜色
1804
+ */
1805
+ highlightFeature(feature: Cesium.Cesium3DTileFeature, color: Cesium.Color): void;
1806
+ /**
1807
+ * 取消要素高亮
1808
+ * @param feature 3DTiles 要素
1809
+ */
1810
+ removeHighlight(feature: Cesium.Cesium3DTileFeature): void;
1811
+ }
1812
+
1813
+ export declare class Se3dViewer {
1814
+ viewer: Cesium.Viewer;
1815
+ eventManager: EventManager;
1816
+ se3dLayerManager: Se3dLayerManager;
1817
+ se3dTilesetManager: Se3dTilesetManager;
1818
+ se3dMeasureTool: Se3dMeasureTool;
1819
+ se3dSceneManager: Se3dSceneManager;
1820
+ se3dTerrainManager: Se3dTerrainManager;
1821
+ se3dGraphicManager: Se3dGraphicManager;
1822
+ se3dDrawTool: Se3dDrawTool;
1823
+ se3dControlManager: Se3dControlManager;
1824
+ se3dEffectManager: Se3dEffectManager;
1825
+ se3dFieldManager: Se3dFieldManager;
1826
+ se3dAnalysisManager: Se3dAnalysisManager;
1827
+ se3dAdvancedObjectManager: Se3dAdvancedObjectManager;
1828
+ se3dGeologyManager: Se3dGeologyManager;
1829
+ se3dBuildingManager: Se3dBuildingManager;
1830
+ se3dEditorManager: Se3dEditorManager;
1831
+ se3dOverviewManager: Se3dOverviewManager;
1832
+ get layer(): Se3dLayerManager;
1833
+ get tileset(): Se3dTilesetManager;
1834
+ get measure(): Se3dMeasureTool;
1835
+ get scene(): Se3dSceneManager;
1836
+ get terrain(): Se3dTerrainManager;
1837
+ get graphic(): Se3dGraphicManager;
1838
+ get draw(): Se3dDrawTool;
1839
+ get control(): Se3dControlManager;
1840
+ get effect(): Se3dEffectManager;
1841
+ get field(): Se3dFieldManager;
1842
+ get analysis(): Se3dAnalysisManager;
1843
+ get advanced(): Se3dAdvancedObjectManager;
1844
+ get geology(): Se3dGeologyManager;
1845
+ get building(): Se3dBuildingManager;
1846
+ get editor(): Se3dEditorManager;
1847
+ get overview(): Se3dOverviewManager;
1848
+ private managers;
1849
+ constructor(container: string | HTMLElement, options?: ViewerConfig);
1850
+ flyTo(destination: Cesium.Cartesian3 | Cesium.Rectangle, options?: any): void;
1851
+ createPosition(longitude: number, latitude: number, height?: number): Cesium.Cartesian3;
1852
+ createPositions(points: Array<[number, number, number?]>): Cesium.Cartesian3[];
1853
+ createCartesian3(x: number, y: number, z: number): Cesium.Cartesian3;
1854
+ createOrientationQuaternion(position: Cesium.Cartesian3, heading?: number, pitch?: number, roll?: number): Cesium.Quaternion;
1855
+ createRectangle(west: number, south: number, east: number, north: number): Cesium.Rectangle;
1856
+ createWorldRectangle(): Cesium.Rectangle;
1857
+ toLngLatHeight(position: Cesium.Cartesian3): {
1858
+ lng: number;
1859
+ lat: number;
1860
+ height: number;
1861
+ };
1862
+ degreesToRadians(degrees: number): number;
1863
+ radiansToDegrees(radians: number): number;
1864
+ getEntityPosition(entity: any): {
1865
+ lng: number;
1866
+ lat: number;
1867
+ height: number;
1868
+ } | null;
1869
+ getEntityOrientation(entity: any): {
1870
+ heading: number;
1871
+ pitch: number;
1872
+ roll: number;
1873
+ };
1874
+ getEntityScale(entity: any): any;
1875
+ isDestroyed(): boolean;
1876
+ destroy(): void;
1877
+ }
1878
+
1879
+ export declare const Se3dViewerComponent: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
1880
+
1881
+ export declare interface ViewerConfig extends Cesium.Viewer.ConstructorOptions {
1882
+ accessToken?: string;
1883
+ autoFixAssets?: boolean;
1884
+ logo?: boolean;
1885
+ baseLayer?: Cesium.ImageryLayer | false;
1886
+ imageryProvider?: Cesium.ImageryProvider | false;
1887
+ initialView?: {
1888
+ longitude: number;
1889
+ latitude: number;
1890
+ height: number;
1891
+ heading?: number;
1892
+ pitch?: number;
1893
+ roll?: number;
1894
+ };
1895
+ }
1896
+
1897
+ declare type ViewerLike = {
1898
+ viewer: Cesium.Viewer;
1899
+ se3dSceneManager: {
1900
+ takeScreenshot: () => Promise<string>;
1901
+ flyToChina: () => void;
1902
+ };
1903
+ se3dTerrainManager: {
1904
+ setTerrain: (enable: boolean, options?: any) => void | Promise<void>;
1905
+ };
1906
+ };
1907
+
1908
+ export { }