@wenle_2523097/agri-map 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ConfigProvider/index.d.ts +15 -0
- package/dist/components/ConfigProvider/index.d.ts.map +1 -0
- package/dist/components/DualScaleControl/index.d.ts +10 -0
- package/dist/components/DualScaleControl/index.d.ts.map +1 -0
- package/dist/components/Icons/SelectIcon.d.ts +68 -0
- package/dist/components/Icons/SelectIcon.d.ts.map +1 -0
- package/dist/components/Icons/index.d.ts +43 -0
- package/dist/components/Icons/index.d.ts.map +1 -0
- package/dist/components/Irrigation/index.d.ts +8 -0
- package/dist/components/Irrigation/index.d.ts.map +1 -0
- package/dist/components/Irrigation/toolbar.d.ts +6 -0
- package/dist/components/Irrigation/toolbar.d.ts.map +1 -0
- package/dist/components/Loading/index.d.ts +40 -0
- package/dist/components/Loading/index.d.ts.map +1 -0
- package/dist/components/MapContent/index.d.ts +17 -0
- package/dist/components/MapContent/index.d.ts.map +1 -0
- package/dist/components/MapSizeHandler/index.d.ts +24 -0
- package/dist/components/MapSizeHandler/index.d.ts.map +1 -0
- package/dist/components/Marker/ClusterView.d.ts +29 -0
- package/dist/components/Marker/ClusterView.d.ts.map +1 -0
- package/dist/components/Marker/MapClickHandler.d.ts +25 -0
- package/dist/components/Marker/MapClickHandler.d.ts.map +1 -0
- package/dist/components/Marker/index.d.ts +61 -0
- package/dist/components/Marker/index.d.ts.map +1 -0
- package/dist/components/Marker/parseClusterConfig.d.ts +25 -0
- package/dist/components/Marker/parseClusterConfig.d.ts.map +1 -0
- package/dist/components/Marker/toolbar.d.ts +6 -0
- package/dist/components/Marker/toolbar.d.ts.map +1 -0
- package/dist/components/Marker/useEditHandlers.d.ts +44 -0
- package/dist/components/Marker/useEditHandlers.d.ts.map +1 -0
- package/dist/components/Marker/useIconConfig.d.ts +23 -0
- package/dist/components/Marker/useIconConfig.d.ts.map +1 -0
- package/dist/components/Marker/useMarkerCommands.d.ts +30 -0
- package/dist/components/Marker/useMarkerCommands.d.ts.map +1 -0
- package/dist/components/Measurement/toolbar.d.ts +20 -0
- package/dist/components/Measurement/toolbar.d.ts.map +1 -0
- package/dist/components/MiniMap/index.d.ts +16 -0
- package/dist/components/MiniMap/index.d.ts.map +1 -0
- package/dist/components/Notification/index.d.ts +12 -0
- package/dist/components/Notification/index.d.ts.map +1 -0
- package/dist/components/PlotGroupLayer/index.d.ts +8 -0
- package/dist/components/PlotGroupLayer/index.d.ts.map +1 -0
- package/dist/components/PlotLayer/index.d.ts +7 -0
- package/dist/components/PlotLayer/index.d.ts.map +1 -0
- package/dist/components/PlotLayer/label.d.ts +12 -0
- package/dist/components/PlotLayer/label.d.ts.map +1 -0
- package/dist/components/PlotLayer/leaflet-types.d.ts +59 -0
- package/dist/components/PlotLayer/leaflet-types.d.ts.map +1 -0
- package/dist/components/PlotLayer/parseConfig.d.ts +15 -0
- package/dist/components/PlotLayer/parseConfig.d.ts.map +1 -0
- package/dist/components/PlotLayer/toolbar.d.ts +6 -0
- package/dist/components/PlotLayer/toolbar.d.ts.map +1 -0
- package/dist/components/PlotLayer/types.d.ts +10 -0
- package/dist/components/PlotLayer/types.d.ts.map +1 -0
- package/dist/components/PlotLayer/usePlotCommands.d.ts +33 -0
- package/dist/components/PlotLayer/usePlotCommands.d.ts.map +1 -0
- package/dist/components/PlotLayer/usePlotData.d.ts +32 -0
- package/dist/components/PlotLayer/usePlotData.d.ts.map +1 -0
- package/dist/components/PlotLayer/usePlotEditMode.d.ts +92 -0
- package/dist/components/PlotLayer/usePlotEditMode.d.ts.map +1 -0
- package/dist/components/Road/index.d.ts +8 -0
- package/dist/components/Road/index.d.ts.map +1 -0
- package/dist/components/Road/toolbar.d.ts +6 -0
- package/dist/components/Road/toolbar.d.ts.map +1 -0
- package/dist/components/TianDiTuLayer/index.d.ts +15 -0
- package/dist/components/TianDiTuLayer/index.d.ts.map +1 -0
- package/dist/components/Track/ClusterView.d.ts +20 -0
- package/dist/components/Track/ClusterView.d.ts.map +1 -0
- package/dist/components/Track/TrackView.d.ts +24 -0
- package/dist/components/Track/TrackView.d.ts.map +1 -0
- package/dist/components/Track/commands.d.ts +53 -0
- package/dist/components/Track/commands.d.ts.map +1 -0
- package/dist/components/Track/constants.d.ts +34 -0
- package/dist/components/Track/constants.d.ts.map +1 -0
- package/dist/components/Track/index.d.ts +54 -0
- package/dist/components/Track/index.d.ts.map +1 -0
- package/dist/components/Track/parseConfig.d.ts +40 -0
- package/dist/components/Track/parseConfig.d.ts.map +1 -0
- package/dist/components/Track/types.d.ts +38 -0
- package/dist/components/Track/types.d.ts.map +1 -0
- package/dist/components/Track/useMarkerIcon.d.ts +14 -0
- package/dist/components/Track/useMarkerIcon.d.ts.map +1 -0
- package/dist/components/Track/useTrackCommands.d.ts +56 -0
- package/dist/components/Track/useTrackCommands.d.ts.map +1 -0
- package/dist/components/shared/BaseEditToolbar.d.ts +100 -0
- package/dist/components/shared/BaseEditToolbar.d.ts.map +1 -0
- package/dist/components/shared/ToolbarButton.d.ts +49 -0
- package/dist/components/shared/ToolbarButton.d.ts.map +1 -0
- package/dist/components/shared/index.d.ts +5 -0
- package/dist/components/shared/index.d.ts.map +1 -0
- package/dist/constants/device.d.ts +14 -0
- package/dist/constants/device.d.ts.map +1 -0
- package/dist/constants/index.d.ts +20 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/map.d.ts +13 -0
- package/dist/constants/map.d.ts.map +1 -0
- package/dist/constants/plot.d.ts +33 -0
- package/dist/constants/plot.d.ts.map +1 -0
- package/dist/constants/road.d.ts +12 -0
- package/dist/constants/road.d.ts.map +1 -0
- package/dist/constants/styles.d.ts +57 -0
- package/dist/constants/styles.d.ts.map +1 -0
- package/dist/constants/theme.d.ts +47 -0
- package/dist/constants/theme.d.ts.map +1 -0
- package/dist/constants/unit.d.ts +11 -0
- package/dist/constants/unit.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +8 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/useEditMode.d.ts +75 -0
- package/dist/hooks/useEditMode.d.ts.map +1 -0
- package/dist/hooks/useLatestRef.d.ts +17 -0
- package/dist/hooks/useLatestRef.d.ts.map +1 -0
- package/dist/hooks/usePolylineEditor.d.ts +65 -0
- package/dist/hooks/usePolylineEditor.d.ts.map +1 -0
- package/dist/hooks/usePolylineRenderer.d.ts +34 -0
- package/dist/hooks/usePolylineRenderer.d.ts.map +1 -0
- package/dist/hooks/useTheme.d.ts +13 -0
- package/dist/hooks/useTheme.d.ts.map +1 -0
- package/dist/index.d.ts +312 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/types/basic.d.ts +57 -0
- package/dist/types/basic.d.ts.map +1 -0
- package/dist/types/components.d.ts +56 -0
- package/dist/types/components.d.ts.map +1 -0
- package/dist/types/config.d.ts +112 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/decorator.d.ts +26 -0
- package/dist/types/decorator.d.ts.map +1 -0
- package/dist/types/icon.d.ts +52 -0
- package/dist/types/icon.d.ts.map +1 -0
- package/dist/types/index.d.ts +20 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/irrigation.d.ts +315 -0
- package/dist/types/irrigation.d.ts.map +1 -0
- package/dist/types/layer.d.ts +40 -0
- package/dist/types/layer.d.ts.map +1 -0
- package/dist/types/loading.d.ts +62 -0
- package/dist/types/loading.d.ts.map +1 -0
- package/dist/types/marker.d.ts +299 -0
- package/dist/types/marker.d.ts.map +1 -0
- package/dist/types/measurement.d.ts +121 -0
- package/dist/types/measurement.d.ts.map +1 -0
- package/dist/types/notification.d.ts +50 -0
- package/dist/types/notification.d.ts.map +1 -0
- package/dist/types/plot.d.ts +479 -0
- package/dist/types/plot.d.ts.map +1 -0
- package/dist/types/road.d.ts +382 -0
- package/dist/types/road.d.ts.map +1 -0
- package/dist/types/toolbar.d.ts +176 -0
- package/dist/types/toolbar.d.ts.map +1 -0
- package/dist/types/track.d.ts +386 -0
- package/dist/types/track.d.ts.map +1 -0
- package/dist/utils/area.d.ts +57 -0
- package/dist/utils/area.d.ts.map +1 -0
- package/dist/utils/clusterIcon.d.ts +16 -0
- package/dist/utils/clusterIcon.d.ts.map +1 -0
- package/dist/utils/createAntPath.d.ts +13 -0
- package/dist/utils/createAntPath.d.ts.map +1 -0
- package/dist/utils/geometry.d.ts +41 -0
- package/dist/utils/geometry.d.ts.map +1 -0
- package/dist/utils/iconCache.d.ts +49 -0
- package/dist/utils/iconCache.d.ts.map +1 -0
- package/dist/utils/iconUtils.d.ts +46 -0
- package/dist/utils/iconUtils.d.ts.map +1 -0
- package/dist/utils/index.d.ts +11 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/leafletIcons.d.ts +40 -0
- package/dist/utils/leafletIcons.d.ts.map +1 -0
- package/dist/utils/mapAnimation.d.ts +14 -0
- package/dist/utils/mapAnimation.d.ts.map +1 -0
- package/dist/utils/markerSvg.d.ts +19 -0
- package/dist/utils/markerSvg.d.ts.map +1 -0
- package/dist/utils/pulseIcon.d.ts +28 -0
- package/dist/utils/pulseIcon.d.ts.map +1 -0
- package/dist/utils/spatialIndex.d.ts +56 -0
- package/dist/utils/spatialIndex.d.ts.map +1 -0
- package/dist/utils/toggleItemState.d.ts +15 -0
- package/dist/utils/toggleItemState.d.ts.map +1 -0
- package/dist/utils/trackSimplify.d.ts +23 -0
- package/dist/utils/trackSimplify.d.ts.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 农机轨迹类型定义
|
|
3
|
+
*/
|
|
4
|
+
import type { SvgIconConfig } from './icon';
|
|
5
|
+
export type { SvgIconConfig } from './icon';
|
|
6
|
+
/**
|
|
7
|
+
* 轨迹点类型 [lat, lng, time, heading, speed]
|
|
8
|
+
*/
|
|
9
|
+
export type TrackPoint = [number, number, number, number, number];
|
|
10
|
+
/**
|
|
11
|
+
* 轨迹数据 - 简化结构
|
|
12
|
+
* @description 使用对象键作为state: "0"=路上/非工作, "1"=作业中
|
|
13
|
+
*/
|
|
14
|
+
export type TrackItemData = Record<string, TrackPoint[]>;
|
|
15
|
+
/**
|
|
16
|
+
* 轨迹数据 - 直接结构
|
|
17
|
+
* @description key为 imei|date 组合,value为状态分段的轨迹点
|
|
18
|
+
*/
|
|
19
|
+
export type TrackData = Record<string, TrackItemData>;
|
|
20
|
+
/**
|
|
21
|
+
* 瓦片图层配置
|
|
22
|
+
*/
|
|
23
|
+
export interface TileLayerConfig {
|
|
24
|
+
/** 瓦片服务 URL 模板 */
|
|
25
|
+
url: string;
|
|
26
|
+
/** 子域名列表 */
|
|
27
|
+
subdomains?: string | string[];
|
|
28
|
+
/** 最大缩放级别 */
|
|
29
|
+
maxZoom?: number;
|
|
30
|
+
/** 最小缩放级别 */
|
|
31
|
+
minZoom?: number;
|
|
32
|
+
/** 版权信息 */
|
|
33
|
+
attribution?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* MiniMap 组件属性
|
|
37
|
+
*/
|
|
38
|
+
export interface MiniMapProps {
|
|
39
|
+
/** 是否显示小地图 */
|
|
40
|
+
show?: boolean;
|
|
41
|
+
/** 小地图宽度(像素) */
|
|
42
|
+
width?: number;
|
|
43
|
+
/** 小地图高度(像素) */
|
|
44
|
+
height?: number;
|
|
45
|
+
/** 小地图缩放级别偏移(相对于主地图) */
|
|
46
|
+
zoomOffset?: number;
|
|
47
|
+
/** 是否显示轨迹概览 */
|
|
48
|
+
showTrackOverview?: boolean;
|
|
49
|
+
/** 轨迹数据 */
|
|
50
|
+
trackData?: TrackData;
|
|
51
|
+
/** 可见轨迹key集合(用于筛选时只显示部分轨迹) */
|
|
52
|
+
visibleTrackKeys?: string[];
|
|
53
|
+
/** 自定义样式类名 */
|
|
54
|
+
className?: string;
|
|
55
|
+
/** 视口框颜色 */
|
|
56
|
+
viewportColor?: string;
|
|
57
|
+
/** 视口框边框颜色 */
|
|
58
|
+
viewportBorderColor?: string;
|
|
59
|
+
/** 轨迹概览颜色 */
|
|
60
|
+
trackColor?: string;
|
|
61
|
+
/** 瓦片图层配置(复用主地图配置,不传则自动从 ConfigProvider 获取) */
|
|
62
|
+
tileLayer?: TileLayerConfig;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* 性能优化配置
|
|
66
|
+
*/
|
|
67
|
+
export interface PerformanceConfig {
|
|
68
|
+
/** 开启虚拟化渲染,仅渲染视口内的轨迹 */
|
|
69
|
+
virtualization?: boolean | {
|
|
70
|
+
/** 虚拟化生效的最小缩放级别 */
|
|
71
|
+
minZoom?: number;
|
|
72
|
+
/** 虚拟化生效的最大缩放级别,默认 30 */
|
|
73
|
+
maxZoom?: number;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Douglas-Peucker 轨迹简化容差(米)
|
|
77
|
+
* 大于 0 时对每段轨迹进行简化,去除冗余点以减少渲染量
|
|
78
|
+
* @default 0
|
|
79
|
+
*/
|
|
80
|
+
simplifyTolerance?: number;
|
|
81
|
+
/**
|
|
82
|
+
* 最小点间距过滤(米)
|
|
83
|
+
* 大于 0 时过滤掉与前一个点距离小于该值的连续冗余点(保留首尾和状态变化点)
|
|
84
|
+
* @default 0
|
|
85
|
+
*/
|
|
86
|
+
duplicateTolerance?: number;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* 聚合气泡图标配置
|
|
90
|
+
*/
|
|
91
|
+
export interface ClusterIconConfig {
|
|
92
|
+
/**
|
|
93
|
+
* 图标类型(与 Marker 组件一致)
|
|
94
|
+
* - 预设名称: 'point' | 'position' | 'position-red' | 'drone' | 'down'
|
|
95
|
+
* - 彩色图标: 'marker-red' | 'marker-blue' | 'marker-green' | 'marker-orange' | 'marker-yellow'
|
|
96
|
+
* - 自定义图标: 'tractor' | 'drone'
|
|
97
|
+
* - SVG 字符串: '<svg>...</svg>'
|
|
98
|
+
* - 图片 URL: 'https://...' 或 '/path/to/icon.png'
|
|
99
|
+
* - SVG 配置对象: { path: '...', viewBox: '0 0 24 24' }
|
|
100
|
+
*/
|
|
101
|
+
icon?: string | SvgIconConfig;
|
|
102
|
+
/**
|
|
103
|
+
* 图标尺寸 [宽度, 高度],默认根据数量动态计算 [36, 56]
|
|
104
|
+
* - 固定值: [40, 40]
|
|
105
|
+
* - 动态范围: { min: 36, max: 56 }
|
|
106
|
+
*/
|
|
107
|
+
iconSize?: [number, number] | {
|
|
108
|
+
min: number;
|
|
109
|
+
max: number;
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* 颜色分级配置
|
|
113
|
+
* - 数组: 按数量分级,如 ['#1890ff', '#faad14', '#ff4d4f'](<10, <50, >=50)
|
|
114
|
+
* - 函数: 自定义颜色计算 (count: number) => string
|
|
115
|
+
*/
|
|
116
|
+
colors?: string[] | ((count: number) => string);
|
|
117
|
+
/**
|
|
118
|
+
* 是否启用动画效果(脉冲),默认 true
|
|
119
|
+
*/
|
|
120
|
+
animated?: boolean;
|
|
121
|
+
/**
|
|
122
|
+
* 自定义渲染函数(完全控制气泡外观)
|
|
123
|
+
* @param count - 聚合数量
|
|
124
|
+
* @param style - 计算后的默认样式
|
|
125
|
+
* @returns HTML 字符串
|
|
126
|
+
*/
|
|
127
|
+
render?: (count: number, style: {
|
|
128
|
+
size: number;
|
|
129
|
+
color: string;
|
|
130
|
+
fontSize: number;
|
|
131
|
+
}) => string;
|
|
132
|
+
/**
|
|
133
|
+
* 是否显示聚合数量数字,默认 false(不显示)
|
|
134
|
+
*/
|
|
135
|
+
showCount?: boolean;
|
|
136
|
+
/**
|
|
137
|
+
* 图标锚点 [x, y](仅 SVG/URL 类型生效),默认由内部根据 iconSize 计算
|
|
138
|
+
*/
|
|
139
|
+
iconAnchor?: [number, number];
|
|
140
|
+
/**
|
|
141
|
+
* 弹出框锚点 [x, y](仅 SVG/URL 类型生效)
|
|
142
|
+
*/
|
|
143
|
+
popupAnchor?: [number, number];
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Marker 图标配置
|
|
147
|
+
*/
|
|
148
|
+
export interface MarkerIconConfig {
|
|
149
|
+
/**
|
|
150
|
+
* 图标类型(与 Marker 组件一致)
|
|
151
|
+
* - 预设名称: 'point' | 'position' | 'position-red' | 'drone' | 'down'
|
|
152
|
+
* - 彩色图标: 'marker-red' | 'marker-blue' | 'marker-green' | 'marker-orange' | 'marker-yellow'
|
|
153
|
+
* - 自定义图标: 'tractor' | 'drone'
|
|
154
|
+
* - SVG 字符串: '<svg>...</svg>'
|
|
155
|
+
* - 图片 URL: 'https://...' 或 '/path/to/icon.png'
|
|
156
|
+
* - SVG 配置对象: { path: '...', viewBox: '0 0 24 24' }
|
|
157
|
+
*/
|
|
158
|
+
icon?: string | SvgIconConfig;
|
|
159
|
+
/**
|
|
160
|
+
* 图标尺寸 [宽度, 高度],默认 [48, 48]
|
|
161
|
+
* - 固定值: [48, 48]
|
|
162
|
+
* - 动态范围: { min: 36, max: 64 }
|
|
163
|
+
*/
|
|
164
|
+
iconSize?: [number, number] | {
|
|
165
|
+
min: number;
|
|
166
|
+
max: number;
|
|
167
|
+
};
|
|
168
|
+
/**
|
|
169
|
+
* 图标锚点 [x, y],默认 [24, 48](底部中心)
|
|
170
|
+
*/
|
|
171
|
+
iconAnchor?: [number, number];
|
|
172
|
+
/**
|
|
173
|
+
* 弹出框锚点 [x, y],默认 [0, -48](图标顶部)
|
|
174
|
+
*/
|
|
175
|
+
popupAnchor?: [number, number];
|
|
176
|
+
/**
|
|
177
|
+
* 是否启用动画效果(脉冲),默认 true
|
|
178
|
+
*/
|
|
179
|
+
animated?: boolean;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* 通用图标配置(起点/终点/设备 Marker 共用)
|
|
183
|
+
*/
|
|
184
|
+
export interface TrackIconConfig {
|
|
185
|
+
/**
|
|
186
|
+
* 图标类型(与 Marker 组件一致)
|
|
187
|
+
* - 预设名称: 'point' | 'position' | 'position-red' | 'drone' | 'down'
|
|
188
|
+
* - 彩色图标: 'marker-red' | 'marker-blue' | 'marker-green' | 'marker-orange' | 'marker-yellow'
|
|
189
|
+
* - 自定义图标: 'tractor' | 'drone'
|
|
190
|
+
* - SVG 字符串: '<svg>...</svg>'
|
|
191
|
+
* - 图片 URL: 'https://...' 或 '/path/to/icon.png'
|
|
192
|
+
* - SVG 配置对象: { path: '...', viewBox: '0 0 24 24' }
|
|
193
|
+
*/
|
|
194
|
+
icon?: string | SvgIconConfig;
|
|
195
|
+
/**
|
|
196
|
+
* 图标尺寸 [宽度, 高度],默认 [24, 24]
|
|
197
|
+
*/
|
|
198
|
+
iconSize?: [number, number];
|
|
199
|
+
/**
|
|
200
|
+
* 图标锚点 [x, y],默认由内部计算(底部中心)
|
|
201
|
+
*/
|
|
202
|
+
iconAnchor?: [number, number];
|
|
203
|
+
/**
|
|
204
|
+
* 是否启用脉冲动画,默认 true
|
|
205
|
+
*/
|
|
206
|
+
animated?: boolean;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Track 组件统一图标配置
|
|
210
|
+
*/
|
|
211
|
+
export interface TrackIconsConfig {
|
|
212
|
+
/** 聚合气泡图标配置(优先于 markerMode.cluster.icon) */
|
|
213
|
+
cluster?: ClusterIconConfig;
|
|
214
|
+
/** 设备 Marker 图标配置(优先于 markerMode.markerIcon) */
|
|
215
|
+
marker?: MarkerIconConfig;
|
|
216
|
+
/** 起点图标配置(默认 CircleMarker 绿色圆点) */
|
|
217
|
+
start?: TrackIconConfig;
|
|
218
|
+
/** 终点图标配置(默认 CircleMarker 红色圆点) */
|
|
219
|
+
end?: TrackIconConfig;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Marker 模式配置
|
|
223
|
+
*/
|
|
224
|
+
export interface MarkerModeConfig {
|
|
225
|
+
/**
|
|
226
|
+
* Marker 模式的 zoom 阈值
|
|
227
|
+
* 当 zoom ≤ 该值时,不显示轨迹线,仅在轨迹中心点显示 Marker
|
|
228
|
+
* @default 15
|
|
229
|
+
*/
|
|
230
|
+
zoomThreshold?: number;
|
|
231
|
+
/**
|
|
232
|
+
* Marker 模式下点击 Marker 后自动 zoom in 的目标缩放级别
|
|
233
|
+
* @default 16
|
|
234
|
+
*/
|
|
235
|
+
zoomToLevel?: number;
|
|
236
|
+
/**
|
|
237
|
+
* Marker 图标配置
|
|
238
|
+
* - 自定义单个 Marker 的图标样式
|
|
239
|
+
*/
|
|
240
|
+
markerIcon?: MarkerIconConfig;
|
|
241
|
+
/**
|
|
242
|
+
* 聚合配置
|
|
243
|
+
* - true: 启用默认聚合配置
|
|
244
|
+
* - 对象: 自定义聚合配置
|
|
245
|
+
*/
|
|
246
|
+
cluster?: boolean | {
|
|
247
|
+
/** 聚合半径(像素),默认 40 */
|
|
248
|
+
radius?: number;
|
|
249
|
+
/** 聚合生效的最大缩放级别,超过此级别不聚合,默认同 zoomThreshold */
|
|
250
|
+
maxZoom?: number;
|
|
251
|
+
/** 最小聚合数量,低于此数量的点不形成聚合,默认 2 */
|
|
252
|
+
minPoints?: number;
|
|
253
|
+
/**
|
|
254
|
+
* 气泡图标样式配置
|
|
255
|
+
*/
|
|
256
|
+
icon?: ClusterIconConfig;
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Track 组件属性
|
|
261
|
+
*/
|
|
262
|
+
export interface TrackProps {
|
|
263
|
+
/** 轨迹数据,key为 imei|date 组合 */
|
|
264
|
+
dataSource: TrackData;
|
|
265
|
+
/** 选择模式 */
|
|
266
|
+
mode?: 'single' | 'multiple';
|
|
267
|
+
/** 选中的轨迹key(受控模式) */
|
|
268
|
+
value?: string | string[];
|
|
269
|
+
/** 默认选中的轨迹key(非受控模式) */
|
|
270
|
+
defaultValue?: string | string[];
|
|
271
|
+
/** 是否显示起点和终点标记 */
|
|
272
|
+
showStartEnd?: boolean;
|
|
273
|
+
/** 轨迹点击回调 */
|
|
274
|
+
onClick?: (key: string, track: any) => void;
|
|
275
|
+
/** 轨迹悬停回调 */
|
|
276
|
+
onHover?: (key: string, isHovered: boolean, track: any) => void;
|
|
277
|
+
/** 选中值变化回调 */
|
|
278
|
+
onChange?: (value: string | string[]) => void;
|
|
279
|
+
/** 自定义样式 */
|
|
280
|
+
customStyles?: {
|
|
281
|
+
working?: React.ComponentProps<typeof import('react-leaflet').Polyline>['pathOptions'];
|
|
282
|
+
nonWorking?: React.ComponentProps<typeof import('react-leaflet').Polyline>['pathOptions'];
|
|
283
|
+
selected?: React.ComponentProps<typeof import('react-leaflet').Polyline>['pathOptions'];
|
|
284
|
+
hover?: React.ComponentProps<typeof import('react-leaflet').Polyline>['pathOptions'];
|
|
285
|
+
};
|
|
286
|
+
/**
|
|
287
|
+
* 性能优化配置
|
|
288
|
+
* - true: 启用默认性能优化
|
|
289
|
+
* - 对象: 自定义性能优化配置
|
|
290
|
+
*/
|
|
291
|
+
performance?: boolean | PerformanceConfig;
|
|
292
|
+
/**
|
|
293
|
+
* Marker 模式配置
|
|
294
|
+
* - true: 启用默认 Marker 模式
|
|
295
|
+
* - 对象: 自定义 Marker 模式配置
|
|
296
|
+
*/
|
|
297
|
+
markerMode?: boolean | MarkerModeConfig;
|
|
298
|
+
/** 渲染统计回调 */
|
|
299
|
+
onRenderStats?: (stats: {
|
|
300
|
+
totalTracks: number;
|
|
301
|
+
renderedTracks: number;
|
|
302
|
+
totalPoints: number;
|
|
303
|
+
renderedPoints: number;
|
|
304
|
+
clusterCount: number;
|
|
305
|
+
markerCount: number;
|
|
306
|
+
displayMode: 'marker' | 'track';
|
|
307
|
+
zoom: number;
|
|
308
|
+
}) => void;
|
|
309
|
+
/** 轨迹数据加载完成回调(在初始视野适配之前触发) */
|
|
310
|
+
onLoaded?: (data: {
|
|
311
|
+
/** 所有轨迹key(imei|date格式) */
|
|
312
|
+
trackKeys: string[];
|
|
313
|
+
/** 所有唯一的imei */
|
|
314
|
+
imeis: string[];
|
|
315
|
+
/** 所有唯一的日期 */
|
|
316
|
+
dates: string[];
|
|
317
|
+
/** 轨迹总数 */
|
|
318
|
+
totalTracks: number;
|
|
319
|
+
/** 轨迹点总数 */
|
|
320
|
+
totalPoints: number;
|
|
321
|
+
/** 所有轨迹的边界范围 [minLat, minLng, maxLat, maxLng] */
|
|
322
|
+
bounds: [number, number, number, number] | null;
|
|
323
|
+
}) => void;
|
|
324
|
+
/**
|
|
325
|
+
* 小地图配置
|
|
326
|
+
* - true: 显示默认配置的小地图
|
|
327
|
+
* - 对象: 自定义小地图配置
|
|
328
|
+
*/
|
|
329
|
+
miniMap?: boolean | Omit<MiniMapProps, 'trackData'>;
|
|
330
|
+
/**
|
|
331
|
+
* 统一图标配置
|
|
332
|
+
* - icons.cluster: 聚合气泡图标(优先于 markerMode.cluster.icon)
|
|
333
|
+
* - icons.marker: 设备 Marker 图标(优先于 markerMode.markerIcon)
|
|
334
|
+
* - icons.start: 起点图标(预设图标名称,默认 CircleMarker 绿色圆点)
|
|
335
|
+
* - icons.end: 终点图标(预设图标名称,默认 CircleMarker 红色圆点)
|
|
336
|
+
*/
|
|
337
|
+
icons?: TrackIconsConfig;
|
|
338
|
+
/**
|
|
339
|
+
* 是否显示 Tooltip
|
|
340
|
+
* - true: Tooltip 常驻显示,方向固定为 top
|
|
341
|
+
* - false: Tooltip 默认不显示,鼠标悬停时显示,方向自动避开遮挡
|
|
342
|
+
* @default false
|
|
343
|
+
*/
|
|
344
|
+
showTooltip?: boolean;
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Track 组件 Ref 方法
|
|
348
|
+
* @description 通过 ref 调用的命令式 API
|
|
349
|
+
*
|
|
350
|
+
* API 分为 5 个层级,每个维度的操作相互独立,可自由组合:
|
|
351
|
+
* - 查询层:query / getVisibleTracks / getSelectedTracks
|
|
352
|
+
* - 视图层:fitBounds / flyTo
|
|
353
|
+
* - 可见性层:setVisibleTracks / clearVisibleFilter
|
|
354
|
+
* - 选中层:select / deselect
|
|
355
|
+
* - 重置层:reset
|
|
356
|
+
*/
|
|
357
|
+
export interface TrackRef {
|
|
358
|
+
/** 查询匹配的轨迹(纯查询,不修改任何状态) */
|
|
359
|
+
query: (filter?: string, callback?: (result: import('../components/Track/types').FilterResult) => void) => void;
|
|
360
|
+
/** 获取当前可见轨迹的 key 数组 */
|
|
361
|
+
getVisibleTracks: () => string[];
|
|
362
|
+
/** 获取当前选中轨迹的 key 数组 */
|
|
363
|
+
getSelectedTracks: () => string[];
|
|
364
|
+
/** 即时跳转视图到指定轨迹范围(无动画) */
|
|
365
|
+
fitBounds: (filter?: string, callback?: () => void) => void;
|
|
366
|
+
/** 带动画飞行到指定轨迹范围(callback 在飞行动画结束后触发) */
|
|
367
|
+
flyTo: (filter?: string, callback?: () => void) => void;
|
|
368
|
+
/** 设置可见轨迹(仅显示匹配的轨迹,隐藏其它) */
|
|
369
|
+
setVisibleTracks: (filter?: string) => void;
|
|
370
|
+
/** 恢复所有轨迹可见(清除可见性筛选,不影响选中状态) */
|
|
371
|
+
clearVisibleFilter: () => void;
|
|
372
|
+
/** 选中匹配的轨迹(修改 value + 触发 onClick,不移动地图) */
|
|
373
|
+
select: (filter?: string, callback?: () => void) => void;
|
|
374
|
+
/** 清除选中状态(不影响可见性筛选) */
|
|
375
|
+
deselect: () => void;
|
|
376
|
+
/** 全量重置(清除选中 + 恢复所有轨迹可见) */
|
|
377
|
+
reset: (callback?: () => void) => void;
|
|
378
|
+
/**
|
|
379
|
+
* @deprecated 请使用 query + setVisibleTracks 替代
|
|
380
|
+
*/
|
|
381
|
+
filter: (filter?: string, callback?: (result: any) => void) => void;
|
|
382
|
+
/**
|
|
383
|
+
* @deprecated 请使用 select + flyTo + setVisibleTracks 组合替代
|
|
384
|
+
*/
|
|
385
|
+
flyToTrack: (filter?: string, filterVisible?: boolean, onComplete?: () => void) => void;
|
|
386
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../../src/types/track.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 面积计算工具
|
|
3
|
+
* @description 提供多边形面积计算和单位转换功能
|
|
4
|
+
*/
|
|
5
|
+
import type { AreaUnit, AreaUnitConfig, Coordinate } from '../types';
|
|
6
|
+
/**
|
|
7
|
+
* 面积单位配置表
|
|
8
|
+
*/
|
|
9
|
+
export declare const AREA_UNIT_CONFIGS: Record<AreaUnit, AreaUnitConfig>;
|
|
10
|
+
/**
|
|
11
|
+
* 计算多边形面积(使用 Shoelace 公式)
|
|
12
|
+
* @param coordinates 多边形顶点坐标数组 [lat, lng]
|
|
13
|
+
* @returns 面积(平方米)
|
|
14
|
+
*/
|
|
15
|
+
export declare function calculatePolygonArea(coordinates: Coordinate[]): number;
|
|
16
|
+
/**
|
|
17
|
+
* 将面积从平方米转换为指定单位
|
|
18
|
+
* @param areaSquareMeters 面积(平方米)
|
|
19
|
+
* @param unit 目标单位
|
|
20
|
+
* @returns 转换后的面积值
|
|
21
|
+
*/
|
|
22
|
+
export declare function convertArea(areaSquareMeters: number, unit?: AreaUnit): number;
|
|
23
|
+
/**
|
|
24
|
+
* 格式化面积显示
|
|
25
|
+
* @param areaSquareMeters 面积(平方米)
|
|
26
|
+
* @param unit 目标单位
|
|
27
|
+
* @param precision 小数位数
|
|
28
|
+
* @returns 格式化后的面积字符串
|
|
29
|
+
*/
|
|
30
|
+
export declare function formatArea(areaSquareMeters: number, unit?: AreaUnit, precision?: number): string;
|
|
31
|
+
/**
|
|
32
|
+
* 获取单位配置
|
|
33
|
+
* @param unit 单位标识
|
|
34
|
+
* @returns 单位配置
|
|
35
|
+
*/
|
|
36
|
+
export declare function getAreaUnitConfig(unit: AreaUnit): AreaUnitConfig;
|
|
37
|
+
/**
|
|
38
|
+
* 数据边界计算结果
|
|
39
|
+
*/
|
|
40
|
+
export interface DataBoundsResult {
|
|
41
|
+
/** 数据中心点 [lat, lng] */
|
|
42
|
+
center: [number, number];
|
|
43
|
+
/** Leaflet bounds 格式 [[south, west], [north, east]] */
|
|
44
|
+
bounds: [[number, number], [number, number]];
|
|
45
|
+
/** 西南角 [lat, lng] */
|
|
46
|
+
southWest: [number, number];
|
|
47
|
+
/** 东北角 [lat, lng] */
|
|
48
|
+
northEast: [number, number];
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* 根据数据源计算边界范围和中心点
|
|
52
|
+
* @description 遍历所有地块坐标,计算全局最小/最大经纬度,返回中心点和边界
|
|
53
|
+
* @param dataSource 地块数据数组(原始数据或标准化后的 PlotData 均可)
|
|
54
|
+
* @param positionsField positions 字段名,默认 'positions'
|
|
55
|
+
* @returns 边界计算结果,无有效数据时返回 null
|
|
56
|
+
*/
|
|
57
|
+
export declare function computeDataBounds(dataSource: Record<string, unknown>[], positionsField?: string): DataBoundsResult | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"area.d.ts","sourceRoot":"","sources":["../../src/utils/area.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,QAAQ,EAAE,cAAc,CAqB9D,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,CAoCtE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,gBAAgB,EAAE,MAAM,EACxB,IAAI,GAAE,QAAe,GACpB,MAAM,CAGR;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,gBAAgB,EAAE,MAAM,EACxB,IAAI,GAAE,QAAe,EACrB,SAAS,GAAE,MAAU,GACpB,MAAM,CAIR;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,CAEhE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,uDAAuD;IACvD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,qBAAqB;IACrB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,qBAAqB;IACrB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACrC,cAAc,SAAc,GAC3B,gBAAgB,GAAG,IAAI,CAwCzB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview 聚合气泡图标生成工具
|
|
3
|
+
* @description 用于创建地图聚合气泡的 DivIcon,支持预设图标、URL 图片、SVG 三种类型
|
|
4
|
+
* @module utils/clusterIcon
|
|
5
|
+
*/
|
|
6
|
+
import L from 'leaflet';
|
|
7
|
+
import type { ClusterIconConfig } from '../types';
|
|
8
|
+
/** 生成预设图标的 HTML */
|
|
9
|
+
declare function getPresetIconHtml(iconType: string, size: number, animated: boolean): string;
|
|
10
|
+
/**
|
|
11
|
+
* 创建聚合气泡图标
|
|
12
|
+
* @param count - 聚合数量
|
|
13
|
+
* @param config - 图标配置
|
|
14
|
+
*/
|
|
15
|
+
export declare function createClusterIcon(count: number, config?: ClusterIconConfig): L.DivIcon;
|
|
16
|
+
export { getPresetIconHtml };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clusterIcon.d.ts","sourceRoot":"","sources":["../../src/utils/clusterIcon.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,CAAC,MAAM,SAAS,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,UAAU,CAAC;AA0EjE,mBAAmB;AACnB,iBAAS,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAoGpF;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,iBAAiB,GAAG,CAAC,CAAC,OAAO,CA2JtF;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 创建蚁行路径(用于灌溉渠和道路的流向动画)
|
|
3
|
+
*/
|
|
4
|
+
import L from 'leaflet';
|
|
5
|
+
import type { Coordinate, AntPathConfig } from '../types';
|
|
6
|
+
/**
|
|
7
|
+
* 创建蚁行路径
|
|
8
|
+
* @param points - 路径坐标点
|
|
9
|
+
* @param config - 蚁行路径配置
|
|
10
|
+
* @param style - 路径样式(用于提取默认颜色和宽度)
|
|
11
|
+
* @param defaultColor - 未指定颜色时的回退值
|
|
12
|
+
*/
|
|
13
|
+
export declare const createAntPath: (points: Coordinate[], config?: AntPathConfig, style?: L.PathOptions, defaultColor?: string) => L.Layer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createAntPath.d.ts","sourceRoot":"","sources":["../../src/utils/createAntPath.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,CAAC,MAAM,SAAS,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG1D;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GACxB,QAAQ,UAAU,EAAE,EACpB,SAAQ,aAAkB,EAC1B,QAAO,CAAC,CAAC,WAAgB,EACzB,eAAgD,MAAM,KACrD,CAAC,CAAC,KAsBJ,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 几何计算工具函数
|
|
3
|
+
*/
|
|
4
|
+
import L from 'leaflet';
|
|
5
|
+
import type { Coordinate } from '../types';
|
|
6
|
+
/**
|
|
7
|
+
* 计算两点之间的距离(米)
|
|
8
|
+
* @param point1 - 点1 [lat, lng]
|
|
9
|
+
* @param point2 - 点2 [lat, lng]
|
|
10
|
+
* @returns 距离(米)
|
|
11
|
+
*/
|
|
12
|
+
export declare const getDistance: (point1: Coordinate, point2: Coordinate) => number;
|
|
13
|
+
/**
|
|
14
|
+
* 计算两点之间的中点
|
|
15
|
+
* @param point1 - 点1 [lat, lng]
|
|
16
|
+
* @param point2 - 点2 [lat, lng]
|
|
17
|
+
* @returns 中点 [lat, lng]
|
|
18
|
+
*/
|
|
19
|
+
export declare const getMiddlePoint: (point1: Coordinate, point2: Coordinate) => Coordinate;
|
|
20
|
+
/**
|
|
21
|
+
* 格式化距离显示
|
|
22
|
+
* @param distance - 距离(米)
|
|
23
|
+
* @returns 格式化后的距离字符串
|
|
24
|
+
*/
|
|
25
|
+
export declare const formatDistance: (distance: number) => string;
|
|
26
|
+
/**
|
|
27
|
+
* 计算两点之间的角度(度),用于文字旋转
|
|
28
|
+
* @param map - Leaflet地图实例
|
|
29
|
+
* @param point1 - 点1 [lat, lng]
|
|
30
|
+
* @param point2 - 点2 [lat, lng]
|
|
31
|
+
* @returns 角度(度)
|
|
32
|
+
*/
|
|
33
|
+
export declare const getAngle: (map: L.Map, point1: Coordinate, point2: Coordinate) => number;
|
|
34
|
+
/**
|
|
35
|
+
* 计算线段角度(用于图标旋转)
|
|
36
|
+
* @param map - Leaflet地图实例
|
|
37
|
+
* @param point1 - 起点 [lat, lng]
|
|
38
|
+
* @param point2 - 终点 [lat, lng]
|
|
39
|
+
* @returns 角度(度,0-360)
|
|
40
|
+
*/
|
|
41
|
+
export declare const getLineAngle: (map: L.Map | null | undefined, point1: Coordinate, point2: Coordinate) => number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../src/utils/geometry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,CAAC,MAAM,SAAS,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,QAAQ,UAAU,EAAE,QAAQ,UAAU,KAAG,MAIpE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,UAAU,EAAE,QAAQ,UAAU,KAAG,UAKvE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,KAAG,MAKjD,CAAC;AA+BF;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,CAAC,CAAC,GAAG,EAAE,QAAQ,UAAU,EAAE,QAAQ,UAAU,KAAG,MACtC,CAAC;AAEzC;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,SAAS,EAAE,QAAQ,UAAU,EAAE,QAAQ,UAAU,KAAG,MAGpG,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 图标缓存工具
|
|
3
|
+
* @description 缓存 Leaflet DivIcon 实例,避免重复创建
|
|
4
|
+
*/
|
|
5
|
+
import L from 'leaflet';
|
|
6
|
+
import type { SvgIconConfig } from '../types/icon';
|
|
7
|
+
export { PRESET_ICONS as validIcons, generateSvgHtml } from './iconUtils';
|
|
8
|
+
/**
|
|
9
|
+
* 生成拖拉机 SVG(内联,带车轮旋转动画)
|
|
10
|
+
*/
|
|
11
|
+
export declare function generateTractorSvg(width: number, height: number, animated: boolean): string;
|
|
12
|
+
/**
|
|
13
|
+
* 生成收割机 SVG(内联,带车轮旋转动画)
|
|
14
|
+
* 红色收割机/工程车图标
|
|
15
|
+
*/
|
|
16
|
+
export declare function generateTractor2Svg(width: number, height: number, animated: boolean): string;
|
|
17
|
+
/**
|
|
18
|
+
* 生成货车 SVG(内联,带车轮旋转和车身颠簸动画)
|
|
19
|
+
*/
|
|
20
|
+
export declare function generateTruckSvg(width: number, height: number, animated: boolean): string;
|
|
21
|
+
/**
|
|
22
|
+
* 生成货车2 SVG(内联,三轮货车,带车轮旋转和车身颠簸动画)
|
|
23
|
+
*/
|
|
24
|
+
export declare function generateTruck2Svg(width: number, height: number, animated: boolean): string;
|
|
25
|
+
/**
|
|
26
|
+
* 生成农业无人机 SVG(内联,四旋翼俯视图,带螺旋桨旋转和浮动动画)
|
|
27
|
+
* 参照精灵图 drone.png 的造型设计
|
|
28
|
+
*/
|
|
29
|
+
export declare function generateAgriDroneSvg(width: number, height: number, animated: boolean): string;
|
|
30
|
+
/**
|
|
31
|
+
* 生成农业无人机侧身 SVG(内联,带螺旋桨旋转和浮动动画)
|
|
32
|
+
*/
|
|
33
|
+
export declare function generateAgriDroneSideSvg(width: number, height: number, animated: boolean): string;
|
|
34
|
+
/**
|
|
35
|
+
* 创建图标(带缓存)
|
|
36
|
+
*/
|
|
37
|
+
export declare function createCachedIcon(iconType: string, options?: L.DivIconOptions, animated?: boolean, svgIcon?: string | SvgIconConfig | null | undefined, customIcon?: string | null | undefined, extraClassName?: string): L.DivIcon;
|
|
38
|
+
/**
|
|
39
|
+
* 清空图标缓存
|
|
40
|
+
*/
|
|
41
|
+
export declare function clearIconCache(): void;
|
|
42
|
+
/**
|
|
43
|
+
* 获取缓存统计信息
|
|
44
|
+
*/
|
|
45
|
+
export declare function getIconCacheStats(): {
|
|
46
|
+
size: number;
|
|
47
|
+
maxSize: number;
|
|
48
|
+
};
|
|
49
|
+
export default createCachedIcon;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iconCache.d.ts","sourceRoot":"","sources":["../../src/utils/iconCache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,CAAC,MAAM,SAAS,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,eAAe,CAAC;AAMnE,OAAO,EAAE,YAAY,IAAI,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAqF1E;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAuD3F;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAsG5F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CA0DzF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAuE1F;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAsD7F;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAgDjG;AAUD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,CAAC,CAAC,cAAmB,EAC9B,QAAQ,GAAE,OAAe,EACzB,OAAO,GAAE,MAAM,GAAG,aAAa,GAAG,IAAI,GAAG,SAAgB,EACzD,UAAU,GAAE,MAAM,GAAG,IAAI,GAAG,SAAgB,EAC5C,cAAc,GAAE,MAAW,GAC1B,CAAC,CAAC,OAAO,CAqCX;AA+JD;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAKrE;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 图标工具函数
|
|
3
|
+
* @description 统一的图标检测和生成工具,供 Marker、Track、iconCache 等模块使用
|
|
4
|
+
*/
|
|
5
|
+
import type { SvgIconConfig, PresetIconName, DetectedIconResult } from '../types/icon';
|
|
6
|
+
/**
|
|
7
|
+
* 预设图标列表
|
|
8
|
+
* @description 所有内置预设图标的名称列表
|
|
9
|
+
*/
|
|
10
|
+
export declare const PRESET_ICONS: PresetIconName[];
|
|
11
|
+
/** SVG 彩色图标(水滴形 pin,内联 SVG 实现) */
|
|
12
|
+
export declare const SVG_MARKER_ICONS: readonly PresetIconName[];
|
|
13
|
+
/** SVG 脉冲同心圆图标(内联 SVG 实现,带扩散/收缩动画) */
|
|
14
|
+
export declare const PULSE_ICONS: readonly PresetIconName[];
|
|
15
|
+
/** Loading 加载图标(内联 SVG 实现,带旋转/跳动动画) */
|
|
16
|
+
export declare const LOADING_ICONS: readonly PresetIconName[];
|
|
17
|
+
/**
|
|
18
|
+
* 检测图标类型
|
|
19
|
+
* @description 根据传入的值自动识别图标类型(预设名称、SVG字符串、图片URL)
|
|
20
|
+
* @param value - 图标值,可以是预设名称、SVG字符串、图片URL或SVG配置对象
|
|
21
|
+
* @returns 检测结果,结构符合 DetectedIconResult 判别联合
|
|
22
|
+
* @example
|
|
23
|
+
* detectIconType('point') // { type: 'preset', name: 'point' }
|
|
24
|
+
* detectIconType('marker-red') // { type: 'preset', name: 'marker-red' }
|
|
25
|
+
* detectIconType('<svg>...</svg>') // { type: 'svg', config: '<svg>...</svg>' }
|
|
26
|
+
* detectIconType('https://...') // { type: 'url', src: 'https://...' }
|
|
27
|
+
*/
|
|
28
|
+
export declare function detectIconType(value: string | SvgIconConfig | undefined | null): DetectedIconResult;
|
|
29
|
+
/**
|
|
30
|
+
* 判断是否为 URL 图标(兼容旧代码,内部基于 isValidUrl + 后缀)
|
|
31
|
+
*/
|
|
32
|
+
export declare function isUrlIcon(value: string): boolean;
|
|
33
|
+
/** 判断是否为预设图标 */
|
|
34
|
+
export declare function isPresetIcon(value: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* 生成 SVG HTML
|
|
37
|
+
* @description 将 SVG 配置对象转换为 HTML 字符串
|
|
38
|
+
*/
|
|
39
|
+
export declare function generateSvgHtml(svgIcon: string | SvgIconConfig, options?: {
|
|
40
|
+
iconSize?: [number, number];
|
|
41
|
+
svgColor?: string;
|
|
42
|
+
svgStrokeColor?: string;
|
|
43
|
+
svgStrokeWidth?: number;
|
|
44
|
+
}): string;
|
|
45
|
+
/** SVG 配置转字符串键(用于缓存) */
|
|
46
|
+
export declare function svgIconToKey(svgIcon: string | SvgIconConfig | null | undefined): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iconUtils.d.ts","sourceRoot":"","sources":["../../src/utils/iconUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEvF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,cAAc,EAyBxC,CAAC;AAIF,kCAAkC;AAClC,eAAO,MAAM,gBAAgB,EAAE,SAAS,cAAc,EAErD,CAAC;AAEF,sCAAsC;AACtC,eAAO,MAAM,WAAW,EAAE,SAAS,cAAc,EAEhD,CAAC;AAEF,uCAAuC;AACvC,eAAO,MAAM,aAAa,EAAE,SAAS,cAAc,EAElD,CAAC;AAoBF;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,GAAG,IAAI,GAC/C,kBAAkB,CAkCpB;AAMD;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED,gBAAgB;AAChB,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,GAAG,aAAa,EAC/B,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACpB,GACL,MAAM,CAyCR;AAED,wBAAwB;AACxB,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAIvF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 工具函数统一导出
|
|
3
|
+
*/
|
|
4
|
+
export { getDistance, getMiddlePoint, formatDistance, getAngle, getLineAngle, } from './geometry';
|
|
5
|
+
export { createDistanceIcon, createDecoratorPatterns, createInletIcon, createOutletIcon, } from './leafletIcons';
|
|
6
|
+
export { GridSpatialIndex, createBoundedItems, type BBox, type BoundedItem, } from './spatialIndex';
|
|
7
|
+
export { createCachedIcon, clearIconCache, getIconCacheStats, validIcons, generateSvgHtml, } from './iconCache';
|
|
8
|
+
export { PRESET_ICONS, SVG_MARKER_ICONS, detectIconType, isUrlIcon, isPresetIcon, svgIconToKey, } from './iconUtils';
|
|
9
|
+
export { generateMarkerSvg, getMarkerAnchor, } from './markerSvg';
|
|
10
|
+
export { getPlotTypeColor } from '../constants';
|
|
11
|
+
export { calculatePolygonArea, convertArea, formatArea, getAreaUnitConfig, AREA_UNIT_CONFIGS, computeDataBounds, type DataBoundsResult, } from './area';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,WAAW,EACX,cAAc,EACd,cAAc,EACd,QAAQ,EACR,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,IAAI,EACT,KAAK,WAAW,GACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,eAAe,GAChB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,YAAY,EACZ,YAAY,GACb,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,gBAAgB,GACtB,MAAM,QAAQ,CAAC"}
|