@ino-cesium/common 0.0.17-beta.3 → 0.0.17

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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ino-cesium/common",
3
3
  "type": "module",
4
- "version": "0.0.17-beta.3",
4
+ "version": "0.0.17",
5
5
  "author": "koino",
6
6
  "keywords": [
7
7
  "cesium",
@@ -9,8 +9,7 @@
9
9
  "ino-cesium-common"
10
10
  ],
11
11
  "exports": {
12
- ".": "./dist/index.js",
13
- "./ino-css": "./dist/ino-cesium.css"
12
+ ".": "./dist/index.js"
14
13
  },
15
14
  "typesVersions": {
16
15
  "*": {
package/dist/index.d.ts DELETED
@@ -1,708 +0,0 @@
1
- import * as Cesium from 'cesium';
2
- import { FeatureCollection, Point, GeoJsonProperties, LineString, Polygon } from 'geojson';
3
-
4
- interface ISetViewByLngLatOptions {
5
- lng: number;
6
- lat: number;
7
- height?: number;
8
- viewer: Cesium.Viewer;
9
- }
10
- interface ISetViewByPositionOptions {
11
- position: Cesium.Cartesian3;
12
- viewer: Cesium.Viewer;
13
- }
14
- interface ICamearView {
15
- destination: Cesium.Cartesian3;
16
- orientation: {
17
- heading: number;
18
- pitch: number;
19
- roll: number;
20
- };
21
- }
22
- interface ICesiumEventListener {
23
- LEFT_CLICK?: (e: any) => void;
24
- LEFT_POSITION?: (e: any) => void;
25
- MOVE_POSITION?: (e: any) => void;
26
- PICK_FEATURE?: (pickModel: any, feature: any) => void;
27
- MOVE_PICK_FEATURE?: (pickModel: any, feature: any) => void;
28
- }
29
- type DeepPartial<T> = {
30
- [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
31
- };
32
-
33
- interface ISkyBoxSources {
34
- positiveX: string;
35
- negativeX: string;
36
- positiveY: string;
37
- negativeY: string;
38
- positiveZ: string;
39
- negativeZ: string;
40
- }
41
- interface ISkyBoxOptions {
42
- viewer: Cesium.Viewer;
43
- sources?: ISkyBoxSources;
44
- }
45
- interface ISkyBoxOnGroundOptions extends ISkyBoxOptions {
46
- height?: number;
47
- }
48
- interface IYawPitchRoll {
49
- yaw: number;
50
- pitch: number;
51
- roll: number;
52
- offsetYaw?: number;
53
- }
54
-
55
- type types_DeepPartial<T> = DeepPartial<T>;
56
- type types_ICamearView = ICamearView;
57
- type types_ICesiumEventListener = ICesiumEventListener;
58
- type types_ISetViewByLngLatOptions = ISetViewByLngLatOptions;
59
- type types_ISetViewByPositionOptions = ISetViewByPositionOptions;
60
- type types_ISkyBoxOnGroundOptions = ISkyBoxOnGroundOptions;
61
- type types_ISkyBoxOptions = ISkyBoxOptions;
62
- type types_ISkyBoxSources = ISkyBoxSources;
63
- type types_IYawPitchRoll = IYawPitchRoll;
64
- declare namespace types {
65
- export type { types_DeepPartial as DeepPartial, types_ICamearView as ICamearView, types_ICesiumEventListener as ICesiumEventListener, types_ISetViewByLngLatOptions as ISetViewByLngLatOptions, types_ISetViewByPositionOptions as ISetViewByPositionOptions, types_ISkyBoxOnGroundOptions as ISkyBoxOnGroundOptions, types_ISkyBoxOptions as ISkyBoxOptions, types_ISkyBoxSources as ISkyBoxSources, types_IYawPitchRoll as IYawPitchRoll };
66
- }
67
-
68
- /**
69
- * 初始化Cesium
70
- * @param eleId DOM元素ID
71
- * @param options Viewer.ConstructorOptions
72
- */
73
- declare const initCesium: (eleId: string, options?: Cesium.Viewer.ConstructorOptions & {
74
- token?: string;
75
- }) => Cesium.Viewer;
76
- /**
77
- * 修改地球透明度
78
- * @param value 0-1
79
- * @param viewer
80
- */
81
- declare const setGlobeOpatity: (value: number, viewer: Cesium.Viewer) => void;
82
- declare const setCesiumForAutoFitScale: (value: number) => void;
83
- declare const getCesiumForAutoFitScale: () => number;
84
- declare const DefaultViewerOptions: Cesium.Viewer.ConstructorOptions;
85
-
86
- /**
87
- * 设置中心点
88
- * @param options.lng 精度
89
- * @param options.lat 纬度
90
- * @param options.height 高度
91
- * @param options.viewer Cesium Viewer 实例
92
- */
93
- declare const setViewToLnglat: (options: ISetViewByLngLatOptions) => void;
94
- /**
95
- * 飞行至中心点
96
- * @param options.lng 精度
97
- * @param options.lat 纬度
98
- * @param options.height 高度
99
- * @param options.viewer Cesium Viewer 实例
100
- */
101
- declare const flyToLnglat: (options: ISetViewByLngLatOptions) => void;
102
- /**
103
- * 飞行至中心点
104
- * @param options.lng 精度
105
- * @param options.lat 纬度
106
- * @param options.height 高度
107
- * @param options.viewer Cesium Viewer 实例
108
- */
109
- declare const flyToPosition: (options: ISetViewByPositionOptions) => void;
110
- /**
111
- * 获取相机视图
112
- * @param viewer
113
- * @returns camearView
114
- *
115
- * camearView: {
116
- * destination: Cartesian3,
117
- * orientation: {
118
- * heading: number
119
- * pitch: number
120
- * roll: number
121
- * }
122
- * }
123
- */
124
- declare function getCameraView(viewer: Cesium.Viewer): ICamearView;
125
- /**
126
- *
127
- * @param camearView
128
- * camearView: {
129
- * destination: Cartesian3
130
- * orientation: {
131
- * heading: number
132
- * pitch: number
133
- * roll: number
134
- * }
135
- * }
136
- * @param viewer
137
- */
138
- declare function flyToCameraView(camearView: ICamearView, viewer: Cesium.Viewer): void;
139
- /**
140
- * 飞行至数据源
141
- * @param dataScourceId 数据源id
142
- * @param viewer Cesium Viewer 实例
143
- */
144
- declare function flyToDataSource(dataScourceId: string, viewer: Cesium.Viewer): void;
145
- /**
146
- * 飞行至影像图层
147
- * @param imagery 影像图层
148
- * @param viewer Cesium Viewer 实例
149
- */
150
- declare function flyToImagery(imagery: Cesium.ImageryLayer, viewer: Cesium.Viewer): void;
151
- /**
152
- * 飞行至3dtile
153
- * @param {}tileset 3dtile
154
- * @param viewer Cesium Viewer 实例
155
- */
156
- declare function flyToCesium3DTile(tileset: Cesium.Cesium3DTileset, viewer: Cesium.Viewer): void;
157
- /**
158
- * 飞行至球体
159
- * @param sphere 球体
160
- * @param viewer
161
- */
162
- declare function flyToFromSphere(sphere: number[], viewer: Cesium.Viewer): void;
163
- /**
164
- * 控制Cesium地图视图飞向指定的地理区域
165
- * @param {number} west - 西边界经度(度)
166
- * @param {number} south - 南边界纬度(度)
167
- * @param {number} east - 东边界经度(度)
168
- * @param {number} north - 北边界纬度(度)
169
- * @param {Cesium.Viewer} viewer - Cesium地图查看器实例
170
- */
171
- declare const flyToRectangleBounds: (west: number, south: number, east: number, north: number, viewer: Cesium.Viewer) => void;
172
- declare const flyToNorth: (viewer: Cesium.Viewer) => void;
173
- declare function getScreenCenterPoint(viewer: Cesium.Viewer): Cesium.Cartesian3;
174
- /**
175
- * 绕点飞行
176
- */
177
- declare const flyByRotatePoint: (viewer: Cesium.Viewer) => {
178
- /**
179
- * 不传入positions,为当前屏幕中心点
180
- * direction: true: 顺时针旋转,false: 逆时针旋转
181
- */
182
- start: (position?: Cesium.Cartesian3, direction?: boolean) => void;
183
- end: () => void;
184
- };
185
- /**
186
- * 相机原地旋转
187
- */
188
- declare const flyByRotateOut: (viewer: Cesium.Viewer) => {
189
- start: (direction?: boolean) => void;
190
- end: () => void;
191
- };
192
- /**
193
- * 闪烁模型
194
- * @param model
195
- */
196
- declare function twinkleModel(model: any): void;
197
-
198
- /**
199
- * 初始化cesium事件
200
- * @param viewer
201
- * @param eventListener
202
- */
203
- declare const initCesiumEvent: (viewer: Cesium.Viewer, eventListener: ICesiumEventListener) => void;
204
-
205
- declare const numberId: () => string;
206
- declare const getInoCesiumBaseUrl: () => any;
207
-
208
- declare class Tooltip {
209
- static tooltip: Tooltip | null;
210
- private _title;
211
- private _div;
212
- private _message;
213
- constructor(viewer: Cesium.Viewer);
214
- showAt(position: Cesium.Cartesian2, message: string): void;
215
- setVisible(visible: boolean): void;
216
- static createToolTip(viewer: Cesium.Viewer): Tooltip;
217
- destroy(): void;
218
- }
219
-
220
- declare class Popup {
221
- static popup: Popup | null;
222
- private _div;
223
- private viewer;
224
- private offset;
225
- private position;
226
- constructor(viewer: Cesium.Viewer, element: HTMLElement, offset?: Cesium.Cartesian2);
227
- showAt(position: Cesium.Cartesian3): void;
228
- setVisible(visible: boolean): void;
229
- renderPosition(): void;
230
- static createPupup(viewer: Cesium.Viewer, element: HTMLElement, offset?: Cesium.Cartesian2): Popup;
231
- destroy(): void;
232
- }
233
-
234
- /**
235
- * 生成随机点输入geojosn 格式
236
- * @param count 点数量
237
- * @param lngRange 精度范围
238
- * @param latRange 纬度范围
239
- * @returns
240
- */
241
- declare const randomPointToGeoJson: (count: number, lngRange?: number[], latRange?: number[]) => FeatureCollection<Point, GeoJsonProperties>;
242
- declare function randomColor(): string;
243
- declare const randomPolylineToGeoJson: (count: number, lngRange?: number[], latRange?: number[]) => FeatureCollection<LineString, GeoJsonProperties>;
244
- declare const randomPolygonToGeoJson: (count: number, lngRange?: number[], latRange?: number[]) => FeatureCollection<Polygon, GeoJsonProperties>;
245
-
246
- /**
247
- * 创建鹰眼图
248
- * @param eleId
249
- * @param mainViewer
250
- */
251
- declare const createEagleEye: (eleId: string, mainViewer: Cesium.Viewer) => {
252
- viewer: Cesium.Viewer;
253
- open: () => void;
254
- close: () => void;
255
- };
256
-
257
- /**
258
- * 计算空间距离
259
- * @param {Cartesian3} start - 起始点
260
- * @param {Cartesian3} end - 结束点
261
- * @returns {number} - 两点之间的空间距离
262
- */
263
- declare const calcSpaceDistance: (start: Cesium.Cartesian3, end: Cesium.Cartesian3) => number;
264
- /**
265
- * 计算空间距离-多点
266
- * @param {Cartesian3[]} positions - 点集
267
- */
268
- declare function calcSpaceDistances(positions: Cesium.Cartesian3[]): number;
269
- /**
270
- * 计算贴地距离-两点
271
- * @param {Cartesian3} start - 起始点
272
- * @param {Cartesian3} end - 结束点
273
- * @param {ellipsoid} Cesium.Ellipsoid
274
- */
275
- declare function calcGeodesicDistance(start: Cesium.Cartesian3, end: Cesium.Cartesian3, ellipsoid?: Cesium.Ellipsoid): number;
276
- /**
277
- * 计算贴地距离-多点
278
- * @param {Cartesian3[]} positions - 点集
279
- * @returns {number} - 总距离
280
- */
281
- declare function calcGeodesicDistances(positions: Cesium.Cartesian3[]): number;
282
- /**
283
- * 计算质心
284
- * turf Centroid
285
- * @param {Cartesian3[]} positions - 点集
286
- * @returns {Cartesian3} - 质心点
287
- */
288
- declare const calcPoistionCenter: (positions: Cesium.Cartesian3[]) => Cesium.Cartesian3;
289
- /**
290
- * 计算面积
291
- * @param {Cartesian3[]} positions - 点集
292
- * @returns {number} - 面积 单位:平方米
293
- */
294
- declare function calcArea(positions: Array<Cesium.Cartesian3>): number;
295
- /**
296
- * 计算三角形面积
297
- * @param {Cartesian3} vertexA - 三角形顶点A
298
- * @param {Cartesian3} vertexB - 三角形顶点B
299
- * @param {Cartesian3} vertexC - 三角形顶点C
300
- * @returns {number} - 三角形面积
301
- */
302
- declare const calcTriangleArea: (vertexA: Cesium.Cartesian3, vertexB: Cesium.Cartesian3, vertexC: Cesium.Cartesian3) => number;
303
- /**
304
- * 计算地形高度
305
- * @param {TerrainProvider} terrainProvider - 地形提供者
306
- * @param {Cartesian3[]} positions - 点集
307
- * @returns {Cartesian3[]} - 地形高度点集
308
- */
309
- declare const calcTerrainHeightFromPositions: (terrainProvider: Cesium.TerrainProvider, positions: Cesium.Cartesian3[]) => Promise<Cesium.Cartographic[]>;
310
- /**
311
- * 计算场景高度
312
- * @param {TerrainProvider} viewer
313
- * @param {Cartesian3[]} positions - 点集
314
- * @returns {Cartesian3[]} - 地形高度点集
315
- */
316
- declare const calcSceneHeightFromPositions: (viewer: Cesium.Viewer, positions: Cesium.Cartesian3[]) => Promise<Cesium.Cartesian3[]>;
317
- /**
318
- * 计算抛物线点集,
319
- * @param {Cartesian3} startPoint - 开始节点
320
- * @param {Cartesian3} endPoint - 结束节点
321
- * @param {number} angularityFactor - 曲率
322
- * @param {number} numOfSingleLine - 点集数量
323
- * @returns {Cartesian3[]} - 点集
324
- */
325
- declare const clacPositionsForParabola: (startPoint: Cesium.Cartesian3, endPoint: Cesium.Cartesian3, angularityFactor: number, numOfSingleLine: number) => Cesium.Cartesian3[];
326
- /**
327
- * 计算缩放级别,
328
- * 把当前相机高度转为缩放级别
329
- * @param {Camera} camera - 相机
330
- */
331
- declare const calcZoomFromCameraHeight: (camera: Cesium.Camera) => number;
332
- /**
333
- * 计算相机高度
334
- * 把缩放级别转为相机高度
335
- * @无效
336
- */
337
- declare const calcCameraHeightFromZoom: (zoom: number) => number;
338
- /**
339
- * 计算插值点集
340
- * @param positions Cartesian3[]
341
- * @param number 插值点数量
342
- * @returns Cartesian3[]
343
- */
344
- declare const calcLerpPosition: (positions: Cesium.Cartesian3[], number: number) => Cesium.Cartesian3[];
345
- /**
346
- * 根据一组笛卡尔坐标计算包围球
347
- * @param positions 笛卡尔坐标组
348
- */
349
- declare const calcBoundingSphereFromPositions: (positions: Cesium.Cartesian3[]) => Cesium.BoundingSphere;
350
-
351
- declare abstract class BasePrimitive<T> {
352
- protected _primitive: CusPrimitive;
353
- protected _promise: Promise<T>;
354
- protected appearance: Cesium.Appearance | undefined;
355
- protected geometryInstance: Cesium.Appearance | undefined;
356
- protected drawCommand: any;
357
- /**
358
- * 组成primitive的position
359
- * @protected
360
- */
361
- protected shapePositions: Cesium.Cartesian3[];
362
- needUpdate: boolean;
363
- constructor();
364
- update(frameState: any): void;
365
- then(onFulfilled?: any): Promise<T>;
366
- catch(onRejected?: any): Promise<T>;
367
- abstract getPrimitive(): CusPrimitive;
368
- isDestroyed(): boolean;
369
- destroy(): void;
370
- setShapePositions(positions: Cesium.Cartesian3[]): void;
371
- }
372
- type CusPrimitive = Cesium.Primitive | Cesium.GroundPrimitive | Cesium.PointPrimitiveCollection | Cesium.GroundPolylinePrimitive | Cesium.LabelCollection | Cesium.PrimitiveCollection | undefined;
373
-
374
- /**
375
- * 线材质基类
376
- */
377
- declare abstract class BaseMaterialProperty {
378
- protected _definitionChanged: Cesium.Event<(...args: any[]) => void>;
379
- get definitionChanged(): Cesium.Event<(...args: any[]) => void>;
380
- get isConstant(): boolean;
381
- abstract getType(): string;
382
- abstract getValue(time: Cesium.JulianDate, result: any): any;
383
- abstract equals(other: any): boolean;
384
- abstract init(): void;
385
- }
386
-
387
- /**
388
- * 把点集合转为顺时针
389
- */
390
- declare const makePositionsForClockwise: (positions: Cesium.Cartesian3[]) => Cesium.Cartesian3[];
391
- /**
392
- * 把点集合转为逆时针
393
- */
394
- declare const makePositionsForAntiClockwise: (positions: Cesium.Cartesian3[]) => Cesium.Cartesian3[];
395
- /**
396
- * 把笛卡尔坐标数组转为经纬度数组
397
- */
398
- declare const makePositionsToLnglats: (positions: Cesium.Cartesian3[]) => Cesium.Cartographic[];
399
- /**
400
- * 把笛卡尔坐标转为经纬度
401
- */
402
- declare const makePositiontoLnglat: (position: Cesium.Cartesian3) => Cesium.Cartographic;
403
- /**
404
- * 把经纬度数组转为笛卡尔坐标数组
405
- */
406
- declare const makeLnglatsToPositions: (lnglats: Cesium.Cartographic[]) => Cesium.Cartesian3[];
407
- /**
408
- * 把经纬度转为笛卡尔坐标
409
- */
410
- declare const makeLnglatToPosition: (lnglat: Cesium.Cartographic) => Cesium.Cartesian3;
411
- /**
412
- * 点集闭合成面 首位相接
413
- */
414
- declare const makePositionsClose: (positions: Cesium.Cartesian3[]) => Cesium.Cartesian3[];
415
- /**
416
- * 把经纬度数组转为点数据的geojson集合
417
- * @param lnglats
418
- * @returns GeoJSON.FeatureCollection
419
- */
420
- declare const makeLnglatsToPointGeojson: (lnglats: Cesium.Cartographic[]) => GeoJSON.FeatureCollection;
421
- /**
422
- * 把经纬度数组转为线数据的geojson集合
423
- * @param lnglats
424
- * @returns GeoJSON.FeatureCollection
425
- */
426
- declare const makeLnglatsToLineGeojson: (lnglats: Cesium.Cartographic[]) => GeoJSON.FeatureCollection;
427
- /**
428
- * 把经纬度数组转为面数据的geojson集合
429
- * @param lnglats
430
- * @returns GeoJSON.FeatureCollection
431
- */
432
- declare const makeLnglatsToPolygonGeojson: (lnglats: Cesium.Cartographic[]) => GeoJSON.FeatureCollection;
433
- /**
434
- * 把yawPitchRoll转为headingPitchRoll
435
- * 航空中的参数和cesium中的参数有区别 角度转弧度
436
- * @param yawPitchRoll
437
- */
438
- declare const makeYawPitchRollToHeadingPitchRoll: (yawPitchRoll: IYawPitchRoll) => {
439
- heading: number;
440
- pitch: number;
441
- roll: number;
442
- };
443
-
444
- /**
445
- * 创建天空盒
446
- * @param options
447
- */
448
- declare const createSkyBox: (options: ISkyBoxOptions) => Cesium.SkyBox;
449
- /**
450
- * 创建近地天空盒
451
- * @param options
452
- */
453
- declare const createSkyBoxOnGround: (options: ISkyBoxOnGroundOptions) => void;
454
-
455
- /**
456
- * 漫游控制器
457
- * @param viewer Cesium Viewer
458
- *
459
- */
460
- declare const createRoamHandler: (viewer: Cesium.Viewer) => IRoamHandler;
461
- interface IRoamOptions {
462
- /**
463
- * 唯一id, 默认为随机生成
464
- */
465
- id?: string;
466
- /**
467
- * 漫游路径
468
- */
469
- positions: Cesium.Cartesian3[];
470
- /**
471
- * 飞行器参数
472
- */
473
- flyParams: {
474
- /**
475
- * 漫游时间数组 以时间计算飞行速度 数组长度必须与漫游路径点数组长度相同
476
- * 与spped二者取其一 时间优先
477
- */
478
- times?: number[];
479
- /**
480
- * 漫游速度 公里/每小时
481
- * 与times二者取其一
482
- */
483
- speed?: number;
484
- /**
485
- * 飞行器的heading pitch roll
486
- */
487
- hpr?: IRoamItemHPR[];
488
- };
489
- /**
490
- * 漫游目标 可跟随物体和漫游路线设置
491
- */
492
- entity: Cesium.Entity;
493
- /**
494
- * 是否循环
495
- */
496
- loop: boolean;
497
- /**
498
- * 漫游目标属性信息
499
- */
500
- attrs?: any;
501
- }
502
- /**
503
- * 漫游控制器
504
- */
505
- interface IRoamHandler {
506
- set: (options: IRoamOptions) => IRoamItem;
507
- /**
508
- * 漫游目标跟随
509
- * @param roamItem
510
- * @param isLock 是否锁定视角
511
- */
512
- tracked: (roamItem: IRoamItem, isLock: boolean) => void;
513
- /**
514
- * 通过entityId 设置漫游目标跟随
515
- * @param id
516
- * @param isLock 是否锁定视角
517
- */
518
- trackedByEntityId: (id: string, isLock: boolean) => void;
519
- /**
520
- * 停止漫游目标跟随
521
- */
522
- stopTracked: () => void;
523
- remove: (roamItem: IRoamItem) => void;
524
- frameRoam: (roamItem: IRoamItem, time: Cesium.JulianDate) => void;
525
- removeAll: () => void;
526
- Event: IRoamEvent;
527
- lockCameraView: (roamItem: IRoamItem) => void;
528
- /**
529
- * 更新漫游目标姿态
530
- * @param roamItem
531
- * @param flyAttitude
532
- */
533
- updateRoamAttitude: (roamItem: IRoamItem, flyAttitude: FlyAttitude) => void;
534
- }
535
- interface IRoamItem extends IRoamOptions {
536
- /**
537
- * 漫游路径
538
- */
539
- property: Cesium.SampledPositionProperty;
540
- /**
541
- * 开始时间
542
- */
543
- startTime: Cesium.JulianDate | undefined;
544
- /**
545
- * 结束时间
546
- */
547
- stopTime: Cesium.JulianDate | undefined;
548
- /**
549
- * 漫游状态
550
- */
551
- status: RoamStatus;
552
- }
553
- interface IRoaming {
554
- time: Cesium.JulianDate;
555
- position: Cesium.Cartesian3 | undefined;
556
- }
557
- interface IRoamEvent {
558
- /**
559
- * 漫游开始
560
- * @param roamItem
561
- */
562
- start?: (roamItem: IRoamItem) => void;
563
- /**
564
- * 漫游重新开始 调用reStart方法时或触发循环式触发
565
- * @param roamItem
566
- */
567
- reStart?: (roamItem: IRoamItem) => void;
568
- /**
569
- * 漫游中
570
- * @param roamItem
571
- * @param roaming
572
- */
573
- roaming?: (roamItem: IRoamItem, roaming: IRoaming) => void;
574
- /**
575
- * 漫游结束
576
- * @param roamItem
577
- */
578
- end?: (roamItem: IRoamItem) => void;
579
- }
580
- declare enum FlyAttitude {
581
- UP = "UP",
582
- DOWN = "DOWN",
583
- LEFT = "left",
584
- RIGHT = "right",
585
- FRONT = "front",
586
- BACK = "back"
587
- }
588
- declare enum RoamStatus {
589
- END = "END",
590
- START = "START",
591
- ROAMING = "ROAMING"
592
- }
593
- interface IRoamItemHPR {
594
- time: number;
595
- heading: number;
596
- pitch: number;
597
- roll: number;
598
- }
599
-
600
- declare const createBottomStatusBar: (options: IBottomStatusBarOptions) => void;
601
- interface IBottomStatusBarOptions {
602
- viewer: Cesium.Viewer;
603
- /**
604
- * 显示方向角、俯仰角、侧翻角
605
- */
606
- hpr?: boolean;
607
- /**
608
- * 开启点击复制
609
- * 复制当前中心经纬度和高度,相机视角
610
- */
611
- clickCopy?: boolean;
612
- }
613
-
614
- declare const createOpenAnim: (options: IOpenAnimOptions) => Promise<unknown>;
615
- interface IOpenAnimOptions {
616
- viewer: Cesium.Viewer;
617
- center: {
618
- lat: number;
619
- lng: number;
620
- height: number;
621
- };
622
- }
623
-
624
- /**
625
- * 网格8个顶点生成盒子面
626
- * @param cartesianVertices 8个顶点
627
- * @param color 网格颜色
628
- * @param gridId 网格id
629
- */
630
- declare const makeGridToInstanceForBox: (cartesianVertices: any, color: Cesium.Color, gridId: string) => Cesium.GeometryInstance;
631
- /**
632
- * 网格8个顶点生成盒子边线
633
- * @param cartesianVertices 8个顶点
634
- * @param color 网格颜色
635
- * @param gridId 网格id
636
- */
637
- declare const makeGridToInstanceForLine: (cartesianVertices: any, color: Cesium.Color, gridId: string) => Cesium.GeometryInstance;
638
- /**
639
- * 使用顶点极值创建盒子的八个点
640
- * @param maxPoint
641
- * @param minPoint
642
- */
643
- declare const makeGridFromElevationExtrema: (maxPoint: Cesium.Cartographic, minPoint: Cesium.Cartographic) => Cesium.Cartesian3[];
644
- /**
645
- * 使用底面和高度创建网格
646
- * @param topLeft
647
- * @param topRight
648
- * @param bottomRight
649
- * @param bottomLeft
650
- * @param minHeight
651
- * @param maxHeight
652
- */
653
- declare const mekeGridPolygonAndHeight: (topLeft: number, topRight: number, bottomRight: number, bottomLeft: number, minHeight: number, maxHeight: number) => Cesium.Cartesian3[];
654
-
655
- /**
656
- * 坐标转换工具库 - 实现了WGS84、GCJ02(火星坐标)和BD09(百度坐标)之间的相互转换
657
- */
658
- /**
659
- * 坐标点接口定义
660
- */
661
- interface CoordinatePoint {
662
- lng: number;
663
- lat: number;
664
- }
665
- /**
666
- * 坐标转换工具类
667
- */
668
- declare class CoordinateTransformer {
669
- /**
670
- * WGS84坐标转换为GCJ02坐标
671
- * @param point WGS84坐标点
672
- * @returns GCJ02坐标点
673
- */
674
- static wgs84ToGcj02(point: CoordinatePoint): CoordinatePoint;
675
- /**
676
- * GCJ02坐标转换为WGS84坐标
677
- * @param point GCJ02坐标点
678
- * @returns WGS84坐标点
679
- */
680
- static gcj02ToWgs84(point: CoordinatePoint): CoordinatePoint;
681
- /**
682
- * GCJ02坐标转换为BD09坐标
683
- * @param point GCJ02坐标点
684
- * @returns BD09坐标点
685
- */
686
- static gcj02ToBd09(point: CoordinatePoint): CoordinatePoint;
687
- /**
688
- * BD09坐标转换为GCJ02坐标
689
- * @param point BD09坐标点
690
- * @returns GCJ02坐标点
691
- */
692
- static bd09ToGcj02(point: CoordinatePoint): CoordinatePoint;
693
- /**
694
- * BD09坐标转换为WGS84坐标
695
- * @param point BD09坐标点
696
- * @returns WGS84坐标点
697
- */
698
- static bd09ToWgs84(point: CoordinatePoint): CoordinatePoint;
699
- /**
700
- * WGS84坐标转换为BD09坐标
701
- * @param point WGS84坐标点
702
- * @returns BD09坐标点
703
- */
704
- static wgs84ToBd09(point: CoordinatePoint): CoordinatePoint;
705
- }
706
-
707
- export { BaseMaterialProperty, BasePrimitive, types as Common, CoordinateTransformer, DefaultViewerOptions, FlyAttitude, Popup, RoamStatus, Tooltip, calcArea, calcBoundingSphereFromPositions, calcCameraHeightFromZoom, calcGeodesicDistance, calcGeodesicDistances, calcLerpPosition, calcPoistionCenter, calcSceneHeightFromPositions, calcSpaceDistance, calcSpaceDistances, calcTerrainHeightFromPositions, calcTriangleArea, calcZoomFromCameraHeight, clacPositionsForParabola, createBottomStatusBar, createEagleEye, createOpenAnim, createRoamHandler, createSkyBox, createSkyBoxOnGround, flyByRotateOut, flyByRotatePoint, flyToCameraView, flyToCesium3DTile, flyToDataSource, flyToFromSphere, flyToImagery, flyToLnglat, flyToNorth, flyToPosition, flyToRectangleBounds, getCameraView, getCesiumForAutoFitScale, getInoCesiumBaseUrl, getScreenCenterPoint, initCesium, initCesiumEvent, makeGridFromElevationExtrema, makeGridToInstanceForBox, makeGridToInstanceForLine, makeLnglatToPosition, makeLnglatsToLineGeojson, makeLnglatsToPointGeojson, makeLnglatsToPolygonGeojson, makeLnglatsToPositions, makePositionsClose, makePositionsForAntiClockwise, makePositionsForClockwise, makePositionsToLnglats, makePositiontoLnglat, makeYawPitchRollToHeadingPitchRoll, mekeGridPolygonAndHeight, numberId, randomColor, randomPointToGeoJson, randomPolygonToGeoJson, randomPolylineToGeoJson, setCesiumForAutoFitScale, setGlobeOpatity, setViewToLnglat, twinkleModel };
708
- export type { DeepPartial, ICamearView, ICesiumEventListener, IOpenAnimOptions, IRoamEvent, IRoamHandler, IRoamItem, IRoamItemHPR, IRoaming, ISetViewByLngLatOptions, ISetViewByPositionOptions, ISkyBoxOnGroundOptions, ISkyBoxOptions, ISkyBoxSources, IYawPitchRoll };
package/dist/index.js DELETED
@@ -1 +0,0 @@
1
- import*as e from"cesium";import{polygon as t,centroid as n}from"@turf/turf";var i=Object.freeze({__proto__:null});let o=1;const r=(t,n)=>{n||(n={token:""}),n.token&&(e.Ion.defaultAccessToken=n.token);const i={...l,...n},o=new e.Viewer(t,i);return o.scene.postProcessStages.fxaa.enabled=!0,o.scene.msaaSamples=8,console.log("%c%s","color: GREEN; font-size: 20px",`Cesium ${e.VERSION}`),o},s=(e,t)=>{t.scene.globe.translucency.enabled=!0,t.scene.globe.translucency.frontFaceAlpha=e,t.scene.globe.translucency.backFaceAlpha=e},a=e=>{o=e},c=()=>o,l={animation:!1,baseLayerPicker:!1,fullscreenButton:!1,geocoder:!1,homeButton:!1,infoBox:!0,sceneModePicker:!1,selectionIndicator:!1,timeline:!1,navigationHelpButton:!1,scene3DOnly:!0,navigation:!1,navigationInstructionsInitiallyVisible:!1,showRenderLoopErrors:!0,orderIndependentTranslucency:!1,contextOptions:{webgl:{alpha:!0}}},d=t=>{const{lng:n,lat:i,height:o,viewer:r}=t;r.scene.camera.setView({destination:e.Cartesian3.fromDegrees(n,i,o||1e4)})},p=t=>{const{lng:n,lat:i,height:o,viewer:r}=t;r.scene.camera.flyTo({destination:e.Cartesian3.fromDegrees(n,i,o||1e4)})},h=e=>{const{position:t,viewer:n}=e;n.scene.camera.flyTo({destination:t})};function u(t){const n=t.camera.heading,i=t.camera.pitch,o=t.camera.roll;return{destination:new e.Cartesian3(t.camera.position.x,t.camera.position.y,t.camera.position.z),orientation:{heading:n,pitch:i,roll:o}}}function m(e,t){e&&t.scene.camera.flyTo({...e})}function g(e,t){const n=t.dataSources.getByName(e);n.length>0&&t.flyTo(n[0])}function f(e,t){e&&t.flyTo(e)}function y(e,t){t.flyTo(e)}function C(t,n){const i=new e.Cartesian3(t[0],t[1],t[2]),o=new e.BoundingSphere(i,t[3]);n.camera.flyToBoundingSphere(o,{offset:new e.HeadingPitchRange(3.5,-.5,200),duration:2})}const v=(t,n,i,o,r)=>{if(i<=t||o<=n)return void console.error("无效的边界坐标:东必须大于西,北必须大于南");const s={destination:e.Rectangle.fromDegrees(t,n,i,o),duration:3,orientation:{heading:e.Math.toRadians(0),pitch:e.Math.toRadians(-90),roll:0}};r.camera.flyTo(s)},M=t=>{t.camera.flyTo({destination:t.scene.camera.position,orientation:{heading:e.Math.toRadians(0),pitch:e.Math.toRadians(-90),roll:0},duration:1.5})};function w(t){const n=t.scene.canvas,i=n.clientWidth/2,o=n.clientHeight/2;return t.scene.pickPosition(new e.Cartesian2(i,o))}const _=t=>{let n=!1;let i;const o=t.camera;let r=o.pitch,s=0,a=!1;function c(){if(!n||!i)return;let e=o.heading;a?e+=.005:e-=.005,t.camera.setView({destination:i,orientation:{heading:e,pitch:r}}),t.camera.moveBackward(s),requestAnimationFrame(c)}return{start:(l,d)=>{i=l||w(t),r=o.pitch,a=!!d,s=e.Cartesian3.distance(o.position,i),n=!0,c(),t.scene.screenSpaceCameraController.enableInputs=!1},end:()=>{n=!1,t.scene.screenSpaceCameraController.enableInputs=!0}}},b=e=>{let t=!1;let n=!1;function i(){if(!t)return;let o=e.camera.heading;n?o+=.001:o-=.001,e.camera.setView({orientation:{heading:o,pitch:e.camera.pitch}}),requestAnimationFrame(i)}t=!0;return{start:e=>{t=!0,n=!!e,i()},end:()=>{t=!1}}};function T(e){e.show=!1,setTimeout(()=>{e.show=!0,setTimeout(()=>{e.show=!1,setTimeout(()=>{e.show=!0},300)},300)},300)}const E=(t,n)=>{const i=t.scene,o=new e.ScreenSpaceEventHandler(i.canvas);o.setInputAction(e=>{if(n.LEFT_POSITION){const o=i.pickPosition(e.position);x(e.position,o,n.LEFT_POSITION,t)}n.PICK_FEATURE&&P(t,e.position,n.PICK_FEATURE),t._element.style.cursor="default"},e.ScreenSpaceEventType.LEFT_CLICK),o.setInputAction(e=>{if(n.MOVE_POSITION){const o=i.pickPosition(e.endPosition);x(e.endPosition,o,n.MOVE_POSITION,t)}n.MOVE_PICK_FEATURE&&P(t,e.endPosition,n.MOVE_PICK_FEATURE)},e.ScreenSpaceEventType.MOUSE_MOVE)},P=(t,n,i)=>{const o=t.scene.pickPosition(n),r=t.scene.pick(n),s={};if(r){if(t._element.style.cursor="pointer",r instanceof e.Cesium3DTileFeature){r.getPropertyIds().forEach(e=>{s[e]=r.getProperty(e)})}else r.id instanceof e.Cesium3DTileContent?(t._element.style.cursor="pointer",Object.assign(s,{name:"sdfjldks"})):r.id instanceof e.Entity?t._element.style.cursor="pointer":r.primitive&&Object.assign(s,r.primitive.properties);i({position:o,...r},s)}else i(void 0,{})},x=(t,n,i,o)=>{n||(n=e.Cartesian3.fromDegrees(0,0,0));const r=e.Cartographic.fromCartesian(n);i({windowPosition:t,position:n,lnglat:{lng:e.Math.toDegrees(r.longitude),lat:e.Math.toDegrees(r.latitude),height:r.height},cameraView:u(o)})},D=()=>`${Date.now()}${Math.round(9999999999*Math.random()+1)}`,S=()=>window.INO_CESIUM_BASE_URL;class I{static tooltip;_title;_div;_message;constructor(e){const t=document.createElement("DIV");t.id="tooltip",t.className="twipsy right";const n=document.createElement("DIV");n.className="twipsy-inner",t.appendChild(n),this._div=t,this._title=n,this._message="";const i=e._element.getElementsByClassName("cesium-widget")[0];if(!i)throw new Error("The cesium-widget element has not finished loading yet, so the popup cannot be created!");i.appendChild(t),t.onmousemove=e=>{this.showAt({x:e.clientX,y:e.clientY},this._message)}}showAt(e,t){e&&t&&(this.setVisible(!0),this._title.innerHTML=t,this._div.style.left=`${e.x+10}px`,this._div.style.top=e.y-this._div.clientHeight/2+"px",this._message=t)}setVisible(e){this._div.style.display=e?"block":"none"}static createToolTip(e){return I.tooltip||(I.tooltip=new I(e)),I.tooltip}destroy(){I.tooltip&&(this._div&&this._div.parentNode.removeChild(this._div),I.tooltip=null)}}class k{static popup;_div;viewer;offset=new e.Cartesian2(140,150);position=e.Cartesian3.ZERO;constructor(e,t,n){this.viewer=e,n&&(this.offset=n),this._div=t,this._div.style.position="absolute",this._div.style.left="0",this._div.style.top="0",this._div.style.display="none";const i=e._element.getElementsByClassName("cesium-widget")[0];if(!i)throw new Error("The cesium-widget element has not finished loading yet, so the popup cannot be created!");i.appendChild(t),this.renderPosition()}showAt(e){this.position=e,e&&this.setVisible(!0)}setVisible(e){this._div.style.display=e?"block":"none"}renderPosition(){this.viewer.scene.postRender.addEventListener(()=>{if(!this.position.equals(e.Cartesian3.ZERO)){const e=this.viewer.scene.cartesianToCanvasCoordinates(this.position);this._div.style.left=e.x-this.offset.x+"px",this._div.style.top=e.y-this.offset.y+"px"}})}static createPupup(e,t,n){return k.popup||(k.popup=new k(e,t,n)),k.popup}destroy(){k.popup&&(this._div&&this._div.parentNode.removeChild(this._div),k.popup=null)}}const R=(e,t=[-180,180],n=[-90,90])=>{const i=[];for(let o=0;o<e;o++){const e=O(t),o=O(n);i.push({type:"Feature",geometry:{type:"Point",coordinates:[e,o]},properties:{}})}return{type:"FeatureCollection",features:i}};function O(e){const[t,n]=e;return Math.random()*(n-t)+t}function A(){return`rgba(${Math.round(255*Math.random())},${Math.round(255*Math.random())},${Math.round(255*Math.random())},${Math.random()})`}const F=(e,t=[-180,180],n=[-90,90])=>{const i=[];for(let o=0;o<e;o++){const e=Math.floor(O([3,10])),o=[];for(let i=0;i<e;i++){const e=O(t),i=O(n);o.push([e,i])}i.push({type:"Feature",geometry:{type:"LineString",coordinates:o},properties:{}})}return{type:"FeatureCollection",features:i}},N=(e,t=[-180,180],n=[-90,90])=>{const i=[];for(let o=0;o<e;o++){const e=L(t,n);i.push({type:"Feature",geometry:{type:"Polygon",coordinates:[e]}})}return{type:"FeatureCollection",features:i}};function L(e,t){const n=Math.floor(O([3,10])),i=O(e),o=O(t),r=O([1,5]),s=[];for(let e=0;e<n;e++){const t=e/n*2*Math.PI,a=O([.8*r,r]),c=i+a*Math.cos(t),l=o+a*Math.sin(t);s.push([c,l])}return s.push(s[0]),s}const B=(t,n)=>{let i=!1;const o=new e.Viewer(t,{...l,scene3DOnly:!1});o.scene.mode=2;const r=o.scene.screenSpaceCameraController;r.enableRotate=!1,r.enableTranslate=!1,r.enableZoom=!1,r.enableTilt=!1,r.enableLook=!1,n.entities.add({position:e.Cartesian3.fromDegrees(0,0),label:{text:new e.CallbackProperty(()=>(s(),""),!0)}});const s=function(){i||o.camera.flyTo({destination:n.camera.position,orientation:{heading:n.camera.heading,pitch:n.camera.pitch,roll:n.camera.roll},duration:0})};return{viewer:o,open:()=>{i=!1},close:()=>{i=!0}}},V=(t,n)=>{const i=e.Cartographic.fromCartesian(t),o=e.Cartographic.fromCartesian(n),r=new e.EllipsoidGeodesic;r.setEndPoints(i,o);let s=r.surfaceDistance;return s=Math.sqrt(s**2+(o.height-i.height)**2),s};function $(e){let t=0;return e.forEach((n,i)=>{if(i===e.length-1)return;const o=V(n,e[i+1]);t+=o}),t}function G(t,n,i){const{EllipsoidGeodesic:o,Ellipsoid:r}=e;return new o((i=i||r.WGS84).cartesianToCartographic(t),i.cartesianToCartographic(n)).surfaceDistance}function H(e){let t=0;return e.forEach((n,i)=>{if(i===e.length-1)return;const o=G(n,e[i+1]);t+=o}),t}const z=i=>{if(i.length<4)return e.BoundingSphere.fromPoints(i).center;const o=t([i.map(e=>[e.x,e.y])]),r=e.BoundingSphere.fromPoints(i).center,s=n(o);return new e.Cartesian3(s.geometry.coordinates[0],s.geometry.coordinates[1],r.z)};function U(t){let n=0;const{CoplanarPolygonGeometry:i,VertexFormat:o,defined:r,Cartesian3:s}=e,a=i.createGeometry(i.fromPositions({positions:t,vertexFormat:o.POSITION_ONLY}));if(r(a)){const e=a.indices,t=a.attributes.position.values;for(let i=0;i<e.length;i+=3){const o=e[i],r=e[i+1],a=e[i+2];n+=j(s.unpack(t,3*o,{}),s.unpack(t,3*r,{}),s.unpack(t,3*a,{}))}}return n}const j=(t,n,i)=>{const{Cartesian3:o}=e,r=o.subtract(t,n,{}),s=o.subtract(i,n,{}),a=o.cross(r,s,r);return.5*o.magnitude(a)},q=async(t,n)=>{const i=n.map(t=>e.Cartographic.fromCartesian(t));return await e.sampleTerrainMostDetailed(t,i)},X=async(e,t)=>await e.scene.clampToHeightMostDetailed(t),Z=(t,n,i,o)=>{const r=[],s=e.Cartographic.fromCartesian(t),a=e.Cartographic.fromCartesian(n),c=180*s.longitude/Math.PI,l=180*s.latitude/Math.PI,d=180*a.longitude/Math.PI,p=180*a.latitude/Math.PI,h=Math.sqrt((c-d)*(c-d)+(l-p)*(l-p))*i,u=e.Cartesian3.clone(t),m=e.Cartesian3.clone(n),g=e.Cartesian3.distance(u,e.Cartesian3.ZERO),f=e.Cartesian3.distance(m,e.Cartesian3.ZERO);if(e.Cartesian3.normalize(u,u),e.Cartesian3.normalize(m,m),!e.Cartesian3.distance(u,m))return r;const y=e.Cartesian3.angleBetween(u,m);r.push(t);for(let t=1;t<o-1;t++){const n=1*t/(o-1),i=1-n,s=Math.sin(i*y)/Math.sin(y),a=Math.sin(n*y)/Math.sin(y),c=e.Cartesian3.multiplyByScalar(u,s,new e.Cartesian3),l=e.Cartesian3.multiplyByScalar(m,a,new e.Cartesian3);let d=e.Cartesian3.add(c,l,new e.Cartesian3);const p=n*Math.PI,C=g*i+f*n+Math.sin(p)*h;d=e.Cartesian3.multiplyByScalar(d,C,d),r.push(d)}return r.push(n),r},W=e=>{const t=e.positionCartographic.height,n=-40467.74;return Math.round(n+80955.31/(1+(t/91610.74)**7096758e-11))},Y=e=>e,K=(t,n)=>{const i=[];let o=0,r=0,s=0;const a=[];for(let n=0;n<t.length-1;++n)o+=e.Cartesian3.distance(t[n],t[n+1]);for(let n=0;n<t.length;n++)0===n?r=0:(s+=e.Cartesian3.distance(t[n-1],t[n]),r=s/o),i.push(r);const c=new e.LinearSpline({times:i,points:t});for(let e=0;e<=n;e++){const t=c.evaluate(e/n);a.push(t)}return a},J=t=>{const n=new e.BoundingSphere(e.Cartesian3.ZERO,0);return e.BoundingSphere.fromPoints(t,n),n};class Q{_primitive;_promise;appearance;geometryInstance;drawCommand;shapePositions;needUpdate=!1;constructor(){this._primitive=void 0,this.appearance=void 0,this.geometryInstance=void 0,this._promise=null,this.drawCommand=null,this.needUpdate=!1,this.shapePositions=[]}update(e){const t=this.getPrimitive();if(t){this._primitive=t;this._primitive.update(e)}}then(e=null){return this._promise?.then(e)}catch(e=null){return this._promise?.catch(e)}isDestroyed(){return!!this._primitive}destroy(){this._primitive=void 0}setShapePositions(e){this.shapePositions=e}}class ee{_definitionChanged=new e.Event;get definitionChanged(){return this._definitionChanged}get isConstant(){return!1}}const te=t=>{let n=0;for(let i=0;i<t.length;i++){const o=t[i],r=t[(i+1)%t.length];n+=e.Cartesian3.cross(o,r,new e.Cartesian3).z}return n>0?t.reverse():t},ne=t=>{let n=0;for(let i=0;i<t.length;i++){const o=t[i],r=t[(i+1)%t.length];n+=e.Cartesian3.cross(o,r,new e.Cartesian3).z}return n<0?t.reverse():t},ie=e=>e.map(e=>oe(e)),oe=t=>{const n=e.Cartographic.fromCartesian(t);return{longitude:e.Math.toDegrees(n.longitude),latitude:e.Math.toDegrees(n.latitude),height:n.height}},re=t=>t.map(t=>e.Cartesian3.fromDegrees(t.longitude,t.latitude,t.height)),se=t=>e.Cartesian3.fromDegrees(t.longitude,t.latitude,t.height),ae=e=>{const t=e[0],n=e[e.length-1];return t.x===n.x&&t.y===n.y&&t.z===n.z?e:[...e,e[0]]},ce=e=>{const t=[];return e.forEach(e=>{t.push({type:"Feature",geometry:{type:"Point",coordinates:[e.longitude,e.latitude]},properties:{height:e.height}})}),{type:"FeatureCollection",features:t}},le=e=>{const t=[];return e.forEach((n,i)=>{0!==i&&t.push({type:"Feature",geometry:{type:"LineString",coordinates:[[e[i-1].longitude,e[i-1].latitude],[n.longitude,n.latitude]]},properties:{height:n.height}})}),{type:"FeatureCollection",features:t}},de=e=>{const t=[];return t.push({type:"Feature",geometry:{type:"Polygon",coordinates:[e.map(e=>[e.longitude,e.latitude])]},properties:{heights:e.map(e=>e.height)}}),{type:"FeatureCollection",features:t}},pe=t=>({heading:e.Math.toRadians(t.yaw+(t.offsetYaw||0)),pitch:e.Math.toRadians(t.pitch),roll:e.Math.toRadians(t.roll)}),he=e.BoxGeometry,ue=e.Cartesian3,me=e.defaultValue,ge=e.defined,fe=e.destroyObject,ye=e.DeveloperError,Ce=e.GeometryPipeline,ve=e.Matrix3,Me=e.Matrix4,we=e.Transforms,_e=e.VertexFormat,be=e.BufferUsage,Te=e.CubeMap,Ee=e.DrawCommand,Pe=e.loadCubeMap,xe=e.RenderState,De=e.VertexArray,Se=e.BlendingState,Ie=e.SceneMode,ke=e.ShaderProgram,Re=e.ShaderSource,Oe=new ve;class Ae{constructor(t){e.defined(e.Matrix4.getRotation)||(e.Matrix4.getRotation=e.Matrix4.getMatrix3),this.sources=t.sources,this._sources=void 0,this.show=me(t.show,!0),this._command=new Ee({modelMatrix:Me.clone(Me.IDENTITY),owner:this}),this._cubeMap=void 0,this._attributeLocations=void 0,this._useHdr=void 0}update(e,t){const n=this;if(!this.show)return;if(e.mode!==Ie.SCENE3D&&e.mode!==Ie.MORPHING)return;if(!e.passes.render)return;const i=e.context;if(this._sources!==this.sources){this._sources=this.sources;const e=this.sources;if(!(ge(e.positiveX)&&ge(e.negativeX)&&ge(e.positiveY)&&ge(e.negativeY)&&ge(e.positiveZ)&&ge(e.negativeZ)))throw new ye("this.sources is required and must have positiveX, negativeX, positiveY, negativeY, positiveZ, and negativeZ properties.");if(typeof e.positiveX!=typeof e.negativeX||typeof e.positiveX!=typeof e.positiveY||typeof e.positiveX!=typeof e.negativeY||typeof e.positiveX!=typeof e.positiveZ||typeof e.positiveX!=typeof e.negativeZ)throw new ye("this.sources properties must all be the same type.");"string"==typeof e.positiveX?Pe(i,this._sources).then(e=>{n._cubeMap=n._cubeMap&&n._cubeMap.destroy(),n._cubeMap=e}):(this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),this._cubeMap=new Te({context:i,source:e}))}const o=this._command;if(o.modelMatrix=we.eastNorthUpToFixedFrame(e.camera._positionWC),!ge(o.vertexArray)){o.uniformMap={u_cubeMap:()=>n._cubeMap,u_rotateMatrix:()=>Me.getRotation(o.modelMatrix,Oe)};const e=he.createGeometry(he.fromDimensions({dimensions:new ue(2,2,2),vertexFormat:_e.POSITION_ONLY})),t=this._attributeLocations=Ce.createAttributeLocations(e);o.vertexArray=De.fromGeometry({context:i,geometry:e,attributeLocations:t,bufferUsage:be._DRAW}),o.renderState=xe.fromCache({blending:Se.ALPHA_BLEND})}if(!ge(o.shaderProgram)||this._useHdr!==t){const e=new Re({defines:[t?"HDR":""],sources:["precision highp float;\n\nuniform samplerCube u_cubeMap;\nin vec3 v_texCoord;\nout vec4 fragColor;\n\nvoid main() {\n vec4 color = texture(u_cubeMap, normalize(v_texCoord));\n fragColor = vec4(czm_gammaCorrect(color).rgb, czm_morphTime);\n}"]});o.shaderProgram=ke.fromCache({context:i,vertexShaderSource:"#version 300 es\n\nprecision highp float;\n\nin vec3 position;\nout vec3 v_texCoord;\n\nuniform mat3 u_rotateMatrix;\n\nvoid main() {\n vec3 p = czm_viewRotation * u_rotateMatrix * (czm_temeToPseudoFixed * (czm_entireFrustum.y * position));\n gl_Position = czm_projection * vec4(p, 1.0);\n v_texCoord = position;\n}\n",fragmentShaderSource:e,attributeLocations:this._attributeLocations}),this._useHdr=t}return ge(this._cubeMap)?o:void 0}isDestroyed(){return!1}destroy(){const e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),fe(this)}}const Fe=t=>{const{viewer:n,sources:i}=t;return n.scene.skyBox=new e.SkyBox({sources:i}),n.scene.skyBox},Ne=t=>{let{viewer:n,sources:i}=t;const o=t.height?t.height:225705,r=n.scene.skyBox;i||(i={positiveX:`${S()}/assets/ground-skybox/px.jpg`,negativeX:`${S()}/assets/ground-skybox/nx.jpg`,positiveY:`${S()}/assets/ground-skybox/py.jpg`,negativeY:`${S()}/assets/ground-skybox/ny.jpg`,positiveZ:`${S()}/assets/ground-skybox/pz.jpg`,negativeZ:`${S()}/assets/ground-skybox/nz.jpg`});const s=new Ae({sources:i});n.scene.postRender.addEventListener(()=>{const t=n.camera.position;e.Cartographic.fromCartesian(t).height<o?(n.scene.skyBox=s,n.scene.skyAtmosphere.show=!1):(n.scene.skyBox=r,n.scene.skyAtmosphere.show=!0)})},Le=t=>{const n=[];let i,o;t.clock.shouldAnimate=!0;const r={},s=(e,n)=>{if(a(),e.entity.cylinder){const n=e.entity.cylinder;n.roamId=e.id,e.entity.cylinder=void 0,o=t.entities.add({position:e.property,cylinder:n})}t.trackedEntity=e.entity,n&&(i=e)},a=()=>{if(o){t.entities.remove(o);const e=n.find(e=>e.id===o.cylinder.roamId);e&&(e.entity.cylinder=o.cylinder),o=void 0}},c=()=>{t.trackedEntity=void 0,i=void 0,a()},l=e=>{t.trackedEntity?.id===e.entity.id&&c(),t.entities.remove(e.entity);const i=n.findIndex(t=>t.id===e.id);i>-1&&n.splice(i,1)},d=(e,t)=>{const n=e.property.getValue(t);if(n&&(e.status="ROAMING",m.roaming&&m.roaming(e,{time:t,position:n})),e.stopTime.secondsOfDay<t.secondsOfDay&&"END"!==e.status&&(e.status="END",m.end&&m.end(e),e.loop?p(e):c()),e.flyParams.hpr){const i=r[e.id].find(e=>e.time>t.secondsOfDay);i&&u(e,i,n)}},p=n=>{const{property:i,startTime:o,stopTime:r}=h(n);n.stopTime=r,n.startTime=o,n.property=i,n.flyParams.hpr||(n.entity.orientation=new e.VelocityOrientationProperty(i)),n.entity.position=i,n.status="START",t.clock.currentTime=o,t.clock.multiplier=1,m.reStart&&m.reStart(n)},h=t=>{const n=[],{positions:i,flyParams:o}=t,s=new e.SampledPositionProperty;let a=0;const c=e.JulianDate.now();let l=c.clone();return i.forEach((t,r)=>{let d=e.JulianDate.now();if(r){let n=0;if(o.speed){n=e.Cartesian3.distance(t,i[r-1])/(1e3*o.speed/3600)}o.times&&(n=(o.times[r]-o.times[r-1])/1e3),a+=n,d=e.JulianDate.addSeconds(c,a,new e.JulianDate)}else d=c;l=d,s.addSample(d,t),o.hpr&&n.push({time:d.secondsOfDay,heading:o.hpr[r].heading,pitch:o.hpr[r].pitch,roll:o.hpr[r].roll})}),r[t.id]=n,{property:s,startTime:c,stopTime:l}},u=(t,n,i)=>{if(!i)return;const{heading:o,pitch:r,roll:s}=n,a=new e.HeadingPitchRoll(o,r,s);t.entity.orientation=Transforms.headingPitchRollQuaternion(i,a)};t.scene.preRender.addEventListener((o,r)=>{if(n.forEach(e=>{d(e,r)}),!i)return;const s=i.entity.computeModelMatrix(t.clock.currentTime);s&&t.camera.lookAtTransform(s,new e.Cartesian3(...[-20,0,5]))});const m={};return{set:i=>{const{entity:o}=i;i.id=D(),t.entities.add(o);const{property:r,startTime:s,stopTime:a}=h(i);i.flyParams.hpr||(o.orientation=new e.VelocityOrientationProperty(r)),o.position=r;const c={...i,startTime:s,stopTime:a,property:r,status:"START"};return t.clock.currentTime=s,t.clock.multiplier=1,n.push(c),c.status="START",m.start&&m.start(c),c},tracked:s,stopTracked:c,remove:l,frameRoam:d,trackedByEntityId:(e,t)=>{const i=n.find(t=>t.entity.id===e);i&&s(i,t)},removeAll:()=>{n.forEach(e=>{l(e)}),n.length=0},Event:m,lockCameraView:e=>{i=e},updateRoamAttitude:(t,n)=>{"UP"!==n&&"DOWN"!==n||(t.entity.orientation=void 0),"front"!==n&&"back"!==n||(t.entity.orientation=new e.VelocityOrientationProperty(t.property))}}};var Be=(e=>(e.UP="UP",e.DOWN="DOWN",e.LEFT="left",e.RIGHT="right",e.FRONT="front",e.BACK="back",e))(Be||{}),Ve=(e=>(e.END="END",e.START="START",e.ROAMING="ROAMING",e))(Ve||{});let $e=100,Ge="",He="0";const ze=t=>{const{viewer:n}=t,i=document.createElement("div");i.className="bottom-status-bar";const o=document.createElement("div");o.className="scale-bar",o.innerHTML="";const r=document.createElement("div");r.className="scale-label",r.innerHTML="",o.appendChild(r),i.appendChild(o);const s=document.createElement("div");s.id="bottom-status-bar-camera",t.clickCopy&&(s.style.pointerEvents="auto",s.style.cursor="pointer"),i.appendChild(s),s.style.display="flex";const a=document.createElement("div"),c=document.createElement("div"),l=n._element.getElementsByClassName("cesium-widget")[0];if(!l)throw new Error("The cesium-widget element has not finished loading yet, so the popup cannot be created!");l.appendChild(i),E(n,{MOVE_POSITION(e){s.innerHTML=`\n 经度:${e.lnglat.lng.toFixed(6)}&nbsp;&nbsp;\n 纬度:${e.lnglat.lat.toFixed(6)}&nbsp;&nbsp;\n 高程:${e.lnglat.height.toFixed(2)}&nbsp;&nbsp;\n `,t.clickCopy&&u(n),s.appendChild(c),s.appendChild(a)}}),t.clickCopy&&document.addEventListener("click",e=>{e.target.id});let d=Date.now(),p=0;const h=()=>{requestAnimationFrame(()=>{if(p+=1,p>=30){const e=Date.now(),t=e-d,n=Math.round(1e3/(t/p));d=e,p=0,a.innerHTML=`${n} FPS`}t.hpr?c.innerHTML=`\n 方位角:${e.Math.toDegrees(n.camera.heading).toFixed(1)}°&nbsp;&nbsp;\n 俯仰角:${e.Math.toDegrees(n.camera.pitch).toFixed(1)}°&nbsp;&nbsp;\n 翻滚角:${e.Math.toDegrees(n.camera.roll).toFixed(1)}°&nbsp;&nbsp;\n `:c.innerHTML="",c.innerHTML+=`\n 视高:${n.camera.positionCartographic.height.toFixed(0)}m&nbsp;&nbsp;\n `;const i=Ue(n);r.innerHTML=`${i.distanceLabel}`,h()})};h()},Ue=t=>{const n=t.camera.positionCartographic.height.toFixed(0);if(n===He)return{barWidth:$e,distanceLabel:Ge};He=n;const i=new e.EllipsoidGeodesic,o=[1,2,3,5,10,20,30,50,100,200,300,500,1e3,2e3,3e3,5e3,1e4,2e4,3e4,5e4,1e5,2e5,3e5,5e5,1e6,2e6,3e6,5e6,1e7,2e7,3e7,5e7],r=t.scene,s=r.canvas.clientWidth,a=r.canvas.clientHeight,c=r.camera.getPickRay(new e.Cartesian2(s/2|0,a-1)),l=r.camera.getPickRay(new e.Cartesian2(1+s/2|0,a-1)),d=r.globe,p=d.pick(c,r),h=d.pick(l,r);if(!e.defined(p)||!e.defined(h))return{barWidth:$e,distanceLabel:Ge};const u=d.ellipsoid.cartesianToCartographic(p),m=d.ellipsoid.cartesianToCartographic(h);i.setEndPoints(u,m);const g=i.surfaceDistance;let f;for(let t=o.length-1;!e.defined(f)&&t>=0;--t)o[t]/g<100&&(f=o[t]);if(e.defined(f)){const e=f>=1e3?`${(f/1e3).toString()} km`:`${f.toString()} m`;$e=f/g|0,Ge=e}else $e=0,Ge="";return{barWidth:$e,distanceLabel:Ge}},je=t=>new Promise(n=>{const{viewer:i,center:o}=t;let r=o.lng,s=1,a=null;const c=t=>{null===a&&(a=t);r-=(t-a)/2e4*2,r<-180&&(r=180,s+=1),2===s&&r>o.lng?i.camera.flyTo({destination:e.Cartesian3.fromDegrees(o.lng,o.lat,3e7),duration:2,orientation:{heading:e.Math.toRadians(360),pitch:e.Math.toRadians(-90),roll:0},easingFunction:e.EasingFunction.LINEAR_NONE,complete:()=>{i.camera.flyTo({destination:e.Cartesian3.fromDegrees(o.lng,o.lat,o.height),duration:3,orientation:{heading:e.Math.toRadians(2.8),pitch:e.Math.toRadians(-90),roll:6.282253919167732},complete:()=>{n(!0)}})}}):(i.camera.setView({destination:e.Cartesian3.fromDegrees(r,o.lat,3e7),orientation:{heading:e.Math.toRadians(360),pitch:e.Math.toRadians(-90),roll:0}}),requestAnimationFrame(c))};requestAnimationFrame(c)}),qe=(t,n,i)=>{const o=new Float64Array(24);for(let e=0;e<8;e++)o[3*e]=t[e].x,o[3*e+1]=t[e].y,o[3*e+2]=t[e].z;const r=new Uint16Array([0,1,2,0,2,3,4,6,5,4,7,6,0,4,1,1,4,5,1,5,2,2,5,6,2,6,3,3,6,7,3,7,0,0,7,4]),s={position:new e.GeometryAttribute({componentDatatype:e.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:o})},a=new e.Geometry({indices:r,attributes:s,primitiveType:e.PrimitiveType.TRIANGLES,boundingSphere:e.BoundingSphere.fromVertices(o)});return new e.GeometryInstance({geometry:a,attributes:{color:e.ColorGeometryInstanceAttribute.fromColor(n)},id:`${i}`})},Xe=(t,n,i)=>{const[o,r,s,a,c,l,d,p]=t,h=[o,r,r,s,s,a,a,o,c,l,l,d,d,p,p,c,o,c,c,l,l,r,r,o,a,p,p,d,d,s,s,a,o,a,a,p,p,c,c,o,r,l,l,d,d,s,s,r];return new e.GeometryInstance({geometry:new e.PolylineGeometry({positions:h,width:2,vertexFormat:e.PolylineColorAppearance.VERTEX_FORMAT}),attributes:{color:e.ColorGeometryInstanceAttribute.fromColor(n)},id:`${i}`})},Ze=(t,n)=>[e.Cartesian3.fromDegrees(t.longitude,t.latitude,n.height),e.Cartesian3.fromDegrees(t.longitude,n.latitude,n.height),e.Cartesian3.fromDegrees(n.longitude,n.latitude,n.height),e.Cartesian3.fromDegrees(n.longitude,t.latitude,n.height),e.Cartesian3.fromDegrees(t.longitude,t.latitude,t.height),e.Cartesian3.fromDegrees(t.longitude,n.latitude,t.height),e.Cartesian3.fromDegrees(n.longitude,n.latitude,t.height),e.Cartesian3.fromDegrees(n.longitude,t.latitude,t.height)],We=(t,n,i,o,r,s)=>[e.Cartesian3.fromDegrees(t,t,r),e.Cartesian3.fromDegrees(n,n,r),e.Cartesian3.fromDegrees(i,i,r),e.Cartesian3.fromDegrees(o,o,r),e.Cartesian3.fromDegrees(t,t,s),e.Cartesian3.fromDegrees(n,n,s),e.Cartesian3.fromDegrees(i,i,s),e.Cartesian3.fromDegrees(o,o,s)],Ye=3e3*Math.PI/180,Ke=Math.PI,Je=6378245,Qe=.006693421622965943,et=(e,t)=>!(e>72.004&&e<137.8347&&t>.8293&&t<55.8271),tt=(e,t)=>{let n=2*e-100+3*t+.2*t*t+.1*e*t+.2*Math.sqrt(Math.abs(e));return n+=2*(20*Math.sin(6*e*Ke)+20*Math.sin(2*e*Ke))/3,n+=2*(20*Math.sin(t*Ke)+40*Math.sin(t/3*Ke))/3,n+=2*(160*Math.sin(t/12*Ke)+320*Math.sin(t*Ke/30))/3,n},nt=(e,t)=>{let n=300+e+2*t+.1*e*e+.1*e*t+.1*Math.sqrt(Math.abs(e));return n+=2*(20*Math.sin(6*e*Ke)+20*Math.sin(2*e*Ke))/3,n+=2*(20*Math.sin(e*Ke)+40*Math.sin(e/3*Ke))/3,n+=2*(150*Math.sin(e/12*Ke)+300*Math.sin(e/30*Ke))/3,n},it=(e,t)=>{if(et(e,t))return[e,t];let n=tt(e-105,t-35),i=nt(e-105,t-35);const o=t/180*Ke;let r=Math.sin(o);r=1-Qe*r*r;const s=Math.sqrt(r);n=180*n/(Je*(1-Qe)/(r*s)*Ke),i=180*i/(Je/s*Math.cos(o)*Ke);return[e+i,t+n]},ot=(e,t)=>{if(et(e,t))return[e,t];let n=tt(e-105,t-35),i=nt(e-105,t-35);const o=t/180*Ke;let r=Math.sin(o);r=1-Qe*r*r;const s=Math.sqrt(r);n=180*n/(Je*(1-Qe)/(r*s)*Ke),i=180*i/(Je/s*Math.cos(o)*Ke);return[2*e-(e+i),2*t-(t+n)]},rt=(e,t)=>{const n=e,i=t,o=Math.sqrt(n*n+i*i)+2e-5*Math.sin(i*Ye),r=Math.atan2(i,n)+3e-6*Math.cos(n*Ye);return[o*Math.cos(r)+.0065,o*Math.sin(r)+.006]},st=(e,t)=>{const n=e-.0065,i=t-.006,o=Math.sqrt(n*n+i*i)-2e-5*Math.sin(i*Ye),r=Math.atan2(i,n)-3e-6*Math.cos(n*Ye);return[o*Math.cos(r),o*Math.sin(r)]};class at{static wgs84ToGcj02(e){const[t,n]=it(e.lng,e.lat);return{lng:t,lat:n}}static gcj02ToWgs84(e){const[t,n]=ot(e.lng,e.lat);return{lng:t,lat:n}}static gcj02ToBd09(e){const[t,n]=rt(e.lng,e.lat);return{lng:t,lat:n}}static bd09ToGcj02(e){const[t,n]=st(e.lng,e.lat);return{lng:t,lat:n}}static bd09ToWgs84(e){const[t,n]=((e,t)=>{const[n,i]=st(e,t);return ot(n,i)})(e.lng,e.lat);return{lng:t,lat:n}}static wgs84ToBd09(e){const[t,n]=((e,t)=>{const[n,i]=it(e,t);return rt(n,i)})(e.lng,e.lat);return{lng:t,lat:n}}}export{ee as BaseMaterialProperty,Q as BasePrimitive,i as Common,at as CoordinateTransformer,l as DefaultViewerOptions,Be as FlyAttitude,k as Popup,Ve as RoamStatus,I as Tooltip,U as calcArea,J as calcBoundingSphereFromPositions,Y as calcCameraHeightFromZoom,G as calcGeodesicDistance,H as calcGeodesicDistances,K as calcLerpPosition,z as calcPoistionCenter,X as calcSceneHeightFromPositions,V as calcSpaceDistance,$ as calcSpaceDistances,q as calcTerrainHeightFromPositions,j as calcTriangleArea,W as calcZoomFromCameraHeight,Z as clacPositionsForParabola,ze as createBottomStatusBar,B as createEagleEye,je as createOpenAnim,Le as createRoamHandler,Fe as createSkyBox,Ne as createSkyBoxOnGround,b as flyByRotateOut,_ as flyByRotatePoint,m as flyToCameraView,y as flyToCesium3DTile,g as flyToDataSource,C as flyToFromSphere,f as flyToImagery,p as flyToLnglat,M as flyToNorth,h as flyToPosition,v as flyToRectangleBounds,u as getCameraView,c as getCesiumForAutoFitScale,S as getInoCesiumBaseUrl,w as getScreenCenterPoint,r as initCesium,E as initCesiumEvent,Ze as makeGridFromElevationExtrema,qe as makeGridToInstanceForBox,Xe as makeGridToInstanceForLine,se as makeLnglatToPosition,le as makeLnglatsToLineGeojson,ce as makeLnglatsToPointGeojson,de as makeLnglatsToPolygonGeojson,re as makeLnglatsToPositions,ae as makePositionsClose,ne as makePositionsForAntiClockwise,te as makePositionsForClockwise,ie as makePositionsToLnglats,oe as makePositiontoLnglat,pe as makeYawPitchRollToHeadingPitchRoll,We as mekeGridPolygonAndHeight,D as numberId,A as randomColor,R as randomPointToGeoJson,N as randomPolygonToGeoJson,F as randomPolylineToGeoJson,a as setCesiumForAutoFitScale,s as setGlobeOpatity,d as setViewToLnglat,T as twinkleModel};