expo-gaode-map 1.1.7 → 2.0.0-alpha.1
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/README.en.md +32 -46
- package/README.md +51 -71
- package/android/src/main/java/expo/modules/gaodemap/ExpoGaodeMapView.kt +37 -237
- package/android/src/main/java/expo/modules/gaodemap/ExpoGaodeMapViewModule.kt +1 -49
- package/android/src/main/java/expo/modules/gaodemap/managers/CameraManager.kt +30 -7
- package/android/src/main/java/expo/modules/gaodemap/managers/UIManager.kt +1 -0
- package/android/src/main/java/expo/modules/gaodemap/modules/LocationManager.kt +10 -1
- package/android/src/main/java/expo/modules/gaodemap/overlays/CircleView.kt +38 -14
- package/android/src/main/java/expo/modules/gaodemap/overlays/CircleViewModule.kt +3 -3
- package/android/src/main/java/expo/modules/gaodemap/overlays/ClusterView.kt +8 -1
- package/android/src/main/java/expo/modules/gaodemap/overlays/HeatMapView.kt +4 -1
- package/android/src/main/java/expo/modules/gaodemap/overlays/MarkerView.kt +322 -93
- package/android/src/main/java/expo/modules/gaodemap/overlays/MarkerViewModule.kt +11 -3
- package/android/src/main/java/expo/modules/gaodemap/overlays/MultiPointView.kt +4 -1
- package/android/src/main/java/expo/modules/gaodemap/overlays/PolygonView.kt +25 -11
- package/android/src/main/java/expo/modules/gaodemap/overlays/PolygonViewModule.kt +3 -3
- package/android/src/main/java/expo/modules/gaodemap/overlays/PolylineView.kt +20 -10
- package/android/src/main/java/expo/modules/gaodemap/overlays/PolylineViewModule.kt +6 -2
- package/build/ExpoGaodeMap.types.d.ts +27 -6
- package/build/ExpoGaodeMap.types.d.ts.map +1 -1
- package/build/ExpoGaodeMap.types.js +3 -0
- package/build/ExpoGaodeMap.types.js.map +1 -1
- package/build/ExpoGaodeMapModule.d.ts +157 -10
- package/build/ExpoGaodeMapModule.d.ts.map +1 -1
- package/build/ExpoGaodeMapModule.js +4 -0
- package/build/ExpoGaodeMapModule.js.map +1 -1
- package/build/ExpoGaodeMapView.d.ts +1 -17
- package/build/ExpoGaodeMapView.d.ts.map +1 -1
- package/build/ExpoGaodeMapView.js +4 -209
- package/build/ExpoGaodeMapView.js.map +1 -1
- package/build/components/overlays/Circle.d.ts +10 -1
- package/build/components/overlays/Circle.d.ts.map +1 -1
- package/build/components/overlays/Circle.js +11 -86
- package/build/components/overlays/Circle.js.map +1 -1
- package/build/components/overlays/Cluster.d.ts.map +1 -1
- package/build/components/overlays/Cluster.js.map +1 -1
- package/build/components/overlays/Marker.d.ts +13 -1
- package/build/components/overlays/Marker.d.ts.map +1 -1
- package/build/components/overlays/Marker.js +51 -115
- package/build/components/overlays/Marker.js.map +1 -1
- package/build/components/overlays/Polygon.d.ts +7 -15
- package/build/components/overlays/Polygon.d.ts.map +1 -1
- package/build/components/overlays/Polygon.js +10 -80
- package/build/components/overlays/Polygon.js.map +1 -1
- package/build/components/overlays/Polyline.d.ts +7 -14
- package/build/components/overlays/Polyline.d.ts.map +1 -1
- package/build/components/overlays/Polyline.js +9 -66
- package/build/components/overlays/Polyline.js.map +1 -1
- package/build/index.d.ts +1 -4
- package/build/index.d.ts.map +1 -1
- package/build/index.js +2 -10
- package/build/index.js.map +1 -1
- package/build/types/index.d.ts +1 -1
- package/build/types/index.d.ts.map +1 -1
- package/build/types/index.js.map +1 -1
- package/build/types/map-view.types.d.ts +0 -76
- package/build/types/map-view.types.d.ts.map +1 -1
- package/build/types/map-view.types.js.map +1 -1
- package/build/types/overlays.types.d.ts +11 -16
- package/build/types/overlays.types.d.ts.map +1 -1
- package/build/types/overlays.types.js.map +1 -1
- package/docs/API.en.md +1 -21
- package/docs/API.md +84 -56
- package/docs/EXAMPLES.en.md +0 -48
- package/docs/EXAMPLES.md +49 -102
- package/docs/INITIALIZATION.md +59 -71
- package/docs/MIGRATION.md +423 -0
- package/ios/ExpoGaodeMapView.swift +317 -258
- package/ios/ExpoGaodeMapViewModule.swift +3 -50
- package/ios/managers/CameraManager.swift +23 -2
- package/ios/managers/UIManager.swift +10 -5
- package/ios/modules/LocationManager.swift +10 -0
- package/ios/overlays/CircleView.swift +98 -19
- package/ios/overlays/CircleViewModule.swift +21 -0
- package/ios/overlays/ClusterView.swift +33 -4
- package/ios/overlays/HeatMapView.swift +16 -4
- package/ios/overlays/MarkerView.swift +235 -146
- package/ios/overlays/MarkerViewModule.swift +7 -3
- package/ios/overlays/MultiPointView.swift +30 -1
- package/ios/overlays/PolygonView.swift +63 -12
- package/ios/overlays/PolygonViewModule.swift +17 -0
- package/ios/overlays/PolylineView.swift +95 -25
- package/ios/overlays/PolylineViewModule.swift +17 -8
- package/ios/utils/PermissionManager.swift +9 -14
- package/package.json +4 -3
- package/src/ExpoGaodeMap.types.ts +28 -3
- package/src/ExpoGaodeMapModule.ts +201 -12
- package/src/ExpoGaodeMapView.tsx +11 -225
- package/src/components/overlays/Circle.tsx +12 -104
- package/src/components/overlays/Cluster.tsx +0 -1
- package/src/components/overlays/Marker.tsx +63 -138
- package/src/components/overlays/Polygon.tsx +12 -92
- package/src/components/overlays/Polyline.tsx +11 -77
- package/src/index.ts +4 -29
- package/src/types/index.ts +1 -1
- package/src/types/map-view.types.ts +1 -69
- package/src/types/overlays.types.ts +11 -16
- package/android/src/main/java/expo/modules/gaodemap/managers/OverlayManager.kt +0 -574
- package/build/modules/AMapLocation.d.ts +0 -78
- package/build/modules/AMapLocation.d.ts.map +0 -1
- package/build/modules/AMapLocation.js +0 -132
- package/build/modules/AMapLocation.js.map +0 -1
- package/build/modules/AMapPermissions.d.ts +0 -29
- package/build/modules/AMapPermissions.d.ts.map +0 -1
- package/build/modules/AMapPermissions.js +0 -23
- package/build/modules/AMapPermissions.js.map +0 -1
- package/build/modules/AMapSDK.d.ts +0 -22
- package/build/modules/AMapSDK.d.ts.map +0 -1
- package/build/modules/AMapSDK.js +0 -25
- package/build/modules/AMapSDK.js.map +0 -1
- package/build/modules/AMapView.d.ts +0 -44
- package/build/modules/AMapView.d.ts.map +0 -1
- package/build/modules/AMapView.js +0 -65
- package/build/modules/AMapView.js.map +0 -1
- package/ios/managers/OverlayManager.swift +0 -522
- package/src/modules/AMapLocation.ts +0 -165
- package/src/modules/AMapPermissions.ts +0 -41
- package/src/modules/AMapSDK.ts +0 -31
- package/src/modules/AMapView.ts +0 -72
- package/test/ClockMapView.tsx +0 -532
- package/test/useMap.ts +0 -1360
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
import { requireNativeViewManager } from 'expo-modules-core';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { EventManager } from './utils/EventManager';
|
|
4
3
|
const NativeView = requireNativeViewManager('ExpoGaodeMapView');
|
|
5
|
-
export const MapContext = React.createContext(null);
|
|
6
|
-
export const MarkerEventContext = React.createContext(null);
|
|
7
|
-
export const CircleEventContext = React.createContext(null);
|
|
8
|
-
export const PolygonEventContext = React.createContext(null);
|
|
9
|
-
export const PolylineEventContext = React.createContext(null);
|
|
10
4
|
/**
|
|
11
5
|
* 高德地图视图组件,提供地图操作API和覆盖物管理功能
|
|
12
6
|
*
|
|
@@ -28,53 +22,6 @@ export const PolylineEventContext = React.createContext(null);
|
|
|
28
22
|
const ExpoGaodeMapView = React.forwardRef((props, ref) => {
|
|
29
23
|
const nativeRef = React.useRef(null);
|
|
30
24
|
const internalRef = React.useRef(null);
|
|
31
|
-
const markerEventManager = React.useMemo(() => new EventManager(), []);
|
|
32
|
-
const circleEventManager = React.useMemo(() => new EventManager(), []);
|
|
33
|
-
const polygonEventManager = React.useMemo(() => new EventManager(), []);
|
|
34
|
-
const polylineEventManager = React.useMemo(() => new EventManager(), []);
|
|
35
|
-
const handleMarkerPress = (event) => {
|
|
36
|
-
const markerId = event.nativeEvent?.markerId;
|
|
37
|
-
if (markerId)
|
|
38
|
-
markerEventManager.trigger(markerId, 'onPress', event);
|
|
39
|
-
props.onMarkerPress?.(event);
|
|
40
|
-
};
|
|
41
|
-
const handleMarkerDragStart = (event) => {
|
|
42
|
-
const markerId = event.nativeEvent?.markerId;
|
|
43
|
-
if (markerId)
|
|
44
|
-
markerEventManager.trigger(markerId, 'onDragStart', event);
|
|
45
|
-
props.onMarkerDragStart?.(event);
|
|
46
|
-
};
|
|
47
|
-
const handleMarkerDrag = (event) => {
|
|
48
|
-
const markerId = event.nativeEvent?.markerId;
|
|
49
|
-
if (markerId)
|
|
50
|
-
markerEventManager.trigger(markerId, 'onDrag', event);
|
|
51
|
-
props.onMarkerDrag?.(event);
|
|
52
|
-
};
|
|
53
|
-
const handleMarkerDragEnd = (event) => {
|
|
54
|
-
const markerId = event.nativeEvent?.markerId;
|
|
55
|
-
if (markerId) {
|
|
56
|
-
markerEventManager.trigger(markerId, 'onDragEnd', event);
|
|
57
|
-
}
|
|
58
|
-
props.onMarkerDragEnd?.(event);
|
|
59
|
-
};
|
|
60
|
-
const handleCirclePress = (event) => {
|
|
61
|
-
const circleId = event.nativeEvent?.circleId;
|
|
62
|
-
if (circleId)
|
|
63
|
-
circleEventManager.trigger(circleId, 'onPress', event);
|
|
64
|
-
props.onCirclePress?.(event);
|
|
65
|
-
};
|
|
66
|
-
const handlePolygonPress = (event) => {
|
|
67
|
-
const polygonId = event.nativeEvent?.polygonId;
|
|
68
|
-
if (polygonId)
|
|
69
|
-
polygonEventManager.trigger(polygonId, 'onPress', event);
|
|
70
|
-
props.onPolygonPress?.(event);
|
|
71
|
-
};
|
|
72
|
-
const handlePolylinePress = (event) => {
|
|
73
|
-
const polylineId = event.nativeEvent?.polylineId;
|
|
74
|
-
if (polylineId)
|
|
75
|
-
polylineEventManager.trigger(polylineId, 'onPress', event);
|
|
76
|
-
props.onPolylinePress?.(event);
|
|
77
|
-
};
|
|
78
25
|
const apiRef = React.useMemo(() => ({
|
|
79
26
|
/**
|
|
80
27
|
* 移动地图相机到指定位置
|
|
@@ -130,149 +77,7 @@ const ExpoGaodeMapView = React.forwardRef((props, ref) => {
|
|
|
130
77
|
if (!nativeRef.current)
|
|
131
78
|
throw new Error('MapView not initialized');
|
|
132
79
|
return nativeRef.current.getCameraPosition();
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* 在地图上添加圆形覆盖物
|
|
136
|
-
* @param id - 圆形覆盖物的唯一标识符
|
|
137
|
-
* @param props - 圆形覆盖物的属性配置
|
|
138
|
-
* @returns Promise<void> 添加操作的异步结果
|
|
139
|
-
* @throws 如果地图视图未初始化,抛出错误'MapView not initialized'
|
|
140
|
-
*/
|
|
141
|
-
addCircle: async (id, props) => {
|
|
142
|
-
if (!nativeRef.current)
|
|
143
|
-
throw new Error('MapView not initialized');
|
|
144
|
-
return nativeRef.current.addCircle(id, props);
|
|
145
|
-
},
|
|
146
|
-
/**
|
|
147
|
-
* 从地图上移除指定的圆形覆盖物
|
|
148
|
-
* @param id - 要移除的圆形覆盖物的唯一标识符
|
|
149
|
-
* @throws 如果地图视图未初始化,抛出错误
|
|
150
|
-
* @returns Promise<void> 异步操作完成
|
|
151
|
-
*/
|
|
152
|
-
removeCircle: async (id) => {
|
|
153
|
-
if (!nativeRef.current)
|
|
154
|
-
throw new Error('MapView not initialized');
|
|
155
|
-
return nativeRef.current.removeCircle(id);
|
|
156
|
-
},
|
|
157
|
-
/**
|
|
158
|
-
* 更新地图上的圆形覆盖物
|
|
159
|
-
* @param id 要更新的圆形覆盖物的唯一标识符
|
|
160
|
-
* @param props 要更新的圆形属性(部分属性)
|
|
161
|
-
* @throws 如果地图视图未初始化,抛出错误
|
|
162
|
-
* @returns Promise<void> 表示更新操作完成
|
|
163
|
-
*/
|
|
164
|
-
updateCircle: async (id, props) => {
|
|
165
|
-
if (!nativeRef.current)
|
|
166
|
-
throw new Error('MapView not initialized');
|
|
167
|
-
return nativeRef.current.updateCircle(id, props);
|
|
168
|
-
},
|
|
169
|
-
/**
|
|
170
|
-
* 添加一个标记点到地图上
|
|
171
|
-
* @param id 标记点的唯一标识符
|
|
172
|
-
* @param props 标记点的配置属性
|
|
173
|
-
* @returns Promise<void> 添加操作完成后的Promise
|
|
174
|
-
* @throws 如果地图视图未初始化则抛出错误
|
|
175
|
-
*/
|
|
176
|
-
addMarker: async (id, props) => {
|
|
177
|
-
if (!nativeRef.current)
|
|
178
|
-
throw new Error('MapView not initialized');
|
|
179
|
-
return nativeRef.current.addMarker(id, props);
|
|
180
|
-
},
|
|
181
|
-
/**
|
|
182
|
-
* 从地图上移除指定ID的标记点
|
|
183
|
-
* @param id 要移除的标记点ID
|
|
184
|
-
* @throws 如果地图视图未初始化则抛出错误
|
|
185
|
-
* @returns Promise<void> 异步操作完成
|
|
186
|
-
*/
|
|
187
|
-
removeMarker: async (id) => {
|
|
188
|
-
if (!nativeRef.current)
|
|
189
|
-
throw new Error('MapView not initialized');
|
|
190
|
-
return nativeRef.current.removeMarker(id);
|
|
191
|
-
},
|
|
192
|
-
/**
|
|
193
|
-
* 更新地图上指定ID的标记点属性
|
|
194
|
-
* @param id - 要更新的标记点唯一标识符
|
|
195
|
-
* @param props - 需要更新的标记点属性对象(部分属性)
|
|
196
|
-
* @throws 如果地图视图未初始化则抛出错误
|
|
197
|
-
* @returns Promise对象,表示异步更新操作
|
|
198
|
-
*/
|
|
199
|
-
updateMarker: async (id, props) => {
|
|
200
|
-
if (!nativeRef.current)
|
|
201
|
-
throw new Error('MapView not initialized');
|
|
202
|
-
return nativeRef.current.updateMarker(id, props);
|
|
203
|
-
},
|
|
204
|
-
/**
|
|
205
|
-
* 添加折线覆盖物到地图
|
|
206
|
-
* @param id - 折线的唯一标识符
|
|
207
|
-
* @param props - 折线的配置属性
|
|
208
|
-
* @returns Promise<void> 添加操作的异步结果
|
|
209
|
-
* @throws 如果地图视图未初始化则抛出错误
|
|
210
|
-
*/
|
|
211
|
-
addPolyline: async (id, props) => {
|
|
212
|
-
if (!nativeRef.current)
|
|
213
|
-
throw new Error('MapView not initialized');
|
|
214
|
-
return nativeRef.current.addPolyline(id, props);
|
|
215
|
-
},
|
|
216
|
-
/**
|
|
217
|
-
* 移除地图上的指定折线
|
|
218
|
-
* @param id - 要移除的折线的唯一标识符
|
|
219
|
-
* @throws 如果地图视图未初始化,抛出错误
|
|
220
|
-
* @returns Promise<void>
|
|
221
|
-
*/
|
|
222
|
-
removePolyline: async (id) => {
|
|
223
|
-
if (!nativeRef.current)
|
|
224
|
-
throw new Error('MapView not initialized');
|
|
225
|
-
return nativeRef.current.removePolyline(id);
|
|
226
|
-
},
|
|
227
|
-
/**
|
|
228
|
-
* 更新地图上的折线覆盖物
|
|
229
|
-
*
|
|
230
|
-
* @param id 要更新的折线覆盖物的唯一标识符
|
|
231
|
-
* @param props 要更新的折线属性,包含部分PolylineProps属性
|
|
232
|
-
* @returns Promise<void> 异步操作结果
|
|
233
|
-
* @throws 如果地图视图未初始化,抛出错误
|
|
234
|
-
*/
|
|
235
|
-
updatePolyline: async (id, props) => {
|
|
236
|
-
if (!nativeRef.current)
|
|
237
|
-
throw new Error('MapView not initialized');
|
|
238
|
-
return nativeRef.current.updatePolyline(id, props);
|
|
239
|
-
},
|
|
240
|
-
/**
|
|
241
|
-
* 向地图添加多边形覆盖物
|
|
242
|
-
* @param id - 多边形的唯一标识符
|
|
243
|
-
* @param props - 多边形的配置属性
|
|
244
|
-
* @returns Promise<void> 添加操作的异步结果
|
|
245
|
-
* @throws 如果地图视图未初始化则抛出错误
|
|
246
|
-
*/
|
|
247
|
-
addPolygon: async (id, props) => {
|
|
248
|
-
if (!nativeRef.current)
|
|
249
|
-
throw new Error('MapView not initialized');
|
|
250
|
-
return nativeRef.current.addPolygon(id, props);
|
|
251
|
-
},
|
|
252
|
-
/**
|
|
253
|
-
* 移除地图上的多边形覆盖物
|
|
254
|
-
* @param id - 要移除的多边形覆盖物的唯一标识符
|
|
255
|
-
* @throws 如果地图视图未初始化,抛出错误 'MapView not initialized'
|
|
256
|
-
* @returns Promise<void> 异步操作完成
|
|
257
|
-
*/
|
|
258
|
-
removePolygon: async (id) => {
|
|
259
|
-
if (!nativeRef.current)
|
|
260
|
-
throw new Error('MapView not initialized');
|
|
261
|
-
return nativeRef.current.removePolygon(id);
|
|
262
|
-
},
|
|
263
|
-
/**
|
|
264
|
-
* 更新多边形覆盖物的属性
|
|
265
|
-
*
|
|
266
|
-
* @param id - 要更新的多边形覆盖物的唯一标识符
|
|
267
|
-
* @param props - 要更新的多边形属性对象,包含需要更新的部分属性
|
|
268
|
-
* @throws {Error} 当地图视图未初始化时抛出错误
|
|
269
|
-
* @returns Promise<void> 异步操作完成后的Promise
|
|
270
|
-
*/
|
|
271
|
-
updatePolygon: async (id, props) => {
|
|
272
|
-
if (!nativeRef.current)
|
|
273
|
-
throw new Error('MapView not initialized');
|
|
274
|
-
return nativeRef.current.updatePolygon(id, props);
|
|
275
|
-
},
|
|
80
|
+
}
|
|
276
81
|
}), []);
|
|
277
82
|
/**
|
|
278
83
|
* 将传入的apiRef赋值给internalRef.current
|
|
@@ -286,19 +91,9 @@ const ExpoGaodeMapView = React.forwardRef((props, ref) => {
|
|
|
286
91
|
* @returns 返回地图API的引用对象,可用于调用地图相关方法
|
|
287
92
|
*/
|
|
288
93
|
React.useImperativeHandle(ref, () => apiRef, [apiRef]);
|
|
289
|
-
return (<
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
<PolygonEventContext.Provider value={polygonEventManager}>
|
|
293
|
-
<PolylineEventContext.Provider value={polylineEventManager}>
|
|
294
|
-
<NativeView ref={nativeRef} {...props} onMarkerPress={handleMarkerPress} onMarkerDragStart={handleMarkerDragStart} onMarkerDrag={handleMarkerDrag} onMarkerDragEnd={handleMarkerDragEnd} onCirclePress={handleCirclePress} onPolygonPress={handlePolygonPress} onPolylinePress={handlePolylinePress}>
|
|
295
|
-
{props.children}
|
|
296
|
-
</NativeView>
|
|
297
|
-
</PolylineEventContext.Provider>
|
|
298
|
-
</PolygonEventContext.Provider>
|
|
299
|
-
</CircleEventContext.Provider>
|
|
300
|
-
</MarkerEventContext.Provider>
|
|
301
|
-
</MapContext.Provider>);
|
|
94
|
+
return (<NativeView ref={nativeRef} {...props}>
|
|
95
|
+
{props.children}
|
|
96
|
+
</NativeView>);
|
|
302
97
|
});
|
|
303
98
|
ExpoGaodeMapView.displayName = 'ExpoGaodeMapView';
|
|
304
99
|
export default ExpoGaodeMapView;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoGaodeMapView.js","sourceRoot":"","sources":["../src/ExpoGaodeMapView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { requireNativeViewManager } from 'expo-modules-core';\nimport * as React from 'react';\nimport { NativeSyntheticEvent } from 'react-native';\nimport { EventManager } from './utils/EventManager';\nimport type {\n MapViewProps,\n MapViewRef,\n NativeMapViewRef,\n CameraPosition,\n LatLng,\n Point,\n CircleProps,\n MarkerProps,\n PolylineProps,\n PolygonProps,\n} from './types';\n\nexport type { MapViewRef } from './types';\n\nconst NativeView: React.ComponentType<MapViewProps & { ref?: React.Ref<NativeMapViewRef> }> = requireNativeViewManager('ExpoGaodeMapView');\n\nexport const MapContext = React.createContext<React.RefObject<MapViewRef | null> | null>(null);\n\ntype MarkerEventCallbacks = {\n onPress?: (event: NativeSyntheticEvent<{}>) => void;\n onDragStart?: (event: NativeSyntheticEvent<LatLng>) => void;\n onDrag?: (event: NativeSyntheticEvent<LatLng>) => void;\n onDragEnd?: (event: NativeSyntheticEvent<LatLng>) => void;\n};\n\ntype OverlayEventCallbacks = {\n onPress?: (event: NativeSyntheticEvent<{}>) => void;\n};\n\nexport const MarkerEventContext = React.createContext<EventManager<MarkerEventCallbacks> | null>(null);\nexport const CircleEventContext = React.createContext<EventManager<OverlayEventCallbacks> | null>(null);\nexport const PolygonEventContext = React.createContext<EventManager<OverlayEventCallbacks> | null>(null);\nexport const PolylineEventContext = React.createContext<EventManager<OverlayEventCallbacks> | null>(null);\n\n/**\n * 高德地图视图组件,提供地图操作API和覆盖物管理功能\n * \n * @param props - 组件属性\n * @param ref - 外部ref引用,用于访问地图API方法\n * @returns 返回包含地图视图和上下文提供者的React组件\n * \n * @remarks\n * 该组件内部维护两个ref:\n * - nativeRef: 指向原生地图视图的引用\n * - internalRef: 内部使用的API引用,通过MapContext共享\n * \n * 提供的主要API功能包括:\n * - 相机控制(移动、缩放、获取当前位置)\n * - 覆盖物管理(添加/删除/更新标记、折线、多边形、圆形等)\n * \n * 所有API方法都会检查地图是否已初始化,未初始化时抛出错误\n */\nconst ExpoGaodeMapView = React.forwardRef<MapViewRef, MapViewProps>((props, ref) => {\n const nativeRef = React.useRef<NativeMapViewRef>(null);\n const internalRef = React.useRef<MapViewRef | null>(null);\n const markerEventManager = React.useMemo(() => new EventManager<MarkerEventCallbacks>(), []);\n const circleEventManager = React.useMemo(() => new EventManager<OverlayEventCallbacks>(), []);\n const polygonEventManager = React.useMemo(() => new EventManager<OverlayEventCallbacks>(), []);\n const polylineEventManager = React.useMemo(() => new EventManager<OverlayEventCallbacks>(), []);\n const handleMarkerPress = (event: any) => {\n const markerId = event.nativeEvent?.markerId;\n if (markerId) markerEventManager.trigger(markerId, 'onPress', event);\n props.onMarkerPress?.(event);\n };\n \n const handleMarkerDragStart = (event: any) => {\n const markerId = event.nativeEvent?.markerId;\n if (markerId) markerEventManager.trigger(markerId, 'onDragStart', event);\n props.onMarkerDragStart?.(event);\n };\n \n const handleMarkerDrag = (event: any) => {\n const markerId = event.nativeEvent?.markerId;\n if (markerId) markerEventManager.trigger(markerId, 'onDrag', event);\n props.onMarkerDrag?.(event);\n };\n \n const handleMarkerDragEnd = (event: any) => {\n const markerId = event.nativeEvent?.markerId;\n if (markerId) {\n markerEventManager.trigger(markerId, 'onDragEnd', event);\n }\n props.onMarkerDragEnd?.(event);\n };\n \n const handleCirclePress = (event: any) => {\n const circleId = event.nativeEvent?.circleId;\n if (circleId) circleEventManager.trigger(circleId, 'onPress', event);\n props.onCirclePress?.(event);\n };\n \n const handlePolygonPress = (event: any) => {\n const polygonId = event.nativeEvent?.polygonId;\n if (polygonId) polygonEventManager.trigger(polygonId, 'onPress', event);\n props.onPolygonPress?.(event);\n };\n \n const handlePolylinePress = (event: any) => {\n const polylineId = event.nativeEvent?.polylineId;\n if (polylineId) polylineEventManager.trigger(polylineId, 'onPress', event);\n props.onPolylinePress?.(event);\n };\n\n const apiRef: MapViewRef = React.useMemo(() => ({\n /**\n * 移动地图相机到指定位置\n * @param position 相机位置参数对象,包含目标经纬度、缩放级别等信息\n * @param duration 动画持续时间(毫秒),默认300毫秒\n * @throws 如果地图视图未初始化则抛出错误\n * @returns Promise<void> 异步操作完成后的Promise\n */\n moveCamera: async (position: CameraPosition, duration: number = 300) => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.moveCamera(position, duration);\n },\n /**\n * 将屏幕坐标点转换为地理坐标(经纬度)\n * @param point 屏幕坐标点 {x: number, y: number}\n * @returns 返回Promise,解析为对应的地理坐标 {latitude: number, longitude: number}\n * @throws 如果地图视图未初始化,抛出错误 'MapView not initialized'\n */\n getLatLng: async (point: Point) => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.getLatLng(point);\n },\n /**\n * 设置地图中心点坐标\n * @param center 要设置的中心点坐标(LatLng格式)\n * @param animated 是否使用动画效果移动地图(默认为false)\n * @throws 如果地图视图未初始化则抛出错误\n */\n setCenter: async (center: LatLng, animated: boolean = false) => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.setCenter(center, animated);\n },\n /**\n * 设置地图的缩放级别\n * @param zoom 目标缩放级别\n * @param animated 是否使用动画过渡效果,默认为false\n * @throws 如果地图视图未初始化,抛出错误\n */\n setZoom: async (zoom: number, animated: boolean = false) => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.setZoom(zoom, animated);\n },\n /**\n * 获取当前地图的相机位置(视角中心点、缩放级别、倾斜角度等)\n * @returns 返回一个Promise,解析为当前相机位置的对象\n * @throws 如果地图视图未初始化,则抛出错误\n */\n getCameraPosition: async () => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.getCameraPosition();\n },\n /**\n * 在地图上添加圆形覆盖物\n * @param id - 圆形覆盖物的唯一标识符\n * @param props - 圆形覆盖物的属性配置\n * @returns Promise<void> 添加操作的异步结果\n * @throws 如果地图视图未初始化,抛出错误'MapView not initialized'\n */\n addCircle: async (id: string, props: CircleProps) => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.addCircle(id, props);\n },\n /**\n * 从地图上移除指定的圆形覆盖物\n * @param id - 要移除的圆形覆盖物的唯一标识符\n * @throws 如果地图视图未初始化,抛出错误\n * @returns Promise<void> 异步操作完成\n */\n removeCircle: async (id: string) => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.removeCircle(id);\n },\n /**\n * 更新地图上的圆形覆盖物\n * @param id 要更新的圆形覆盖物的唯一标识符\n * @param props 要更新的圆形属性(部分属性)\n * @throws 如果地图视图未初始化,抛出错误\n * @returns Promise<void> 表示更新操作完成\n */\n updateCircle: async (id: string, props: Partial<CircleProps>) => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.updateCircle(id, props);\n },\n /**\n * 添加一个标记点到地图上\n * @param id 标记点的唯一标识符\n * @param props 标记点的配置属性\n * @returns Promise<void> 添加操作完成后的Promise\n * @throws 如果地图视图未初始化则抛出错误\n */\n addMarker: async (id: string, props: MarkerProps) => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.addMarker(id, props);\n },\n /**\n * 从地图上移除指定ID的标记点\n * @param id 要移除的标记点ID\n * @throws 如果地图视图未初始化则抛出错误\n * @returns Promise<void> 异步操作完成\n */\n removeMarker: async (id: string) => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.removeMarker(id);\n },\n /**\n * 更新地图上指定ID的标记点属性\n * @param id - 要更新的标记点唯一标识符\n * @param props - 需要更新的标记点属性对象(部分属性)\n * @throws 如果地图视图未初始化则抛出错误\n * @returns Promise对象,表示异步更新操作\n */\n updateMarker: async (id: string, props: Partial<MarkerProps>) => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.updateMarker(id, props);\n },\n /**\n * 添加折线覆盖物到地图\n * @param id - 折线的唯一标识符\n * @param props - 折线的配置属性\n * @returns Promise<void> 添加操作的异步结果\n * @throws 如果地图视图未初始化则抛出错误\n */\n addPolyline: async (id: string, props: PolylineProps) => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.addPolyline(id, props);\n },\n /**\n * 移除地图上的指定折线\n * @param id - 要移除的折线的唯一标识符\n * @throws 如果地图视图未初始化,抛出错误\n * @returns Promise<void>\n */\n removePolyline: async (id: string) => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.removePolyline(id);\n },\n /**\n * 更新地图上的折线覆盖物\n * \n * @param id 要更新的折线覆盖物的唯一标识符\n * @param props 要更新的折线属性,包含部分PolylineProps属性\n * @returns Promise<void> 异步操作结果\n * @throws 如果地图视图未初始化,抛出错误\n */\n updatePolyline: async (id: string, props: Partial<PolylineProps>) => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.updatePolyline(id, props);\n },\n /**\n * 向地图添加多边形覆盖物\n * @param id - 多边形的唯一标识符\n * @param props - 多边形的配置属性\n * @returns Promise<void> 添加操作的异步结果\n * @throws 如果地图视图未初始化则抛出错误\n */\n addPolygon: async (id: string, props: PolygonProps) => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.addPolygon(id, props);\n },\n /**\n * 移除地图上的多边形覆盖物\n * @param id - 要移除的多边形覆盖物的唯一标识符\n * @throws 如果地图视图未初始化,抛出错误 'MapView not initialized'\n * @returns Promise<void> 异步操作完成\n */\n removePolygon: async (id: string) => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.removePolygon(id);\n },\n /**\n * 更新多边形覆盖物的属性\n * \n * @param id - 要更新的多边形覆盖物的唯一标识符\n * @param props - 要更新的多边形属性对象,包含需要更新的部分属性\n * @throws {Error} 当地图视图未初始化时抛出错误\n * @returns Promise<void> 异步操作完成后的Promise\n */\n updatePolygon: async (id: string, props: Partial<PolygonProps>) => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.updatePolygon(id, props);\n },\n }), []);\n\n /**\n * 将传入的apiRef赋值给internalRef.current\n * 用于在组件内部保存对地图API实例的引用\n */\n React.useEffect(() => {\n internalRef.current = apiRef;\n }, [apiRef]);\n\n /**\n * 获取当前地图实例的API引用\n * @returns 返回地图API的引用对象,可用于调用地图相关方法\n */\n React.useImperativeHandle(ref, () => apiRef, [apiRef]);\n\n return (\n <MapContext.Provider value={internalRef}>\n <MarkerEventContext.Provider value={markerEventManager}>\n <CircleEventContext.Provider value={circleEventManager}>\n <PolygonEventContext.Provider value={polygonEventManager}>\n <PolylineEventContext.Provider value={polylineEventManager}>\n <NativeView\n ref={nativeRef}\n {...props}\n onMarkerPress={handleMarkerPress}\n onMarkerDragStart={handleMarkerDragStart}\n onMarkerDrag={handleMarkerDrag}\n onMarkerDragEnd={handleMarkerDragEnd}\n onCirclePress={handleCirclePress}\n onPolygonPress={handlePolygonPress}\n onPolylinePress={handlePolylinePress}\n >\n {props.children}\n </NativeView>\n </PolylineEventContext.Provider>\n </PolygonEventContext.Provider>\n </CircleEventContext.Provider>\n </MarkerEventContext.Provider>\n </MapContext.Provider>\n );\n});\n\nExpoGaodeMapView.displayName = 'ExpoGaodeMapView';\n\nexport default ExpoGaodeMapView;\n"]}
|
|
1
|
+
{"version":3,"file":"ExpoGaodeMapView.js","sourceRoot":"","sources":["../src/ExpoGaodeMapView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,MAAM,UAAU,GAAwE,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;AAIrI;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAA2B,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACjF,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAa,IAAI,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAoB,IAAI,CAAC,CAAC;IAG1D,MAAM,MAAM,GAAe,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9C;;;;;;WAMG;QACH,UAAU,EAAE,KAAK,EAAE,QAAwB,EAAE,WAAmB,GAAG,EAAE,EAAE;YACrE,IAAI,CAAC,SAAS,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACnE,OAAO,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1D,CAAC;QACD;;;;;WAKG;QACH,SAAS,EAAE,KAAK,EAAE,KAAY,EAAE,EAAE;YAChC,IAAI,CAAC,SAAS,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACnE,OAAO,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QACD;;;;;WAKG;QACH,SAAS,EAAE,KAAK,EAAE,MAAc,EAAE,WAAoB,KAAK,EAAE,EAAE;YAC7D,IAAI,CAAC,SAAS,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACnE,OAAO,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACvD,CAAC;QACD;;;;;WAKG;QACH,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,WAAoB,KAAK,EAAE,EAAE;YACzD,IAAI,CAAC,SAAS,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACnE,OAAO,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC;QACD;;;;WAIG;QACH,iBAAiB,EAAE,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC,SAAS,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACnE,OAAO,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC/C,CAAC;KAEF,CAAC,EAAE,EAAE,CAAC,CAAC;IAER;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC;IAC/B,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb;;;OAGG;IACH,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvD,OAAO,CACL,CAAC,UAAU,CACP,GAAG,CAAC,CAAC,SAAS,CAAC,CACb,IAAI,KAAK,CAAC,CACV;UAAA,CAAC,KAAK,CAAC,QAAQ,CACjB;QAAA,EAAE,UAAU,CAAC,CAClB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,gBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAC;AAElD,eAAe,gBAAgB,CAAC","sourcesContent":["import { requireNativeViewManager } from 'expo-modules-core';\nimport * as React from 'react';\n\nimport type {\n MapViewProps,\n MapViewRef,\n CameraPosition,\n LatLng,\n Point,\n\n} from './types';\n\nexport type { MapViewRef } from './types';\n\nconst NativeView: React.ComponentType<MapViewProps & { ref?: React.Ref<MapViewRef> }> = requireNativeViewManager('ExpoGaodeMapView');\n\n\n\n/**\n * 高德地图视图组件,提供地图操作API和覆盖物管理功能\n * \n * @param props - 组件属性\n * @param ref - 外部ref引用,用于访问地图API方法\n * @returns 返回包含地图视图和上下文提供者的React组件\n * \n * @remarks\n * 该组件内部维护两个ref:\n * - nativeRef: 指向原生地图视图的引用\n * - internalRef: 内部使用的API引用,通过MapContext共享\n * \n * 提供的主要API功能包括:\n * - 相机控制(移动、缩放、获取当前位置)\n * - 覆盖物管理(添加/删除/更新标记、折线、多边形、圆形等)\n * \n * 所有API方法都会检查地图是否已初始化,未初始化时抛出错误\n */\nconst ExpoGaodeMapView = React.forwardRef<MapViewRef, MapViewProps>((props, ref) => {\n const nativeRef = React.useRef<MapViewRef>(null);\n const internalRef = React.useRef<MapViewRef | null>(null);\n \n\n const apiRef: MapViewRef = React.useMemo(() => ({\n /**\n * 移动地图相机到指定位置\n * @param position 相机位置参数对象,包含目标经纬度、缩放级别等信息\n * @param duration 动画持续时间(毫秒),默认300毫秒\n * @throws 如果地图视图未初始化则抛出错误\n * @returns Promise<void> 异步操作完成后的Promise\n */\n moveCamera: async (position: CameraPosition, duration: number = 300) => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.moveCamera(position, duration);\n },\n /**\n * 将屏幕坐标点转换为地理坐标(经纬度)\n * @param point 屏幕坐标点 {x: number, y: number}\n * @returns 返回Promise,解析为对应的地理坐标 {latitude: number, longitude: number}\n * @throws 如果地图视图未初始化,抛出错误 'MapView not initialized'\n */\n getLatLng: async (point: Point) => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.getLatLng(point);\n },\n /**\n * 设置地图中心点坐标\n * @param center 要设置的中心点坐标(LatLng格式)\n * @param animated 是否使用动画效果移动地图(默认为false)\n * @throws 如果地图视图未初始化则抛出错误\n */\n setCenter: async (center: LatLng, animated: boolean = false) => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.setCenter(center, animated);\n },\n /**\n * 设置地图的缩放级别\n * @param zoom 目标缩放级别\n * @param animated 是否使用动画过渡效果,默认为false\n * @throws 如果地图视图未初始化,抛出错误\n */\n setZoom: async (zoom: number, animated: boolean = false) => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.setZoom(zoom, animated);\n },\n /**\n * 获取当前地图的相机位置(视角中心点、缩放级别、倾斜角度等)\n * @returns 返回一个Promise,解析为当前相机位置的对象\n * @throws 如果地图视图未初始化,则抛出错误\n */\n getCameraPosition: async () => {\n if (!nativeRef.current) throw new Error('MapView not initialized');\n return nativeRef.current.getCameraPosition();\n }\n\n }), []);\n\n /**\n * 将传入的apiRef赋值给internalRef.current\n * 用于在组件内部保存对地图API实例的引用\n */\n React.useEffect(() => {\n internalRef.current = apiRef;\n }, [apiRef]);\n\n /**\n * 获取当前地图实例的API引用\n * @returns 返回地图API的引用对象,可用于调用地图相关方法\n */\n React.useImperativeHandle(ref, () => apiRef, [apiRef]);\n\n return (\n <NativeView\n ref={nativeRef}\n {...props}>\n {props.children}\n </NativeView>\n );\n});\n\nExpoGaodeMapView.displayName = 'ExpoGaodeMapView';\n\nexport default ExpoGaodeMapView;\n"]}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { CircleProps } from '../../types';
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* 高德地图圆形覆盖物组件(声明式)
|
|
5
|
+
*
|
|
6
|
+
*
|
|
7
|
+
* @param props 圆形组件的属性配置
|
|
8
|
+
* @returns 渲染原生圆形组件
|
|
9
|
+
*/
|
|
10
|
+
declare function Circle(props: CircleProps): React.JSX.Element;
|
|
11
|
+
declare const _default: React.MemoExoticComponent<typeof Circle>;
|
|
12
|
+
export default _default;
|
|
4
13
|
//# sourceMappingURL=Circle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Circle.d.ts","sourceRoot":"","sources":["../../../src/components/overlays/Circle.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Circle.d.ts","sourceRoot":"","sources":["../../../src/components/overlays/Circle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C;;;;;;GAMG;AACH,iBAAS,MAAM,CAAC,KAAK,EAAE,WAAW,qBAEjC;;AAGD,wBAAkC"}
|
|
@@ -1,91 +1,16 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @Author : 尚博信_王强 wangqiang03@sunboxsoft.com
|
|
3
|
-
* @Date : 2025-11-13 15:02:04
|
|
4
|
-
* @LastEditors : 尚博信_王强 wangqiang03@sunboxsoft.com
|
|
5
|
-
* @LastEditTime : 2025-11-21 10:36:10
|
|
6
|
-
* @FilePath : /expo-gaode-map/src/components/overlays/Circle.tsx
|
|
7
|
-
* @Description :
|
|
8
|
-
*
|
|
9
|
-
* Copyright (c) 2025 by 尚博信_王强, All Rights Reserved.
|
|
10
|
-
*/
|
|
11
1
|
import * as React from 'react';
|
|
12
2
|
import { requireNativeViewManager } from 'expo-modules-core';
|
|
13
|
-
import { MapContext, CircleEventContext } from '../../ExpoGaodeMapView';
|
|
14
3
|
const NativeCircleView = requireNativeViewManager('CircleView');
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const eventManager = React.useContext(CircleEventContext);
|
|
25
|
-
const circleIdRef = React.useRef(`circle_${Date.now()}_${Math.random()}`);
|
|
26
|
-
React.useEffect(() => {
|
|
27
|
-
if (eventManager) {
|
|
28
|
-
eventManager.register(circleIdRef.current, {
|
|
29
|
-
onPress: props.onPress,
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
return () => {
|
|
33
|
-
if (eventManager) {
|
|
34
|
-
eventManager.unregister(circleIdRef.current);
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
}, [props.onPress]);
|
|
38
|
-
return (<NativeCircleView {...props}>
|
|
39
|
-
{props.children}
|
|
40
|
-
</NativeCircleView>);
|
|
41
|
-
}
|
|
42
|
-
function CircleImperative(props) {
|
|
43
|
-
const mapRef = React.useContext(MapContext);
|
|
44
|
-
const eventManager = React.useContext(CircleEventContext);
|
|
45
|
-
const circleIdRef = React.useRef(null);
|
|
46
|
-
const propsRef = React.useRef(props);
|
|
47
|
-
React.useEffect(() => {
|
|
48
|
-
propsRef.current = props;
|
|
49
|
-
}, [props]);
|
|
50
|
-
React.useEffect(() => {
|
|
51
|
-
const checkAndAdd = () => {
|
|
52
|
-
if (!mapRef?.current) {
|
|
53
|
-
setTimeout(checkAndAdd, 50);
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
const circleId = `circle_${Date.now()}_${Math.random()}`;
|
|
57
|
-
circleIdRef.current = circleId;
|
|
58
|
-
if (eventManager && props.onPress) {
|
|
59
|
-
eventManager.register(circleId, {
|
|
60
|
-
onPress: props.onPress,
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
mapRef.current.addCircle(circleId, propsRef.current);
|
|
64
|
-
};
|
|
65
|
-
checkAndAdd();
|
|
66
|
-
return () => {
|
|
67
|
-
if (circleIdRef.current) {
|
|
68
|
-
if (eventManager) {
|
|
69
|
-
eventManager.unregister(circleIdRef.current);
|
|
70
|
-
}
|
|
71
|
-
if (mapRef?.current) {
|
|
72
|
-
mapRef.current.removeCircle(circleIdRef.current);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
}, []);
|
|
77
|
-
React.useEffect(() => {
|
|
78
|
-
if (circleIdRef.current && eventManager) {
|
|
79
|
-
eventManager.register(circleIdRef.current, {
|
|
80
|
-
onPress: props.onPress,
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
}, [props.onPress]);
|
|
84
|
-
React.useEffect(() => {
|
|
85
|
-
if (circleIdRef.current && mapRef?.current) {
|
|
86
|
-
mapRef.current.updateCircle(circleIdRef.current, props);
|
|
87
|
-
}
|
|
88
|
-
}, [props.center, props.radius, props.fillColor, props.strokeColor, props.strokeWidth]);
|
|
89
|
-
return null;
|
|
4
|
+
/**
|
|
5
|
+
* 高德地图圆形覆盖物组件(声明式)
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* @param props 圆形组件的属性配置
|
|
9
|
+
* @returns 渲染原生圆形组件
|
|
10
|
+
*/
|
|
11
|
+
function Circle(props) {
|
|
12
|
+
return <NativeCircleView {...props}/>;
|
|
90
13
|
}
|
|
14
|
+
// 导出优化后的组件
|
|
15
|
+
export default React.memo(Circle);
|
|
91
16
|
//# sourceMappingURL=Circle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Circle.js","sourceRoot":"","sources":["../../../src/components/overlays/Circle.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Circle.js","sourceRoot":"","sources":["../../../src/components/overlays/Circle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,MAAM,gBAAgB,GAAG,wBAAwB,CAAc,YAAY,CAAC,CAAC;AAE7E;;;;;;GAMG;AACH,SAAS,MAAM,CAAC,KAAkB;IAChC,OAAO,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,EAAG,CAAC;AACzC,CAAC;AAED,WAAW;AACX,eAAe,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC","sourcesContent":["import * as React from 'react';\nimport { requireNativeViewManager } from 'expo-modules-core';\nimport type { CircleProps } from '../../types';\n\nconst NativeCircleView = requireNativeViewManager<CircleProps>('CircleView');\n\n/**\n * 高德地图圆形覆盖物组件(声明式)\n *\n *\n * @param props 圆形组件的属性配置\n * @returns 渲染原生圆形组件\n */\nfunction Circle(props: CircleProps) {\n return <NativeCircleView {...props} />;\n}\n\n// 导出优化后的组件\nexport default React.memo(Circle);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cluster.d.ts","sourceRoot":"","sources":["../../../src/components/overlays/Cluster.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Cluster.d.ts","sourceRoot":"","sources":["../../../src/components/overlays/Cluster.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,KAAK,EAAE,YAAY,qBAElD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cluster.js","sourceRoot":"","sources":["../../../src/components/overlays/Cluster.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,aAAa,GAAG,wBAAwB,CAAC,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Cluster.js","sourceRoot":"","sources":["../../../src/components/overlays/Cluster.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,aAAa,GAAG,wBAAwB,CAAC,aAAa,CAAC,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,KAAmB;IACjD,OAAO,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,EAAG,CAAC;AACtC,CAAC","sourcesContent":["\nimport { requireNativeViewManager } from 'expo-modules-core';\nimport * as React from 'react';\nimport type { ClusterProps } from '../../types';\n\nconst NativeCluster = requireNativeViewManager('ClusterView');\n\n/**\n * 高德地图点聚合组件\n * \n * @param props 点聚合组件的属性配置\n * @returns 渲染原生点聚合组件\n */\nexport default function Cluster(props: ClusterProps) {\n return <NativeCluster {...props} />;\n}\n"]}
|
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { MarkerProps } from '../../types';
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Marker 组件 - 完全声明式 API
|
|
5
|
+
*
|
|
6
|
+
* 支持:
|
|
7
|
+
* - 自定义图标(icon)
|
|
8
|
+
* - 自定义内容(children)
|
|
9
|
+
* - 大头针样式(pinColor)
|
|
10
|
+
* - 拖拽功能
|
|
11
|
+
* - 所有事件回调
|
|
12
|
+
*/
|
|
13
|
+
declare function Marker(props: MarkerProps): React.JSX.Element;
|
|
14
|
+
declare const _default: React.MemoExoticComponent<typeof Marker>;
|
|
15
|
+
export default _default;
|
|
4
16
|
//# sourceMappingURL=Marker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Marker.d.ts","sourceRoot":"","sources":["../../../src/components/overlays/Marker.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Marker.d.ts","sourceRoot":"","sources":["../../../src/components/overlays/Marker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C;;;;;;;;;GASG;AACH,iBAAS,MAAM,CAAC,KAAK,EAAE,WAAW,qBA2BjC;;AAyCD,wBAAiD"}
|