@xingm/vmap-cesium-toolbar 0.0.6 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/README.md +126 -230
  2. package/dist/README.md +172 -0
  3. package/dist/adapters/DrawHelperAdapter.d.ts +143 -0
  4. package/dist/adapters/MapLoaderAdapter.d.ts +44 -0
  5. package/dist/adapters/OverlayServiceAdapter.d.ts +102 -0
  6. package/dist/adapters/ToolbarAdapter.d.ts +71 -0
  7. package/dist/adapters/index.d.ts +23 -0
  8. package/dist/components/BaseComponent.d.ts +116 -0
  9. package/dist/components/SearchBox.d.ts +136 -0
  10. package/dist/components/Toolbar.d.ts +115 -0
  11. package/dist/components/ToolbarButton.d.ts +100 -0
  12. package/dist/components/index.d.ts +33 -0
  13. package/dist/core/MapPlugin.d.ts +160 -0
  14. package/dist/core/constants.d.ts +88 -0
  15. package/dist/core/entities/BaseOverlay.d.ts +156 -0
  16. package/dist/core/entities/Circle.d.ts +102 -0
  17. package/dist/core/entities/Icon.d.ts +86 -0
  18. package/dist/core/entities/InfoWindow.d.ts +116 -0
  19. package/dist/core/entities/Label.d.ts +92 -0
  20. package/dist/core/entities/Marker.d.ts +66 -0
  21. package/dist/core/entities/Polygon.d.ts +93 -0
  22. package/dist/core/entities/Polyline.d.ts +72 -0
  23. package/dist/core/entities/Rectangle.d.ts +99 -0
  24. package/dist/core/entities/Ring.d.ts +114 -0
  25. package/dist/core/entities/SVG.d.ts +89 -0
  26. package/dist/core/entities/index.d.ts +27 -0
  27. package/dist/core/index.d.ts +25 -0
  28. package/dist/core/layers/BaiduMapLayer.d.ts +37 -0
  29. package/dist/core/layers/CustomMapLayer.d.ts +43 -0
  30. package/dist/core/layers/GaodeMapLayer.d.ts +41 -0
  31. package/dist/core/layers/HeatmapLayer.d.ts +118 -0
  32. package/dist/core/layers/MapLayer.d.ts +37 -0
  33. package/dist/core/layers/OSMMapLayer.d.ts +37 -0
  34. package/dist/core/layers/PointClusterLayer.d.ts +119 -0
  35. package/dist/core/layers/TDTMapLayer.d.ts +45 -0
  36. package/dist/core/layers/index.d.ts +15 -0
  37. package/dist/core/services/draw/DrawInteractionController.d.ts +16 -0
  38. package/dist/core/services/draw/DrawService.d.ts +38 -0
  39. package/dist/core/services/draw/DrawSessionStore.d.ts +28 -0
  40. package/dist/core/services/draw/drawDefaults.d.ts +16 -0
  41. package/dist/core/services/draw/entities/drawEntityFactory.d.ts +10 -0
  42. package/dist/core/services/draw/entities/drawEntityRegistry.d.ts +8 -0
  43. package/dist/core/services/draw/entities/drawFinalFactory.d.ts +14 -0
  44. package/dist/core/services/draw/entities/drawPreviewFactory.d.ts +15 -0
  45. package/dist/core/services/draw/geometry/drawGeometry.d.ts +11 -0
  46. package/dist/core/services/draw/geometry/drawPosition.d.ts +6 -0
  47. package/dist/core/services/draw/index.d.ts +7 -0
  48. package/dist/core/services/draw/labels/drawHint.d.ts +16 -0
  49. package/dist/core/services/draw/labels/measurementCanvas.d.ts +8 -0
  50. package/dist/core/services/draw/labels/measurementLabelFactory.d.ts +18 -0
  51. package/dist/core/services/draw/measurementThemeResolver.d.ts +9 -0
  52. package/dist/core/services/draw/types/drawState.d.ts +37 -0
  53. package/dist/core/services/draw/types/drawTypes.d.ts +97 -0
  54. package/dist/core/services/index.d.ts +10 -0
  55. package/dist/core/services/overlay/OverlayService.d.ts +188 -0
  56. package/dist/core/services/overlay/index.d.ts +7 -0
  57. package/dist/core/services/toolbar/ToolbarService.d.ts +175 -0
  58. package/dist/core/services/toolbar/buttons/BaseButtonHandler.d.ts +111 -0
  59. package/dist/core/services/toolbar/buttons/LayersButtonHandler.d.ts +47 -0
  60. package/dist/core/services/toolbar/buttons/MeasureButtonHandler.d.ts +94 -0
  61. package/dist/core/services/toolbar/buttons/SearchButtonHandler.d.ts +111 -0
  62. package/dist/core/services/toolbar/buttons/SimpleButtonHandler.d.ts +79 -0
  63. package/dist/core/services/toolbar/config.d.ts +7 -0
  64. package/dist/core/services/toolbar/index.d.ts +30 -0
  65. package/dist/core/services/toolbar/menus/BaseMenu.d.ts +99 -0
  66. package/dist/core/services/toolbar/menus/MeasureMenu.d.ts +44 -0
  67. package/dist/core/services/toolbar/types.d.ts +198 -0
  68. package/dist/core/types.d.ts +586 -0
  69. package/dist/i18n/en-US.d.ts +46 -0
  70. package/dist/i18n/index.d.ts +45 -2
  71. package/dist/i18n/zh-CN.d.ts +46 -0
  72. package/dist/index.d.ts +37 -42
  73. package/dist/index.es.js +6874 -9666
  74. package/dist/index.es.js.map +1 -1
  75. package/dist/libs/CesiumMapModel.d.ts +1 -172
  76. package/dist/libs/CesiumMapToolbar.d.ts +1 -1
  77. package/dist/libs/CesiumOverlayService.d.ts +9 -222
  78. package/dist/libs/config/CesiumMapConfig.d.ts +5 -12
  79. package/dist/libs/drawHelper/DrawHint.d.ts +15 -27
  80. package/dist/libs/drawHelper/index.d.ts +67 -6
  81. package/dist/libs/toolBar/CesiumMapController.d.ts +38 -64
  82. package/dist/libs/toolBar/MapLayersService.d.ts +10 -61
  83. package/dist/libs/toolBar/MapSearchService.d.ts +8 -29
  84. package/dist/libs/toolBar/MapToolBarConfig.d.ts +33 -5
  85. package/dist/libs/toolBar/MeasurementService.d.ts +13 -5
  86. package/dist/libs/toolBar/NotFlyZonesService.d.ts +6 -41
  87. package/dist/package.json +19 -6
  88. package/dist/styles/ComponentStyles.d.ts +82 -0
  89. package/dist/styles/StyleManager.d.ts +142 -0
  90. package/dist/styles/index.d.ts +128 -0
  91. package/dist/utils/common.d.ts +4 -0
  92. package/package.json +1 -1
  93. package/dist/hooks/toolBarConfig.d.ts +0 -75
  94. package/dist/hooks/useDrawHelper.d.ts +0 -24
  95. package/dist/hooks/useDynamicRing.d.ts +0 -44
  96. package/dist/hooks/useHeatmapHelper.d.ts +0 -18
  97. package/dist/hooks/useMap.d.ts +0 -14
  98. package/dist/hooks/useMapInit.d.ts +0 -14
  99. package/dist/hooks/useOverlayHelper.d.ts +0 -48
  100. package/dist/hooks/usePointClusterHelper.d.ts +0 -14
  101. package/dist/index.umd.js +0 -326
  102. package/dist/index.umd.js.map +0 -1
  103. package/dist/libs/drawHelper/BaseDraw.d.ts +0 -194
  104. package/dist/libs/drawHelper/DrawCircle.d.ts +0 -31
  105. package/dist/libs/drawHelper/DrawLine.d.ts +0 -49
  106. package/dist/libs/drawHelper/DrawPolgon.d.ts +0 -35
  107. package/dist/libs/drawHelper/DrawRectangle.d.ts +0 -24
  108. package/dist/libs/i18n/en-US.d.ts +0 -69
  109. package/dist/libs/i18n/index.d.ts +0 -25
  110. package/dist/libs/i18n/zh-CN.d.ts +0 -69
  111. package/dist/libs/overlay/MapCircle.d.ts +0 -130
  112. package/dist/libs/overlay/MapIcon.d.ts +0 -69
  113. package/dist/libs/overlay/MapInfoWindow.d.ts +0 -100
  114. package/dist/libs/overlay/MapLabel.d.ts +0 -73
  115. package/dist/libs/overlay/MapMarker.d.ts +0 -60
  116. package/dist/libs/overlay/MapPolygon.d.ts +0 -114
  117. package/dist/libs/overlay/MapPolyline.d.ts +0 -64
  118. package/dist/libs/overlay/MapRectangle.d.ts +0 -101
  119. package/dist/libs/overlay/MapRing.d.ts +0 -107
  120. package/dist/libs/overlay/MapSVG.d.ts +0 -73
  121. package/dist/libs/overlay/OverlayEditController.d.ts +0 -167
  122. package/dist/libs/overlay/OverlayEditHandles.d.ts +0 -101
  123. package/dist/libs/overlay/OverlayHighlight.d.ts +0 -40
  124. package/dist/libs/overlay/index.d.ts +0 -23
  125. package/dist/libs/overlay/primitives/CirclePrimitiveBatch.d.ts +0 -42
  126. package/dist/libs/overlay/primitives/CirclePrimitiveLayerStack.d.ts +0 -24
  127. package/dist/libs/overlay/primitives/PolygonPrimitiveBatch.d.ts +0 -43
  128. package/dist/libs/overlay/primitives/PolygonPrimitiveLayerStack.d.ts +0 -24
  129. package/dist/libs/overlay/primitives/RectanglePrimitiveBatch.d.ts +0 -41
  130. package/dist/libs/overlay/primitives/RectanglePrimitiveLayerStack.d.ts +0 -24
  131. package/dist/libs/overlay/types.d.ts +0 -121
  132. package/dist/z.const.d.ts +0 -24
  133. /package/dist/{libs → utils}/PickGovernor.d.ts +0 -0
@@ -0,0 +1,99 @@
1
+ import { Viewer, Color, MaterialProperty, HeightReference } from '../../../node_modules/cesium';
2
+ import { BaseOverlay, BaseOverlayOptions } from './BaseOverlay';
3
+ import * as Cesium from 'cesium';
4
+ /**
5
+ * Rectangle 配置选项
6
+ */
7
+ export interface RectangleOptions extends BaseOverlayOptions {
8
+ /** 矩形坐标范围 */
9
+ coordinates: Cesium.Rectangle;
10
+ /** 填充材质 */
11
+ material?: MaterialProperty | Color | string;
12
+ /** 是否显示边框(默认 true) */
13
+ outline?: boolean;
14
+ /** 边框颜色 */
15
+ outlineColor?: Color | string;
16
+ /** 边框宽度(默认 1) */
17
+ outlineWidth?: number;
18
+ /** 是否贴地(默认 true) */
19
+ clampToGround?: boolean;
20
+ /** 贴地抬高量(米,clampToGround=true 时生效) */
21
+ groundHeightEpsilon?: number;
22
+ /** 基准高度(米,clampToGround=false 时有效) */
23
+ height?: number;
24
+ /** 高度参考 */
25
+ heightReference?: HeightReference;
26
+ /** 拉伸高度 */
27
+ extrudedHeight?: number;
28
+ /** 兼容旧版渲染模式配置 */
29
+ renderMode?: 'auto' | 'entity' | 'primitive';
30
+ }
31
+ /**
32
+ * Rectangle 矩形类
33
+ *
34
+ * 用于在地图上创建矩形区域,支持自定义填充、边框和贴地属性。
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * const rectangle = new Rectangle(viewer, {
39
+ * coordinates: Cesium.Rectangle.fromDegrees(120, 30, 121, 31),
40
+ * material: 'rgba(0, 255, 0, 0.3)',
41
+ * outline: true,
42
+ * outlineColor: '#00FF00'
43
+ * });
44
+ * viewer.entities.add(rectangle.getEntity());
45
+ * ```
46
+ */
47
+ export declare class Rectangle extends BaseOverlay {
48
+ private rectangleOptions;
49
+ private innerEntity?;
50
+ constructor(viewer: Viewer, options: RectangleOptions);
51
+ /**
52
+ * 创建粗边框矩形(环形)
53
+ */
54
+ private createThickRectangle;
55
+ /**
56
+ * 创建 RectangleGraphics 对象
57
+ */
58
+ private createRectangleGraphics;
59
+ /**
60
+ * 将 Rectangle 转为四点多边形顶点
61
+ */
62
+ private rectangleToPositions;
63
+ /**
64
+ * 按米单位向内收缩矩形边界
65
+ */
66
+ private shrinkRectangle;
67
+ /**
68
+ * 解析材质
69
+ */
70
+ private resolveMaterial;
71
+ /**
72
+ * 解析颜色值
73
+ */
74
+ private resolveColor;
75
+ /**
76
+ * 更新 Rectangle 配置
77
+ */
78
+ update(options: Partial<RectangleOptions>): void;
79
+ /**
80
+ * 更新坐标
81
+ */
82
+ setCoordinates(coordinates: Cesium.Rectangle): void;
83
+ /**
84
+ * 更新坐标(内部方法)
85
+ */
86
+ private updateCoordinates;
87
+ /**
88
+ * 获取矩形坐标
89
+ */
90
+ getCoordinates(): Cesium.Rectangle | null;
91
+ /**
92
+ * 获取矩形样式
93
+ */
94
+ getStyle(): Partial<RectangleOptions>;
95
+ /**
96
+ * 从场景中移除矩形
97
+ */
98
+ remove(): void;
99
+ }
@@ -0,0 +1,114 @@
1
+ import { Viewer, Color } from '../../../node_modules/cesium';
2
+ import { BaseOverlay, BaseOverlayOptions, OverlayPosition } from './BaseOverlay';
3
+ /**
4
+ * Ring 配置选项
5
+ */
6
+ export interface RingOptions extends BaseOverlayOptions {
7
+ /** 中心点位置 */
8
+ position: OverlayPosition;
9
+ /** 半径(米) */
10
+ radius: number;
11
+ /** 发光颜色 */
12
+ color?: Color | string;
13
+ /** 是否显示内层线(默认 true) */
14
+ showInnerLine?: boolean;
15
+ /** 内层线颜色 */
16
+ lineColor?: Color | string;
17
+ /** 内层线型(默认 'solid') */
18
+ lineStyle?: 'solid' | 'dashed';
19
+ /** 虚线材质模式(默认 'stripe') */
20
+ lineMaterialMode?: 'stripe' | 'dash';
21
+ /** 条纹重复次数(默认 32) */
22
+ stripeRepeat?: number;
23
+ /** 虚线长度(默认 16) */
24
+ dashLength?: number;
25
+ /** 虚线模式(16bit pattern) */
26
+ dashPattern?: number;
27
+ /** 间隙颜色 */
28
+ gapColor?: Color | string;
29
+ /** 外环宽度(默认 8) */
30
+ width?: number;
31
+ /** 兼容旧版边线宽度配置 */
32
+ lineWidth?: number;
33
+ /** 发光强度(0-1,默认 0.25) */
34
+ glowPower?: number;
35
+ /** 是否贴地(默认 true) */
36
+ clampToGround?: boolean;
37
+ /** 贴地抬高量(米) */
38
+ groundHeightEpsilon?: number;
39
+ /** 圆环分段数(默认 128) */
40
+ segments?: number;
41
+ /** 兼容旧版发光宽度配置 */
42
+ glowWidth?: number;
43
+ }
44
+ /**
45
+ * Ring 发光圆环类
46
+ *
47
+ * 用于在地图上创建边缘发光的圆环效果。
48
+ * 使用 PolylineGlowMaterialProperty 实现发光效果。
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * const ring = new Ring(viewer, {
53
+ * position: [120.1, 30.2],
54
+ * radius: 1000,
55
+ * color: '#00FFFF',
56
+ * glowPower: 0.5,
57
+ * width: 10
58
+ * });
59
+ * viewer.entities.add(ring.getEntity());
60
+ * ```
61
+ */
62
+ export declare class Ring extends BaseOverlay {
63
+ private ringOptions;
64
+ private innerEntity?;
65
+ constructor(viewer: Viewer, options: RingOptions);
66
+ /**
67
+ * 创建发光圆环
68
+ */
69
+ private createRing;
70
+ /**
71
+ * 创建内层线材质
72
+ */
73
+ private createLineMaterial;
74
+ /**
75
+ * 生成近似圆顶点
76
+ */
77
+ private generateCirclePositions;
78
+ /**
79
+ * 解析颜色值
80
+ */
81
+ private resolveColor;
82
+ /**
83
+ * 更新 Ring 配置
84
+ */
85
+ update(options: Partial<RingOptions>): void;
86
+ /**
87
+ * 重建内层线
88
+ */
89
+ private rebuildInnerLine;
90
+ /**
91
+ * 更新几何形状
92
+ */
93
+ private updateGeometry;
94
+ /**
95
+ * 更新位置
96
+ */
97
+ setPosition(position: OverlayPosition): void;
98
+ /**
99
+ * 更新半径
100
+ */
101
+ setRadius(radius: number): void;
102
+ /**
103
+ * 获取位置(经纬度)
104
+ */
105
+ getPosition(): [number, number] | null;
106
+ /**
107
+ * 获取半径
108
+ */
109
+ getRadius(): number;
110
+ /**
111
+ * 从场景中移除圆环
112
+ */
113
+ remove(): void;
114
+ }
@@ -0,0 +1,89 @@
1
+ import { Viewer, Color, HeightReference, VerticalOrigin, HorizontalOrigin } from '../../../node_modules/cesium';
2
+ import { BaseOverlay, BaseOverlayOptions, OverlayPosition } from './BaseOverlay';
3
+ import * as Cesium from 'cesium';
4
+ /**
5
+ * SVG 配置选项
6
+ */
7
+ export interface SvgOptions extends BaseOverlayOptions {
8
+ /** SVG 字符串 */
9
+ svg: string;
10
+ /** 宽度(像素) */
11
+ width?: number;
12
+ /** 高度(像素) */
13
+ height?: number;
14
+ /** 缩放比例(默认 1.0) */
15
+ scale?: number;
16
+ /** 旋转角度(弧度) */
17
+ rotation?: number;
18
+ /** 像素偏移 */
19
+ pixelOffset?: Cesium.Cartesian2;
20
+ /** 视线偏移 */
21
+ eyeOffset?: Cesium.Cartesian3;
22
+ /** 水平原点(默认 CENTER) */
23
+ horizontalOrigin?: HorizontalOrigin;
24
+ /** 垂直原点(默认 BOTTOM) */
25
+ verticalOrigin?: VerticalOrigin;
26
+ /** 高度参考(默认 NONE) */
27
+ heightReference?: HeightReference;
28
+ /** 禁用深度测试距离 */
29
+ disableDepthTestDistance?: number;
30
+ /** 颜色(可用于着色) */
31
+ color?: Color | string;
32
+ }
33
+ /**
34
+ * SVG 图标类
35
+ *
36
+ * 用于在地图上创建 SVG 图标标记,使用 Billboard 实现。
37
+ * 支持自定义 SVG 内容、大小、旋转、颜色等样式。
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * const svg = new SVG(viewer, {
42
+ * position: [120.1, 30.2],
43
+ * svg: '<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32"><circle cx="16" cy="16" r="14" fill="red"/></svg>',
44
+ * width: 32,
45
+ * height: 32
46
+ * });
47
+ * viewer.entities.add(svg.getEntity());
48
+ * ```
49
+ */
50
+ export declare class SVG extends BaseOverlay {
51
+ private svgOptions;
52
+ constructor(viewer: Viewer, options: SvgOptions);
53
+ /**
54
+ * 将 SVG 字符串转换为 data URL
55
+ */
56
+ private svgToDataUrl;
57
+ /**
58
+ * 创建 BillboardGraphics 对象
59
+ */
60
+ private createBillboardGraphics;
61
+ /**
62
+ * 解析颜色值
63
+ */
64
+ private resolveColor;
65
+ /**
66
+ * 更新 SVG 配置
67
+ */
68
+ update(options: Partial<SvgOptions>): void;
69
+ /**
70
+ * 更新位置
71
+ */
72
+ setPosition(position: OverlayPosition): void;
73
+ /**
74
+ * 更新 SVG 内容
75
+ */
76
+ setSvg(svg: string): void;
77
+ /**
78
+ * 获取 SVG 字符串
79
+ */
80
+ getSvg(): string;
81
+ /**
82
+ * 获取位置(经纬度)
83
+ */
84
+ getPosition(): [number, number] | null;
85
+ /**
86
+ * 获取 SVG 样式
87
+ */
88
+ getStyle(): Partial<SvgOptions>;
89
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * 覆盖物实体模块入口
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ export { BaseOverlay } from './BaseOverlay';
7
+ export type { OverlayPosition, BaseOverlayOptions, OverlayClickHighlightOptions, OverlayHoverHighlightOptions, OverlayEntity, } from './BaseOverlay';
8
+ export { Marker } from './Marker';
9
+ export type { MarkerOptions } from './Marker';
10
+ export { Label } from './Label';
11
+ export type { LabelOptions } from './Label';
12
+ export { Icon } from './Icon';
13
+ export type { IconOptions } from './Icon';
14
+ export { SVG } from './SVG';
15
+ export type { SvgOptions } from './SVG';
16
+ export { InfoWindow } from './InfoWindow';
17
+ export type { InfoWindowOptions } from './InfoWindow';
18
+ export { Polyline } from './Polyline';
19
+ export type { PolylineOptions } from './Polyline';
20
+ export { Polygon } from './Polygon';
21
+ export type { PolygonOptions } from './Polygon';
22
+ export { Rectangle } from './Rectangle';
23
+ export type { RectangleOptions } from './Rectangle';
24
+ export { Circle } from './Circle';
25
+ export type { CircleOptions } from './Circle';
26
+ export { Ring } from './Ring';
27
+ export type { RingOptions } from './Ring';
@@ -0,0 +1,25 @@
1
+ /**
2
+ * 核心模块入口文件
3
+ * 导出所有核心类型、常量和类
4
+ */
5
+ export * from './types';
6
+ export * from './constants';
7
+ export { MapPlugin, createMapPlugin } from './MapPlugin';
8
+ import * as Cesium from 'cesium';
9
+ export { Cesium };
10
+ /**
11
+ * 核心模块版本信息
12
+ */
13
+ export declare const VERSION = "1.0.0";
14
+ /**
15
+ * 核心模块描述
16
+ */
17
+ export declare const DESCRIPTION = "VMap Cesium Tool \u6838\u5FC3\u6A21\u5757 - \u63D0\u4F9B\u5730\u56FE\u63D2\u4EF6\u7684\u57FA\u7840\u7C7B\u578B\u3001\u5E38\u91CF\u548C\u6838\u5FC3\u7C7B";
18
+ /**
19
+ * 默认导出核心模块
20
+ */
21
+ declare const coreModule: {
22
+ VERSION: string;
23
+ DESCRIPTION: string;
24
+ };
25
+ export default coreModule;
@@ -0,0 +1,37 @@
1
+ import { BaiduLayerConfig } from '../types';
2
+ import { MapLayer } from './MapLayer';
3
+ import * as Cesium from 'cesium';
4
+ /**
5
+ * 百度地图影像图层配置
6
+ */
7
+ export declare const createBaiduImageryConfig: (token?: string) => Cesium.ImageryProvider[];
8
+ /**
9
+ * 百度地图图层类
10
+ * 支持普通、卫星、地形三种类型的百度地图图层
11
+ */
12
+ export declare class BaiduMapLayer extends MapLayer {
13
+ private config;
14
+ /**
15
+ * 构造函数
16
+ * @param viewer Cesium Viewer 实例
17
+ * @param config 百度地图图层配置
18
+ */
19
+ constructor(viewer: Cesium.Viewer, config: BaiduLayerConfig);
20
+ /**
21
+ * 获取影像提供者数组
22
+ */
23
+ protected getProviders(): Cesium.ImageryProvider[];
24
+ /**
25
+ * 添加图层到 Viewer
26
+ */
27
+ addToViewer(): void;
28
+ /**
29
+ * 更新图层配置
30
+ * @param config 新的百度地图图层配置
31
+ */
32
+ updateConfig(config: Partial<BaiduLayerConfig>): void;
33
+ /**
34
+ * 获取当前配置
35
+ */
36
+ getConfig(): BaiduLayerConfig;
37
+ }
@@ -0,0 +1,43 @@
1
+ import { CustomLayerConfig } from '../types';
2
+ import { MapLayer } from './MapLayer';
3
+ import * as Cesium from 'cesium';
4
+ /**
5
+ * 自定义地图图层类
6
+ * 支持用户自定义的影像提供者数组
7
+ */
8
+ export declare class CustomMapLayer extends MapLayer {
9
+ private config;
10
+ /**
11
+ * 构造函数
12
+ * @param viewer Cesium Viewer 实例
13
+ * @param config 自定义图层配置
14
+ */
15
+ constructor(viewer: Cesium.Viewer, config: CustomLayerConfig);
16
+ /**
17
+ * 获取影像提供者数组
18
+ */
19
+ protected getProviders(): Cesium.ImageryProvider[];
20
+ /**
21
+ * 添加图层到 Viewer
22
+ */
23
+ addToViewer(): void;
24
+ /**
25
+ * 更新图层配置
26
+ * @param config 新的自定义图层配置
27
+ */
28
+ updateConfig(config: Partial<CustomLayerConfig>): void;
29
+ /**
30
+ * 获取当前配置
31
+ */
32
+ getConfig(): CustomLayerConfig;
33
+ /**
34
+ * 添加单个影像提供者
35
+ * @param provider 影像提供者
36
+ */
37
+ addProvider(provider: Cesium.ImageryProvider): void;
38
+ /**
39
+ * 移除指定索引的影像提供者
40
+ * @param index 提供者索引
41
+ */
42
+ removeProvider(index: number): void;
43
+ }
@@ -0,0 +1,41 @@
1
+ import { GaodeLayerConfig } from '../types';
2
+ import { MapLayer } from './MapLayer';
3
+ import * as Cesium from 'cesium';
4
+ /**
5
+ * 高德地图影像图层配置(带注记)
6
+ */
7
+ export declare const createGaodeImageryConfig: (token?: string) => Cesium.ImageryProvider[];
8
+ /**
9
+ * 高德地图矢量图层配置
10
+ */
11
+ export declare const createGaodeVectorConfig: (token?: string) => Cesium.ImageryProvider[];
12
+ /**
13
+ * 高德地图图层类
14
+ * 支持矢量和卫星两种类型的高德地图图层
15
+ */
16
+ export declare class GaodeMapLayer extends MapLayer {
17
+ private config;
18
+ /**
19
+ * 构造函数
20
+ * @param viewer Cesium Viewer 实例
21
+ * @param config 高德地图图层配置
22
+ */
23
+ constructor(viewer: Cesium.Viewer, config: GaodeLayerConfig);
24
+ /**
25
+ * 获取影像提供者数组
26
+ */
27
+ protected getProviders(): Cesium.ImageryProvider[];
28
+ /**
29
+ * 添加图层到 Viewer
30
+ */
31
+ addToViewer(): void;
32
+ /**
33
+ * 更新图层配置
34
+ * @param config 新的高德地图图层配置
35
+ */
36
+ updateConfig(config: Partial<GaodeLayerConfig>): void;
37
+ /**
38
+ * 获取当前配置
39
+ */
40
+ getConfig(): GaodeLayerConfig;
41
+ }
@@ -0,0 +1,118 @@
1
+ import * as Cesium from 'cesium';
2
+ /**
3
+ * 热力点数据
4
+ */
5
+ export interface HeatPoint {
6
+ /** 经度(度) */
7
+ lon: number;
8
+ /** 纬度(度) */
9
+ lat: number;
10
+ /** 强度值 */
11
+ value: number;
12
+ }
13
+ /**
14
+ * 热力图渐变配置
15
+ */
16
+ export interface HeatmapGradient {
17
+ [stop: number]: string;
18
+ }
19
+ /**
20
+ * 热力图选项
21
+ */
22
+ export interface HeatmapOptions {
23
+ /** Canvas 宽度(默认 512) */
24
+ width?: number;
25
+ /** Canvas 高度(默认 512) */
26
+ height?: number;
27
+ /** 渲染模式:heat=热力渐变,discrete=分段纯色 */
28
+ mode?: 'heat' | 'discrete';
29
+ /** 点影响半径(像素,默认 30) */
30
+ radius?: number;
31
+ /** 伽马校正值(默认 0.7) */
32
+ gamma?: number;
33
+ /** 最小透明度(默认 0.03) */
34
+ minAlpha?: number;
35
+ /** 最小值(用于归一化) */
36
+ minValue?: number;
37
+ /** 最大值(用于归一化) */
38
+ maxValue?: number;
39
+ /** 全局不透明度(0-1) */
40
+ opacity?: number;
41
+ /** 颜色梯度 */
42
+ gradient?: HeatmapGradient;
43
+ /** 离散模式阈值数组 */
44
+ discreteThresholds?: number[];
45
+ /** 离散模式颜色数组 */
46
+ discreteColors?: string[];
47
+ /** 重叠处理方式:max=取高分段,last=后绘制覆盖 */
48
+ discreteOverlap?: 'max' | 'last';
49
+ }
50
+ /**
51
+ * Cesium 热力图图层
52
+ *
53
+ * 使用离屏 Canvas 渲染热力图,通过 SingleTileImageryProvider 叠加到地球。
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * const heatmap = new HeatmapLayer(viewer, {
58
+ * radius: 30,
59
+ * gradient: {
60
+ * 0.0: '#0000ff',
61
+ * 0.5: '#00ffff',
62
+ * 1.0: '#ff0000'
63
+ * }
64
+ * });
65
+ * heatmap.setData([
66
+ * { lon: 120.1, lat: 30.2, value: 50 },
67
+ * { lon: 120.2, lat: 30.3, value: 80 }
68
+ * ]);
69
+ * ```
70
+ */
71
+ export declare class HeatmapLayer {
72
+ private viewer;
73
+ private imageryLayer;
74
+ private rectangle;
75
+ private fullDataRectangle;
76
+ private canvas;
77
+ private ctx;
78
+ private options;
79
+ private data;
80
+ private gradientLUT;
81
+ constructor(viewer: Cesium.Viewer, options?: HeatmapOptions);
82
+ /**
83
+ * 解析颜色为 RGBA
84
+ */
85
+ private parseColorToRGBA;
86
+ /**
87
+ * 构建颜色查找表
88
+ */
89
+ private buildGradientLUT;
90
+ /**
91
+ * 设置热力图数据
92
+ */
93
+ setData(points: HeatPoint[]): void;
94
+ /**
95
+ * 渲染热力图
96
+ */
97
+ private renderHeatmap;
98
+ /**
99
+ * 更新影像图层
100
+ */
101
+ private updateImageryLayer;
102
+ /**
103
+ * 设置透明度
104
+ */
105
+ setOpacity(opacity: number): void;
106
+ /**
107
+ * 设置可见性
108
+ */
109
+ setVisible(visible: boolean): void;
110
+ /**
111
+ * 清除图层
112
+ */
113
+ clearLayer(): void;
114
+ /**
115
+ * 销毁图层
116
+ */
117
+ destroy(): void;
118
+ }
@@ -0,0 +1,37 @@
1
+ import * as Cesium from 'cesium';
2
+ /**
3
+ * 地图图层基类
4
+ * 提供统一的图层管理接口
5
+ */
6
+ export declare abstract class MapLayer {
7
+ protected viewer: Cesium.Viewer;
8
+ protected imageryLayers: Cesium.ImageryLayer[];
9
+ /**
10
+ * 构造函数
11
+ * @param viewer Cesium Viewer 实例
12
+ */
13
+ constructor(viewer: Cesium.Viewer);
14
+ /**
15
+ * 添加图层到 Viewer
16
+ * 子类必须实现此方法
17
+ */
18
+ abstract addToViewer(): void;
19
+ /**
20
+ * 从 Viewer 移除图层
21
+ */
22
+ removeFromViewer(): void;
23
+ /**
24
+ * 获取图层提供者数组
25
+ * 子类必须实现此方法
26
+ */
27
+ protected abstract getProviders(): Cesium.ImageryProvider[];
28
+ /**
29
+ * 添加影像图层到 Viewer
30
+ * @param providers 影像提供者数组
31
+ */
32
+ protected addImageryProviders(providers: Cesium.ImageryProvider[]): void;
33
+ /**
34
+ * 检查图层是否已添加到 Viewer
35
+ */
36
+ isAdded(): boolean;
37
+ }
@@ -0,0 +1,37 @@
1
+ import { OSMLayerConfig } from '../types';
2
+ import { MapLayer } from './MapLayer';
3
+ import * as Cesium from 'cesium';
4
+ /**
5
+ * OSM 标准图层配置
6
+ */
7
+ export declare const createOSMConfig: () => Cesium.ImageryProvider[];
8
+ /**
9
+ * OpenStreetMap 图层类
10
+ * 支持标准 OSM 瓦片图层
11
+ */
12
+ export declare class OSMMapLayer extends MapLayer {
13
+ private config;
14
+ /**
15
+ * 构造函数
16
+ * @param viewer Cesium Viewer 实例
17
+ * @param config OSM 图层配置
18
+ */
19
+ constructor(viewer: Cesium.Viewer, config?: OSMLayerConfig);
20
+ /**
21
+ * 获取影像提供者数组
22
+ */
23
+ protected getProviders(): Cesium.ImageryProvider[];
24
+ /**
25
+ * 添加图层到 Viewer
26
+ */
27
+ addToViewer(): void;
28
+ /**
29
+ * 更新图层配置
30
+ * @param config 新的 OSM 图层配置
31
+ */
32
+ updateConfig(config: Partial<OSMLayerConfig>): void;
33
+ /**
34
+ * 获取当前配置
35
+ */
36
+ getConfig(): OSMLayerConfig;
37
+ }