@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,479 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 地块相关类型定义
|
|
3
|
+
*/
|
|
4
|
+
import type L from 'leaflet';
|
|
5
|
+
import type { Coordinate, PathOptions } from './basic';
|
|
6
|
+
/**
|
|
7
|
+
* 地块数据
|
|
8
|
+
* @description 地块的基础数据结构
|
|
9
|
+
*/
|
|
10
|
+
export interface PlotData {
|
|
11
|
+
/** 地块唯一标识 */
|
|
12
|
+
id: string | number;
|
|
13
|
+
/** 地块边界坐标数组(内部自动从 positions 解析) */
|
|
14
|
+
boundaries?: Coordinate[];
|
|
15
|
+
/** 多边形孔洞坐标数组(可选) */
|
|
16
|
+
positions?: Coordinate[][];
|
|
17
|
+
/** 地块面积(平方米) */
|
|
18
|
+
area?: number;
|
|
19
|
+
/** 自定义扩展数据 */
|
|
20
|
+
customData?: Record<string, unknown>;
|
|
21
|
+
/** 地块边界范围 */
|
|
22
|
+
bounds?: [number, number, number, number];
|
|
23
|
+
/** 地块所有者 */
|
|
24
|
+
possessor?: string;
|
|
25
|
+
/** 其他扩展属性 */
|
|
26
|
+
[key: string]: unknown;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 地块样式
|
|
30
|
+
* @description 继承自 PathOptions,用于地块的样式配置
|
|
31
|
+
*/
|
|
32
|
+
export interface PlotStyle extends PathOptions {
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* 地块编辑模式
|
|
36
|
+
* @description 地块编辑功能的不同模式
|
|
37
|
+
*/
|
|
38
|
+
export type PlotEditMode = 'idle' | 'redraw' | 'clip' | 'move' | 'create' | 'preview';
|
|
39
|
+
/**
|
|
40
|
+
* 地块编辑结果
|
|
41
|
+
* @description 地块编辑操作的通用结果结构
|
|
42
|
+
*/
|
|
43
|
+
export interface PlotEditResult {
|
|
44
|
+
/** 被编辑的地块 ID,新建时为 null */
|
|
45
|
+
plotId: string | number | null;
|
|
46
|
+
/** 编辑模式 */
|
|
47
|
+
mode: PlotEditMode;
|
|
48
|
+
/** 编辑后的坐标数据 */
|
|
49
|
+
coordinates: Coordinate[] | Coordinate[][];
|
|
50
|
+
/** 计算后的面积(平方米) */
|
|
51
|
+
area?: number;
|
|
52
|
+
/** 面积单位 */
|
|
53
|
+
areaUnit?: AreaUnit;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* 地块剪辑结果
|
|
57
|
+
* @description 使用多边形剪辑地块后的结果
|
|
58
|
+
*/
|
|
59
|
+
export interface PlotClipResult extends PlotEditResult {
|
|
60
|
+
/** 固定为 'clip' */
|
|
61
|
+
mode: 'clip';
|
|
62
|
+
/** 剪切产生的碎片数量(≥2 时需要用户选择) */
|
|
63
|
+
fragmentCount?: number;
|
|
64
|
+
/** 用户选择的碎片索引(0-based),单碎片时为 0 */
|
|
65
|
+
selectedFragment?: number;
|
|
66
|
+
/** 孔洞坐标数组(剪切挖洞时产生) */
|
|
67
|
+
positions?: Coordinate[][];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* 地块移动结果
|
|
71
|
+
* @description 移动地块后的结果
|
|
72
|
+
*/
|
|
73
|
+
export interface PlotMoveResult extends PlotEditResult {
|
|
74
|
+
/** 固定为 'move' */
|
|
75
|
+
mode: 'move';
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* 地块新建结果
|
|
79
|
+
* @description 新建地块后的结果
|
|
80
|
+
*/
|
|
81
|
+
export interface PlotCreateResult extends PlotEditResult {
|
|
82
|
+
/** 固定为 'create' */
|
|
83
|
+
mode: 'create';
|
|
84
|
+
/** 新建时固定为 null */
|
|
85
|
+
plotId: null;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* 地块删除结果
|
|
89
|
+
* @description 删除地块后的结果
|
|
90
|
+
*/
|
|
91
|
+
export interface PlotDeleteResult {
|
|
92
|
+
/** 被删除的地块 ID */
|
|
93
|
+
plotId: string | number;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* 渲染统计
|
|
97
|
+
* @description 地块图层渲染的性能统计数据
|
|
98
|
+
*/
|
|
99
|
+
export interface RenderStats {
|
|
100
|
+
/** 总地块数量 */
|
|
101
|
+
totalCount: number;
|
|
102
|
+
/** 已渲染的地块数量 */
|
|
103
|
+
renderedCount: number;
|
|
104
|
+
/** 当前缩放级别 */
|
|
105
|
+
zoom: number;
|
|
106
|
+
/** 最小可见缩放级别 */
|
|
107
|
+
minZoom: number;
|
|
108
|
+
/** 最大可见缩放级别 */
|
|
109
|
+
maxZoom: number;
|
|
110
|
+
}
|
|
111
|
+
import type { ReactNode } from 'react';
|
|
112
|
+
/**
|
|
113
|
+
* 地块编辑模式配置
|
|
114
|
+
* @description 支持对象配置,可自定义工具栏
|
|
115
|
+
*/
|
|
116
|
+
export interface PlotEditModeConfig {
|
|
117
|
+
/** 启用的编辑按钮 */
|
|
118
|
+
enabled?: boolean | ('redraw' | 'clip' | 'move' | 'create' | 'delete')[];
|
|
119
|
+
/** 自定义工具栏内容 */
|
|
120
|
+
toolbar?: ReactNode;
|
|
121
|
+
/** 内置按钮的统一颜色(支持预设色和自定义颜色如 #ff0000、rgba(255,0,0,0.5)) */
|
|
122
|
+
color?: 'default' | 'primary' | 'danger' | 'success' | 'warning' | 'error' | 'magenta' | 'volcano' | 'gold' | 'orange' | 'cyan' | 'geekblue' | 'purple' | string;
|
|
123
|
+
/** 内置按钮的统一尺寸(支持预设尺寸和自定义数字,单位 px) */
|
|
124
|
+
size?: 'large' | 'middle' | 'small' | number;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* 地块字段名映射
|
|
128
|
+
* @description 用于自定义 dataSource 中的字段名
|
|
129
|
+
*/
|
|
130
|
+
export interface PlotFieldNames {
|
|
131
|
+
/** id 字段名,默认 'id' */
|
|
132
|
+
id?: string;
|
|
133
|
+
/** 边界坐标字段名,默认 'positions'。支持二维数组 [[lat,lng],...] 和三维数组 [[[lat,lng],...], [孔洞], ...] */
|
|
134
|
+
positions?: string;
|
|
135
|
+
/** 面积字段名,默认 'area' */
|
|
136
|
+
area?: string;
|
|
137
|
+
/** 所有者字段名,默认 'possessor' */
|
|
138
|
+
possessor?: string;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* 面积单位
|
|
142
|
+
* @description 用于计算和显示地块面积的单位
|
|
143
|
+
*/
|
|
144
|
+
export type AreaUnit = 'square_meters' | 'hectares' | 'mu' | 'acres';
|
|
145
|
+
/**
|
|
146
|
+
* 面积单位配置
|
|
147
|
+
* @description 面积单位的显示名称和换算系数
|
|
148
|
+
*/
|
|
149
|
+
export interface AreaUnitConfig {
|
|
150
|
+
/** 单位标识 */
|
|
151
|
+
unit: AreaUnit;
|
|
152
|
+
/** 单位显示名称 */
|
|
153
|
+
label: string;
|
|
154
|
+
/** 换算系数(相对于平方米) */
|
|
155
|
+
factor: number;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* 地块图层组件属性
|
|
159
|
+
* @description PlotLayer 组件的 Props 定义
|
|
160
|
+
*/
|
|
161
|
+
export interface PlotLayerProps {
|
|
162
|
+
/** 地块数据数组 */
|
|
163
|
+
dataSource: PlotData[];
|
|
164
|
+
/** 字段名映射,用于自定义 dataSource 中的字段名 */
|
|
165
|
+
fieldNames?: PlotFieldNames;
|
|
166
|
+
/** 面积单位,用于计算新建地块的面积,默认 'mu'(亩) */
|
|
167
|
+
areaUnit?: AreaUnit;
|
|
168
|
+
/** 点击地块时的回调函数 */
|
|
169
|
+
onClick?: (data: PlotData, layer: L.Layer) => void;
|
|
170
|
+
/** 右键点击地块时的回调函数 */
|
|
171
|
+
onContextMenu?: (data: PlotData, layer: L.Layer, event: L.LeafletMouseEvent) => void;
|
|
172
|
+
/** 鼠标悬停事件回调 */
|
|
173
|
+
onHover?: (data: PlotData, type: 'mouseover' | 'mouseout') => void;
|
|
174
|
+
/** 最小显示缩放级别 */
|
|
175
|
+
minZoom?: number;
|
|
176
|
+
/** 最大显示缩放级别 */
|
|
177
|
+
maxZoom?: number;
|
|
178
|
+
/** 动态样式函数,根据地块数据返回样式 */
|
|
179
|
+
style?: (data: PlotData) => PlotStyle;
|
|
180
|
+
/** 是否启用聚合功能 */
|
|
181
|
+
enableCluster?: boolean;
|
|
182
|
+
/**
|
|
183
|
+
* 是否在首次渲染数据后自动 fitBounds 适配地图视图
|
|
184
|
+
* @default false
|
|
185
|
+
*/
|
|
186
|
+
autoFit?: boolean | {
|
|
187
|
+
maxZoom?: number;
|
|
188
|
+
padding?: number | [number, number];
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
* 虚拟化渲染配置
|
|
192
|
+
* @default false
|
|
193
|
+
* - true: 启用虚拟化,使用默认缩放范围 { minZoom: 6, maxZoom: 18 }
|
|
194
|
+
* - false: 禁用虚拟化,渲染所有地块
|
|
195
|
+
* - { minZoom, maxZoom }: 启用虚拟化并自定义缩放范围
|
|
196
|
+
*/
|
|
197
|
+
virtualization?: boolean | {
|
|
198
|
+
minZoom?: number;
|
|
199
|
+
maxZoom?: number;
|
|
200
|
+
};
|
|
201
|
+
/** 默认选中的地块 ID(非受控模式) */
|
|
202
|
+
defaultValue?: string | number | (string | number)[];
|
|
203
|
+
/** 选中的地块 ID(受控模式) */
|
|
204
|
+
value?: string | number | (string | number)[];
|
|
205
|
+
/** 选择模式:单选或多选 */
|
|
206
|
+
mode?: 'single' | 'multiple';
|
|
207
|
+
/** 默认路径样式 */
|
|
208
|
+
path?: PathOptions;
|
|
209
|
+
/** 选中状态的路径样式 */
|
|
210
|
+
selectedPath?: PathOptions;
|
|
211
|
+
/** 编辑模式下的路径样式 */
|
|
212
|
+
editPath?: PathOptions;
|
|
213
|
+
/** 选中变化时的回调 */
|
|
214
|
+
onSelect?: (ids: (string | number)[], plotId?: string | number) => void;
|
|
215
|
+
/** 编辑模式,可开启全部或指定功能,或使用对象配置自定义工具栏 */
|
|
216
|
+
editMode?: boolean | ('redraw' | 'clip' | 'move' | 'create' | 'delete')[] | PlotEditModeConfig;
|
|
217
|
+
/** 编辑按钮回调,用于打开编辑抽屉 */
|
|
218
|
+
onEdit?: (result: {
|
|
219
|
+
plotId: string | number;
|
|
220
|
+
plot: PlotData;
|
|
221
|
+
}) => void;
|
|
222
|
+
/** 重绘完成回调 */
|
|
223
|
+
onRedraw?: (result: PlotEditResult) => void;
|
|
224
|
+
/** 剪辑完成回调 */
|
|
225
|
+
onClip?: (result: PlotClipResult) => void;
|
|
226
|
+
/** 移动完成回调 */
|
|
227
|
+
onMove?: (result: PlotMoveResult) => void;
|
|
228
|
+
/** 新建完成回调,包含计算后的面积 */
|
|
229
|
+
onCreate?: (result: PlotCreateResult) => void;
|
|
230
|
+
/** 删除完成回调 */
|
|
231
|
+
onDelete?: (result: PlotDeleteResult) => void;
|
|
232
|
+
/** 保存回调(统一处理各种编辑结果) */
|
|
233
|
+
onSave?: (result: PlotEditResult | PlotClipResult | PlotMoveResult | PlotCreateResult) => void;
|
|
234
|
+
/** 渲染统计回调 */
|
|
235
|
+
onRenderStats?: (stats: RenderStats) => void;
|
|
236
|
+
/** 是否显示地块标签 */
|
|
237
|
+
showLabel?: boolean | 'all' | {
|
|
238
|
+
type: 'all' | boolean;
|
|
239
|
+
zoom?: number;
|
|
240
|
+
};
|
|
241
|
+
/** 标签显示的字段列表 */
|
|
242
|
+
labelFields?: string[];
|
|
243
|
+
/** 是否显示编辑模式提示,默认 false */
|
|
244
|
+
showEditHint?: boolean;
|
|
245
|
+
/**
|
|
246
|
+
* 分组字段名,用于构建字段值索引,支持 O(1) 快速查找同组地块
|
|
247
|
+
* @default undefined
|
|
248
|
+
*/
|
|
249
|
+
groupKey?: string;
|
|
250
|
+
/**
|
|
251
|
+
* 分组高亮样式,通过 highlightByGroup 方法高亮时使用
|
|
252
|
+
* @default { color: '#fa8c16', fillColor: '#fa8c16', fillOpacity: 0.4, weight: 2 }
|
|
253
|
+
*/
|
|
254
|
+
highlightPath?: PathOptions;
|
|
255
|
+
/**
|
|
256
|
+
* 是否显示加载状态
|
|
257
|
+
* @description 当为 true 时,在地图上显示加载动画覆盖层
|
|
258
|
+
* @default false
|
|
259
|
+
*/
|
|
260
|
+
loading?: boolean;
|
|
261
|
+
/**
|
|
262
|
+
* 加载遮罩配置
|
|
263
|
+
* @description 自定义加载遮罩的样式
|
|
264
|
+
*/
|
|
265
|
+
loadingMask?: {
|
|
266
|
+
/** 是否显示遮罩,默认 true */
|
|
267
|
+
enabled?: boolean;
|
|
268
|
+
/** 遮罩背景色,默认 'rgba(255, 255, 255, 0.7)' */
|
|
269
|
+
background?: string;
|
|
270
|
+
/** 遮罩层级,默认 1000 */
|
|
271
|
+
zIndex?: number;
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* 地块图层组件 Ref 方法
|
|
276
|
+
* @description 通过 ref 暴露的方法
|
|
277
|
+
*/
|
|
278
|
+
export interface PlotRef {
|
|
279
|
+
/** 获取当前选中的地块数据 */
|
|
280
|
+
getSelected: () => PlotData | null;
|
|
281
|
+
/** 获取所有选中的地块 ID */
|
|
282
|
+
getSelectedIds: () => (string | number)[];
|
|
283
|
+
/** 清除选中状态 */
|
|
284
|
+
clearSelection: () => void;
|
|
285
|
+
/** 定位到指定地块(支持单个 ID 或 ID 数组) */
|
|
286
|
+
flyTo: (plotId: string | number | (string | number)[], zoom?: number) => void;
|
|
287
|
+
/** 刷新图层 */
|
|
288
|
+
refresh: () => void;
|
|
289
|
+
/** 清除临时图层并刷新 */
|
|
290
|
+
clearTempLayer: () => void;
|
|
291
|
+
/** 进入指定编辑模式(redraw/clip/move),可传入 plotId 直接指定地块,不传则使用当前选中的地块。返回是否成功 */
|
|
292
|
+
startEdit: (editType: 'redraw' | 'clip' | 'move', plotId?: string | number) => boolean;
|
|
293
|
+
/** 选中地块进入重绘编辑状态,可传入 plotId 直接指定地块,等效于 startEdit('redraw', plotId) */
|
|
294
|
+
startRedraw: (plotId?: string | number) => boolean;
|
|
295
|
+
/** 进入新建编辑状态,在地图上绘制新多边形 */
|
|
296
|
+
startCreate: () => void;
|
|
297
|
+
/**
|
|
298
|
+
* 自动缩放地图视图以适配所有数据
|
|
299
|
+
* @param options 可选配置:maxZoom(最大缩放级别)、padding(内边距,支持数字或 [x, y])
|
|
300
|
+
*/
|
|
301
|
+
fitBounds: (options?: {
|
|
302
|
+
maxZoom?: number;
|
|
303
|
+
padding?: number | [number, number];
|
|
304
|
+
}) => void;
|
|
305
|
+
/**
|
|
306
|
+
* 根据 groupKey 字段值高亮所有匹配的地块(直接操作 Leaflet setStyle,不触发 React 重渲染)
|
|
307
|
+
* @param fieldValue 分组字段值,高亮所有该值对应的地块
|
|
308
|
+
* @param callback 高亮完成后回调,返回匹配的地块 ID 列表和地块数据
|
|
309
|
+
*/
|
|
310
|
+
highlightByGroup: (fieldValue: string, callback?: (result: {
|
|
311
|
+
ids: (string | number)[];
|
|
312
|
+
plots: PlotData[];
|
|
313
|
+
}) => void) => void;
|
|
314
|
+
/**
|
|
315
|
+
* 清除分组高亮状态,恢复所有图层原始样式
|
|
316
|
+
*/
|
|
317
|
+
clearHighlight: () => void;
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* 地块分组配置
|
|
321
|
+
* @description 每种地块类型的数据源和独立样式配置
|
|
322
|
+
*/
|
|
323
|
+
export interface PlotGroupConfig {
|
|
324
|
+
/** 地块数据数组 */
|
|
325
|
+
dataSource: PlotData[];
|
|
326
|
+
/** 默认路径样式(覆盖 PlotGroupLayer 透传的 path) */
|
|
327
|
+
path?: PathOptions;
|
|
328
|
+
/** 选中状态的路径样式 */
|
|
329
|
+
selectedPath?: PathOptions;
|
|
330
|
+
/** 编辑模式下的路径样式 */
|
|
331
|
+
editPath?: PathOptions;
|
|
332
|
+
/** 分组高亮样式 */
|
|
333
|
+
highlightPath?: PathOptions;
|
|
334
|
+
/** 动态样式函数 */
|
|
335
|
+
style?: (data: PlotData) => PlotStyle;
|
|
336
|
+
/** 字段名映射 */
|
|
337
|
+
fieldNames?: PlotFieldNames;
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* PlotGroupLayer 渲染统计
|
|
341
|
+
* @description 合并统计 + 分类型明细
|
|
342
|
+
*/
|
|
343
|
+
export interface GroupRenderStats extends RenderStats {
|
|
344
|
+
/** 各类型的渲染统计明细 */
|
|
345
|
+
details: Record<string, {
|
|
346
|
+
totalCount: number;
|
|
347
|
+
renderedCount: number;
|
|
348
|
+
}>;
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* PlotGroupLayer 组件属性
|
|
352
|
+
* @description 多类型地块分组编排组件
|
|
353
|
+
*/
|
|
354
|
+
export interface PlotGroupLayerProps {
|
|
355
|
+
/** 分组数据源,key 为类型名称,value 为该类型的数据和样式配置 */
|
|
356
|
+
dataSource: Record<string, PlotGroupConfig>;
|
|
357
|
+
/** 选择模式:单选或多选 */
|
|
358
|
+
mode?: 'single' | 'multiple';
|
|
359
|
+
/**
|
|
360
|
+
* 单选模式下是否跨类型互斥
|
|
361
|
+
* - true(默认):选中水稻田后点荒地,水稻田自动取消
|
|
362
|
+
* - false:各类型独立选中,互不影响
|
|
363
|
+
*/
|
|
364
|
+
exclusive?: boolean;
|
|
365
|
+
/** 选中的地块 ID(受控模式) */
|
|
366
|
+
value?: (string | number)[];
|
|
367
|
+
/** 默认选中的地块 ID(非受控模式) */
|
|
368
|
+
defaultValue?: (string | number)[];
|
|
369
|
+
/** 选中变化回调 */
|
|
370
|
+
onSelect?: (ids: (string | number)[], plotId?: string | number, plotType?: string) => void;
|
|
371
|
+
/** 点击地块回调 */
|
|
372
|
+
onClick?: (data: PlotData, layer: L.Layer, plotType: string) => void;
|
|
373
|
+
/** 分组字段名,跨类型统一分组高亮 */
|
|
374
|
+
groupKey?: string;
|
|
375
|
+
/** 默认路径样式(可被 PlotGroupConfig.path 覆盖) */
|
|
376
|
+
path?: PathOptions;
|
|
377
|
+
/** 默认选中样式(可被 PlotGroupConfig.selectedPath 覆盖) */
|
|
378
|
+
selectedPath?: PathOptions;
|
|
379
|
+
/** 默认编辑样式 */
|
|
380
|
+
editPath?: PathOptions;
|
|
381
|
+
/** 默认高亮样式 */
|
|
382
|
+
highlightPath?: PathOptions;
|
|
383
|
+
/** 面积单位 */
|
|
384
|
+
areaUnit?: AreaUnit;
|
|
385
|
+
/** 虚拟化渲染配置 */
|
|
386
|
+
virtualization?: PlotLayerProps['virtualization'];
|
|
387
|
+
/** 是否显示地块标签 */
|
|
388
|
+
showLabel?: PlotLayerProps['showLabel'];
|
|
389
|
+
/** 标签显示的字段列表 */
|
|
390
|
+
labelFields?: string[];
|
|
391
|
+
/** 是否显示编辑模式提示 */
|
|
392
|
+
showEditHint?: boolean;
|
|
393
|
+
/** 首次渲染自动适配视图 */
|
|
394
|
+
autoFit?: PlotLayerProps['autoFit'];
|
|
395
|
+
/** 编辑模式 */
|
|
396
|
+
editMode?: PlotLayerProps['editMode'];
|
|
397
|
+
/** 编辑按钮回调 */
|
|
398
|
+
onEdit?: (result: {
|
|
399
|
+
plotId: string | number;
|
|
400
|
+
plot: PlotData;
|
|
401
|
+
}, plotType: string) => void;
|
|
402
|
+
/** 重绘完成回调 */
|
|
403
|
+
onRedraw?: (result: PlotEditResult, plotType: string) => void;
|
|
404
|
+
/** 剪辑完成回调 */
|
|
405
|
+
onClip?: (result: PlotClipResult, plotType: string) => void;
|
|
406
|
+
/** 移动完成回调 */
|
|
407
|
+
onMove?: (result: PlotMoveResult, plotType: string) => void;
|
|
408
|
+
/** 新建完成回调 */
|
|
409
|
+
onCreate?: (result: PlotCreateResult, plotType: string) => void;
|
|
410
|
+
/** 删除完成回调 */
|
|
411
|
+
onDelete?: (result: PlotDeleteResult, plotType: string) => void;
|
|
412
|
+
/** 保存回调 */
|
|
413
|
+
onSave?: (result: PlotEditResult | PlotClipResult | PlotMoveResult | PlotCreateResult, plotType: string) => void;
|
|
414
|
+
/** 渲染统计回调 */
|
|
415
|
+
onRenderStats?: (stats: GroupRenderStats) => void;
|
|
416
|
+
/** 鼠标悬停回调 */
|
|
417
|
+
onHover?: (data: PlotData, type: 'mouseover' | 'mouseout', plotType: string) => void;
|
|
418
|
+
/** 右键回调 */
|
|
419
|
+
onContextMenu?: (data: PlotData, layer: L.Layer, event: L.LeafletMouseEvent, plotType: string) => void;
|
|
420
|
+
/**
|
|
421
|
+
* 是否显示加载状态
|
|
422
|
+
* @description 当为 true 时,在地图上显示加载动画覆盖层
|
|
423
|
+
* @default false
|
|
424
|
+
*/
|
|
425
|
+
loading?: boolean;
|
|
426
|
+
/**
|
|
427
|
+
* 加载遮罩配置
|
|
428
|
+
* @description 自定义加载遮罩的样式
|
|
429
|
+
*/
|
|
430
|
+
loadingMask?: {
|
|
431
|
+
/** 是否显示遮罩,默认 true */
|
|
432
|
+
enabled?: boolean;
|
|
433
|
+
/** 遮罩背景色,默认 'rgba(255, 255, 255, 0.7)' */
|
|
434
|
+
background?: string;
|
|
435
|
+
/** 遮罩层级,默认 1000 */
|
|
436
|
+
zIndex?: number;
|
|
437
|
+
};
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* PlotGroupLayer 组件 Ref 方法
|
|
441
|
+
* @description 通过 ref 暴露的跨类型操作方法
|
|
442
|
+
*/
|
|
443
|
+
export interface PlotGroupRef {
|
|
444
|
+
/** 获取当前选中的地块数据(跨类型) */
|
|
445
|
+
getSelected: () => PlotData | null;
|
|
446
|
+
/** 获取所有选中的地块 ID */
|
|
447
|
+
getSelectedIds: () => (string | number)[];
|
|
448
|
+
/** 清除所有类型的选中状态 */
|
|
449
|
+
clearSelection: () => void;
|
|
450
|
+
/** 定位到指定地块(支持单个 ID 或 ID 数组) */
|
|
451
|
+
flyTo: (plotId: string | number | (string | number)[], zoom?: number) => void;
|
|
452
|
+
refresh: () => void;
|
|
453
|
+
/**
|
|
454
|
+
* 跨类型高亮分组
|
|
455
|
+
* @param fieldValue 分组字段值
|
|
456
|
+
* @param options.scope 限定在哪些类型中高亮
|
|
457
|
+
* @param options.callback 高亮完成后回调
|
|
458
|
+
*/
|
|
459
|
+
highlightByGroup: (fieldValue: string, options?: {
|
|
460
|
+
scope?: string[];
|
|
461
|
+
callback?: (result: {
|
|
462
|
+
ids: (string | number)[];
|
|
463
|
+
plots: PlotData[];
|
|
464
|
+
}) => void;
|
|
465
|
+
}) => void;
|
|
466
|
+
/** 清除所有类型的分组高亮 */
|
|
467
|
+
clearHighlight: () => void;
|
|
468
|
+
/** 自动缩放地图视图以适配所有类型数据 */
|
|
469
|
+
fitBounds: (options?: {
|
|
470
|
+
maxZoom?: number;
|
|
471
|
+
padding?: number | [number, number];
|
|
472
|
+
}) => void;
|
|
473
|
+
/** 获取指定类型的子图层 ref,用于精细化操作 */
|
|
474
|
+
getLayerRef: (plotType: string) => PlotRef | null;
|
|
475
|
+
/** 获取所有地块数据(合并) */
|
|
476
|
+
getAllPlots: () => PlotData[];
|
|
477
|
+
/** 获取指定类型的地块数据 */
|
|
478
|
+
getPlotsByType: (plotType: string) => PlotData[];
|
|
479
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plot.d.ts","sourceRoot":"","sources":["../../src/types/plot.ts"],"names":[],"mappings":"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"}
|