expo-gaode-map 1.1.0 → 1.1.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.
@@ -545,8 +545,45 @@ class MarkerView(context: Context, appContext: AppContext) : ExpoView(context, a
545
545
  }
546
546
 
547
547
 
548
+ override fun removeView(child: View?) {
549
+ android.util.Log.d("MarkerView", "➖ removeView 被调用,child = $child, childCount = $childCount")
550
+ super.removeView(child)
551
+
552
+ // 子视图被移除后,清除图标或恢复默认图标
553
+ mainHandler.postDelayed({
554
+ android.util.Log.d("MarkerView", "⏰ removeView 延迟更新,childCount = $childCount")
555
+ if (childCount == 0 && marker != null) {
556
+ android.util.Log.d("MarkerView", "📍 所有子视图已移除,恢复默认图标")
557
+ marker?.setIcon(BitmapDescriptorFactory.defaultMarker())
558
+ marker?.setAnchor(0.5f, 1.0f)
559
+ }
560
+ }, 50)
561
+ }
562
+
563
+ override fun removeViewAt(index: Int) {
564
+ android.util.Log.d("MarkerView", "➖ removeViewAt 被调用,index = $index, childCount = $childCount")
565
+ if (index >= 0 && index < childCount) {
566
+ super.removeViewAt(index)
567
+
568
+ // 子视图被移除后,清除图标或恢复默认图标
569
+ mainHandler.postDelayed({
570
+ android.util.Log.d("MarkerView", "⏰ removeViewAt 延迟更新,childCount = $childCount")
571
+ if (childCount == 0 && marker != null) {
572
+ android.util.Log.d("MarkerView", "📍 所有子视图已移除,恢复默认图标")
573
+ marker?.setIcon(BitmapDescriptorFactory.defaultMarker())
574
+ marker?.setAnchor(0.5f, 1.0f)
575
+ } else if (childCount > 0 && marker != null) {
576
+ android.util.Log.d("MarkerView", "🔄 还有子视图,更新图标")
577
+ updateMarkerIcon()
578
+ }
579
+ }, 50)
580
+ } else {
581
+ android.util.Log.w("MarkerView", "⚠️ removeViewAt: 无效的索引 $index,childCount = $childCount")
582
+ }
583
+ }
584
+
548
585
  override fun addView(child: View?, index: Int, params: android.view.ViewGroup.LayoutParams?) {
549
- android.util.Log.d("MarkerView", "➕ addView 被调用,child = $child")
586
+ android.util.Log.d("MarkerView", "➕ addView 被调用,child = $child, index = $index, childCount = $childCount")
550
587
  super.addView(child, index, params)
551
588
 
552
589
  // 延迟更新图标,等待 React Native 样式和内容渲染
@@ -1,18 +1,17 @@
1
1
  import * as React from 'react';
2
+ import { NativeSyntheticEvent } from 'react-native';
2
3
  import { EventManager } from './utils/EventManager';
3
4
  import type { MapViewProps, MapViewRef, LatLng } from './types';
4
5
  export type { MapViewRef } from './types';
5
6
  export declare const MapContext: React.Context<React.RefObject<MapViewRef | null> | null>;
6
7
  type MarkerEventCallbacks = {
7
- onPress?: () => void;
8
- onDragStart?: () => void;
9
- onDrag?: () => void;
10
- onDragEnd?: (event: {
11
- nativeEvent: LatLng;
12
- }) => void;
8
+ onPress?: (event: NativeSyntheticEvent<{}>) => void;
9
+ onDragStart?: (event: NativeSyntheticEvent<LatLng>) => void;
10
+ onDrag?: (event: NativeSyntheticEvent<LatLng>) => void;
11
+ onDragEnd?: (event: NativeSyntheticEvent<LatLng>) => void;
13
12
  };
14
13
  type OverlayEventCallbacks = {
15
- onPress?: () => void;
14
+ onPress?: (event: NativeSyntheticEvent<{}>) => void;
16
15
  };
17
16
  export declare const MarkerEventContext: React.Context<EventManager<MarkerEventCallbacks> | null>;
18
17
  export declare const CircleEventContext: React.Context<EventManager<OverlayEventCallbacks> | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoGaodeMapView.d.ts","sourceRoot":"","sources":["../src/ExpoGaodeMapView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EAGV,MAAM,EAMP,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAI1C,eAAO,MAAM,UAAU,0DAAuE,CAAC;AAE/F,KAAK,oBAAoB,GAAG;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACtD,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,kBAAkB,0DAAuE,CAAC;AACvG,eAAO,MAAM,kBAAkB,2DAAwE,CAAC;AACxG,eAAO,MAAM,mBAAmB,2DAAwE,CAAC;AACzG,eAAO,MAAM,oBAAoB,2DAAwE,CAAC;AAE1G;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,gBAAgB,iFAsRpB,CAAC;AAIH,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"ExpoGaodeMapView.d.ts","sourceRoot":"","sources":["../src/ExpoGaodeMapView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EAGV,MAAM,EAMP,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAI1C,eAAO,MAAM,UAAU,0DAAuE,CAAC;AAE/F,KAAK,oBAAoB,GAAG;IAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IACpD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC5D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACvD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;CAC3D,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;CACrD,CAAC;AAEF,eAAO,MAAM,kBAAkB,0DAAuE,CAAC;AACvG,eAAO,MAAM,kBAAkB,2DAAwE,CAAC;AACxG,eAAO,MAAM,mBAAmB,2DAAwE,CAAC;AACzG,eAAO,MAAM,oBAAoB,2DAAwE,CAAC;AAE1G;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,gBAAgB,iFAiRpB,CAAC;AAIH,eAAe,gBAAgB,CAAC"}
@@ -35,49 +35,44 @@ const ExpoGaodeMapView = React.forwardRef((props, ref) => {
35
35
  const handleMarkerPress = (event) => {
36
36
  const markerId = event.nativeEvent?.markerId;
37
37
  if (markerId)
38
- markerEventManager.trigger(markerId, 'onPress');
38
+ markerEventManager.trigger(markerId, 'onPress', event);
39
39
  props.onMarkerPress?.(event);
40
40
  };
41
41
  const handleMarkerDragStart = (event) => {
42
42
  const markerId = event.nativeEvent?.markerId;
43
43
  if (markerId)
44
- markerEventManager.trigger(markerId, 'onDragStart');
44
+ markerEventManager.trigger(markerId, 'onDragStart', event);
45
45
  props.onMarkerDragStart?.(event);
46
46
  };
47
47
  const handleMarkerDrag = (event) => {
48
48
  const markerId = event.nativeEvent?.markerId;
49
49
  if (markerId)
50
- markerEventManager.trigger(markerId, 'onDrag');
50
+ markerEventManager.trigger(markerId, 'onDrag', event);
51
51
  props.onMarkerDrag?.(event);
52
52
  };
53
53
  const handleMarkerDragEnd = (event) => {
54
54
  const markerId = event.nativeEvent?.markerId;
55
55
  if (markerId) {
56
- markerEventManager.trigger(markerId, 'onDragEnd', {
57
- nativeEvent: {
58
- latitude: event.nativeEvent.latitude,
59
- longitude: event.nativeEvent.longitude
60
- }
61
- });
56
+ markerEventManager.trigger(markerId, 'onDragEnd', event);
62
57
  }
63
58
  props.onMarkerDragEnd?.(event);
64
59
  };
65
60
  const handleCirclePress = (event) => {
66
61
  const circleId = event.nativeEvent?.circleId;
67
62
  if (circleId)
68
- circleEventManager.trigger(circleId, 'onPress');
63
+ circleEventManager.trigger(circleId, 'onPress', event);
69
64
  props.onCirclePress?.(event);
70
65
  };
71
66
  const handlePolygonPress = (event) => {
72
67
  const polygonId = event.nativeEvent?.polygonId;
73
68
  if (polygonId)
74
- polygonEventManager.trigger(polygonId, 'onPress');
69
+ polygonEventManager.trigger(polygonId, 'onPress', event);
75
70
  props.onPolygonPress?.(event);
76
71
  };
77
72
  const handlePolylinePress = (event) => {
78
73
  const polylineId = event.nativeEvent?.polylineId;
79
74
  if (polylineId)
80
- polylineEventManager.trigger(polylineId, 'onPress');
75
+ polylineEventManager.trigger(polylineId, 'onPress', event);
81
76
  props.onPolylinePress?.(event);
82
77
  };
83
78
  const apiRef = React.useMemo(() => ({
@@ -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 { 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?: () => void;\n onDragStart?: () => void;\n onDrag?: () => void;\n onDragEnd?: (event: { nativeEvent: LatLng }) => void;\n};\n\ntype OverlayEventCallbacks = {\n onPress?: () => 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');\n props.onMarkerPress?.(event);\n };\n \n const handleMarkerDragStart = (event: any) => {\n const markerId = event.nativeEvent?.markerId;\n if (markerId) markerEventManager.trigger(markerId, 'onDragStart');\n props.onMarkerDragStart?.(event);\n };\n \n const handleMarkerDrag = (event: any) => {\n const markerId = event.nativeEvent?.markerId;\n if (markerId) markerEventManager.trigger(markerId, 'onDrag');\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', {\n nativeEvent: {\n latitude: event.nativeEvent.latitude,\n longitude: event.nativeEvent.longitude\n }\n });\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');\n props.onCirclePress?.(event);\n };\n \n const handlePolygonPress = (event: any) => {\n const polygonId = event.nativeEvent?.polygonId;\n if (polygonId) polygonEventManager.trigger(polygonId, 'onPress');\n props.onPolygonPress?.(event);\n };\n \n const handlePolylinePress = (event: any) => {\n const polylineId = event.nativeEvent?.polylineId;\n if (polylineId) polylineEventManager.trigger(polylineId, 'onPress');\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":"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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"]}
@@ -2,9 +2,8 @@
2
2
  * 高德地图视图相关类型定义
3
3
  * 基于 Expo Modules API
4
4
  */
5
- import type { StyleProp, ViewStyle } from 'react-native';
5
+ import type { StyleProp, ViewStyle, NativeSyntheticEvent } from 'react-native';
6
6
  import type { CameraPosition, LatLng, LatLngBounds, MapPoi, MapType, Point } from './common.types';
7
- import type { Coordinates, ReGeocode } from './location.types';
8
7
  /**
9
8
  * 地图相机事件
10
9
  */
@@ -142,73 +141,73 @@ export interface MapViewProps {
142
141
  /**
143
142
  * 点击地图事件
144
143
  */
145
- onMapPress?: (event: LatLng) => void;
144
+ onMapPress?: (event: NativeSyntheticEvent<LatLng>) => void;
146
145
  /**
147
146
  * 点击标注点事件
148
147
  */
149
- onPressPoi?: (event: MapPoi) => void;
148
+ onPressPoi?: (event: NativeSyntheticEvent<MapPoi>) => void;
150
149
  /**
151
150
  * 长按地图事件
152
151
  */
153
- onMapLongPress?: (event: LatLng) => void;
152
+ onMapLongPress?: (event: NativeSyntheticEvent<LatLng>) => void;
154
153
  /**
155
154
  * 地图状态改变事件(实时触发)
156
155
  */
157
- onCameraMove?: (event: CameraEvent) => void;
156
+ onCameraMove?: (event: NativeSyntheticEvent<CameraEvent>) => void;
158
157
  /**
159
158
  * 地图状态改变完成事件
160
159
  */
161
- onCameraIdle?: (event: CameraEvent) => void;
160
+ onCameraIdle?: (event: NativeSyntheticEvent<CameraEvent>) => void;
162
161
  /**
163
162
  * 地图加载完成事件
164
163
  */
165
- onLoad?: (event: {}) => void;
164
+ onLoad?: (event: NativeSyntheticEvent<{}>) => void;
166
165
  /**
167
166
  * 地图定位更新事件
168
167
  */
169
- onLocation?: (event: Coordinates | ReGeocode) => void;
168
+ onLocation?: (event: NativeSyntheticEvent<GeolocationPosition>) => void;
170
169
  /**
171
170
  * Marker 点击事件
172
171
  */
173
- onMarkerPress?: (event: {
172
+ onMarkerPress?: (event: NativeSyntheticEvent<{
174
173
  markerId: string;
175
- } & LatLng) => void;
174
+ } & LatLng>) => void;
176
175
  /**
177
176
  * Marker 拖拽开始事件
178
177
  */
179
- onMarkerDragStart?: (event: {
178
+ onMarkerDragStart?: (event: NativeSyntheticEvent<{
180
179
  markerId: string;
181
- } & LatLng) => void;
180
+ } & LatLng>) => void;
182
181
  /**
183
182
  * Marker 拖拽中事件
184
183
  */
185
- onMarkerDrag?: (event: {
184
+ onMarkerDrag?: (event: NativeSyntheticEvent<{
186
185
  markerId: string;
187
- } & LatLng) => void;
186
+ } & LatLng>) => void;
188
187
  /**
189
188
  * Marker 拖拽结束事件
190
189
  */
191
- onMarkerDragEnd?: (event: {
190
+ onMarkerDragEnd?: (event: NativeSyntheticEvent<{
192
191
  markerId: string;
193
- } & LatLng) => void;
192
+ } & LatLng>) => void;
194
193
  /**
195
194
  * Circle 点击事件
196
195
  */
197
- onCirclePress?: (event: {
196
+ onCirclePress?: (event: NativeSyntheticEvent<{
198
197
  circleId: string;
199
- } & LatLng) => void;
198
+ } & LatLng>) => void;
200
199
  /**
201
200
  * Polygon 点击事件
202
201
  */
203
- onPolygonPress?: (event: {
202
+ onPolygonPress?: (event: NativeSyntheticEvent<{
204
203
  polygonId: string;
205
- } & LatLng) => void;
204
+ } & LatLng>) => void;
206
205
  /**
207
206
  * Polyline 点击事件
208
207
  */
209
- onPolylinePress?: (event: {
208
+ onPolylinePress?: (event: NativeSyntheticEvent<{
210
209
  polylineId: string;
211
- } & LatLng) => void;
210
+ } & LatLng>) => void;
212
211
  /**
213
212
  * 子组件
214
213
  */
@@ -1 +1 @@
1
- {"version":3,"file":"map-view.types.d.ts","sourceRoot":"","sources":["../../src/types/map-view.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map-view.types.d.ts","sourceRoot":"","sources":["../../src/types/map-view.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"map-view.types.js","sourceRoot":"","sources":["../../src/types/map-view.types.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * 高德地图视图相关类型定义\n * 基于 Expo Modules API\n */\n\nimport type { StyleProp, ViewStyle } from 'react-native';\nimport type { CameraPosition, LatLng, LatLngBounds, MapPoi, MapType, Point } from './common.types';\nimport type { Coordinates, ReGeocode } from './location.types';\n\n/**\n * 地图相机事件\n */\nexport interface CameraEvent {\n /**\n * 相机位置\n */\n cameraPosition: CameraPosition;\n\n /**\n * 可见区域边界\n */\n latLngBounds: LatLngBounds;\n}\n\n/**\n * 地图视图属性\n */\nexport interface MapViewProps {\n /**\n * 地图类型\n */\n mapType?: MapType;\n\n /**\n * 初始相机位置\n */\n initialCameraPosition?: CameraPosition;\n\n /**\n * 是否显示当前定位\n */\n myLocationEnabled?: boolean;\n\n /**\n * 是否跟随用户位置\n * @default false\n */\n followUserLocation?: boolean;\n\n /**\n * 定位蓝点配置\n */\n userLocationRepresentation?: {\n /** 精度圈是否显示 @default true */\n showsAccuracyRing?: boolean;\n /** 是否显示方向指示 @default true @platform ios */\n showsHeadingIndicator?: boolean;\n /** 精度圈填充颜色 支持 '#RRGGBB'、'red' 或 ARGB 数字 */\n fillColor?: string | number;\n /** 精度圈边线颜色 */\n strokeColor?: string | number;\n /** 精度圈边线宽度 @default 0 */\n lineWidth?: number;\n /** 内部蓝色圆点是否使用律动效果 @default true @platform ios */\n enablePulseAnimation?: boolean;\n /** 定位点背景色 @default 'white' @platform ios */\n locationDotBgColor?: string | number;\n /** 定位点蓝色圆点颜色 @default 'blue' @platform ios */\n locationDotFillColor?: string | number;\n /** 定位图标 支持网络图片(http/https)、本地文件(file://)或资源名称 */\n image?: string;\n /** 定位图标宽度(像素) */\n imageWidth?: number;\n /** 定位图标高度(像素) */\n imageHeight?: number;\n };\n\n /**\n * 是否显示室内地图\n * \n */\n indoorViewEnabled?: boolean;\n\n /**\n * 是否显示3D建筑\n */\n buildingsEnabled?: boolean;\n\n /**\n * 是否显示标注\n */\n labelsEnabled?: boolean;\n\n /**\n * 是否显示指南针\n */\n compassEnabled?: boolean;\n\n /**\n * 是否显示缩放按钮\n * @platform android\n */\n zoomControlsEnabled?: boolean;\n\n /**\n * 是否显示比例尺\n */\n scaleControlsEnabled?: boolean;\n\n /**\n * 是否显示定位按钮\n * @platform android\n */\n myLocationButtonEnabled?: boolean;\n\n /**\n * 是否显示路况\n */\n trafficEnabled?: boolean;\n\n /**\n * 最大缩放级别\n */\n maxZoom?: number;\n\n /**\n * 最小缩放级别\n */\n minZoom?: number;\n\n /**\n * 是否启用缩放手势\n */\n zoomGesturesEnabled?: boolean;\n\n /**\n * 是否启用滑动手势\n */\n scrollGesturesEnabled?: boolean;\n\n /**\n * 是否启用旋转手势\n */\n rotateGesturesEnabled?: boolean;\n\n /**\n * 是否启用倾斜手势\n */\n tiltGesturesEnabled?: boolean;\n\n /**\n * 定位的最小更新距离(米)\n * @platform ios\n */\n distanceFilter?: number;\n\n /**\n * 最小更新角度(度)\n * @platform ios\n */\n headingFilter?: number;\n\n /**\n * 样式\n */\n style?: StyleProp<ViewStyle>;\n\n /**\n * 点击地图事件\n */\n onMapPress?: (event: LatLng) => void;\n\n /**\n * 点击标注点事件\n */\n onPressPoi?: (event: MapPoi) => void;\n\n /**\n * 长按地图事件\n */\n onMapLongPress?: (event: LatLng) => void;\n\n /**\n * 地图状态改变事件(实时触发)\n */\n onCameraMove?: (event: CameraEvent) => void;\n\n /**\n * 地图状态改变完成事件\n */\n onCameraIdle?: (event: CameraEvent) => void;\n\n /**\n * 地图加载完成事件\n */\n onLoad?: (event: {}) => void;\n\n /**\n * 地图定位更新事件\n */\n onLocation?: (event: Coordinates | ReGeocode) => void;\n\n /**\n * Marker 点击事件\n */\n onMarkerPress?: (event: { markerId: string } & LatLng) => void;\n\n /**\n * Marker 拖拽开始事件\n */\n onMarkerDragStart?: (event: { markerId: string } & LatLng) => void;\n\n /**\n * Marker 拖拽中事件\n */\n onMarkerDrag?: (event: { markerId: string } & LatLng) => void;\n\n /**\n * Marker 拖拽结束事件\n */\n onMarkerDragEnd?: (event: { markerId: string } & LatLng) => void;\n\n /**\n * Circle 点击事件\n */\n onCirclePress?: (event: { circleId: string } & LatLng) => void;\n\n /**\n * Polygon 点击事件\n */\n onPolygonPress?: (event: { polygonId: string } & LatLng) => void;\n\n /**\n * Polyline 点击事件\n */\n onPolylinePress?: (event: { polylineId: string } & LatLng) => void;\n\n /**\n * 子组件\n */\n children?: React.ReactNode;\n}\n\n/**\n * 地图视图方法\n */\nexport interface MapViewMethods {\n /**\n * 移动相机\n * @param cameraPosition 目标相机位置\n * @param duration 动画时长(毫秒)\n */\n moveCamera(cameraPosition: CameraPosition, duration?: number): void;\n\n /**\n * 将屏幕坐标转换为地理坐标\n * @param point 屏幕坐标\n * @returns 地理坐标\n */\n getLatLng(point: Point): Promise<LatLng>;\n}\n\n/**\n * MapView Ref 公开接口(用户使用)\n */\nexport interface MapViewRef {\n moveCamera(position: CameraPosition, duration?: number): Promise<void>;\n getLatLng(point: Point): Promise<LatLng>;\n setCenter(center: LatLng, animated?: boolean): Promise<void>;\n setZoom(zoom: number, animated?: boolean): Promise<void>;\n getCameraPosition(): Promise<CameraPosition>;\n addCircle(id: string, props: import('./overlays.types').CircleProps): Promise<void>;\n removeCircle(id: string): Promise<void>;\n updateCircle(id: string, props: Partial<import('./overlays.types').CircleProps>): Promise<void>;\n addMarker(id: string, props: import('./overlays.types').MarkerProps): Promise<void>;\n removeMarker(id: string): Promise<void>;\n updateMarker(id: string, props: Partial<import('./overlays.types').MarkerProps>): Promise<void>;\n addPolyline(id: string, props: import('./overlays.types').PolylineProps): Promise<void>;\n removePolyline(id: string): Promise<void>;\n updatePolyline(id: string, props: Partial<import('./overlays.types').PolylineProps>): Promise<void>;\n addPolygon(id: string, props: import('./overlays.types').PolygonProps): Promise<void>;\n removePolygon(id: string): Promise<void>;\n updatePolygon(id: string, props: Partial<import('./overlays.types').PolygonProps>): Promise<void>;\n}\n\n/**\n * 原生 MapView Ref 接口(所有参数必需)\n */\nexport interface NativeMapViewRef {\n moveCamera(position: CameraPosition, duration: number): Promise<void>;\n getLatLng(point: Point): Promise<LatLng>;\n setCenter(center: LatLng, animated: boolean): Promise<void>;\n setZoom(zoom: number, animated: boolean): Promise<void>;\n getCameraPosition(): Promise<CameraPosition>;\n addCircle(id: string, props: import('./overlays.types').CircleProps): Promise<void>;\n removeCircle(id: string): Promise<void>;\n updateCircle(id: string, props: Partial<import('./overlays.types').CircleProps>): Promise<void>;\n addMarker(id: string, props: import('./overlays.types').MarkerProps): Promise<void>;\n removeMarker(id: string): Promise<void>;\n updateMarker(id: string, props: Partial<import('./overlays.types').MarkerProps>): Promise<void>;\n addPolyline(id: string, props: import('./overlays.types').PolylineProps): Promise<void>;\n removePolyline(id: string): Promise<void>;\n updatePolyline(id: string, props: Partial<import('./overlays.types').PolylineProps>): Promise<void>;\n addPolygon(id: string, props: import('./overlays.types').PolygonProps): Promise<void>;\n removePolygon(id: string): Promise<void>;\n updatePolygon(id: string, props: Partial<import('./overlays.types').PolygonProps>): Promise<void>;\n}\n"]}
1
+ {"version":3,"file":"map-view.types.js","sourceRoot":"","sources":["../../src/types/map-view.types.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * 高德地图视图相关类型定义\n * 基于 Expo Modules API\n */\n\nimport type { StyleProp, ViewStyle,NativeSyntheticEvent } from 'react-native';\nimport type { CameraPosition, LatLng, LatLngBounds, MapPoi, MapType, Point } from './common.types';\n\n\n/**\n * 地图相机事件\n */\nexport interface CameraEvent {\n /**\n * 相机位置\n */\n cameraPosition: CameraPosition;\n\n /**\n * 可见区域边界\n */\n latLngBounds: LatLngBounds;\n}\n\n/**\n * 地图视图属性\n */\nexport interface MapViewProps {\n /**\n * 地图类型\n */\n mapType?: MapType;\n\n /**\n * 初始相机位置\n */\n initialCameraPosition?: CameraPosition;\n\n /**\n * 是否显示当前定位\n */\n myLocationEnabled?: boolean;\n\n /**\n * 是否跟随用户位置\n * @default false\n */\n followUserLocation?: boolean;\n\n /**\n * 定位蓝点配置\n */\n userLocationRepresentation?: {\n /** 精度圈是否显示 @default true */\n showsAccuracyRing?: boolean;\n /** 是否显示方向指示 @default true @platform ios */\n showsHeadingIndicator?: boolean;\n /** 精度圈填充颜色 支持 '#RRGGBB'、'red' 或 ARGB 数字 */\n fillColor?: string | number;\n /** 精度圈边线颜色 */\n strokeColor?: string | number;\n /** 精度圈边线宽度 @default 0 */\n lineWidth?: number;\n /** 内部蓝色圆点是否使用律动效果 @default true @platform ios */\n enablePulseAnimation?: boolean;\n /** 定位点背景色 @default 'white' @platform ios */\n locationDotBgColor?: string | number;\n /** 定位点蓝色圆点颜色 @default 'blue' @platform ios */\n locationDotFillColor?: string | number;\n /** 定位图标 支持网络图片(http/https)、本地文件(file://)或资源名称 */\n image?: string;\n /** 定位图标宽度(像素) */\n imageWidth?: number;\n /** 定位图标高度(像素) */\n imageHeight?: number;\n };\n\n /**\n * 是否显示室内地图\n * \n */\n indoorViewEnabled?: boolean;\n\n /**\n * 是否显示3D建筑\n */\n buildingsEnabled?: boolean;\n\n /**\n * 是否显示标注\n */\n labelsEnabled?: boolean;\n\n /**\n * 是否显示指南针\n */\n compassEnabled?: boolean;\n\n /**\n * 是否显示缩放按钮\n * @platform android\n */\n zoomControlsEnabled?: boolean;\n\n /**\n * 是否显示比例尺\n */\n scaleControlsEnabled?: boolean;\n\n /**\n * 是否显示定位按钮\n * @platform android\n */\n myLocationButtonEnabled?: boolean;\n\n /**\n * 是否显示路况\n */\n trafficEnabled?: boolean;\n\n /**\n * 最大缩放级别\n */\n maxZoom?: number;\n\n /**\n * 最小缩放级别\n */\n minZoom?: number;\n\n /**\n * 是否启用缩放手势\n */\n zoomGesturesEnabled?: boolean;\n\n /**\n * 是否启用滑动手势\n */\n scrollGesturesEnabled?: boolean;\n\n /**\n * 是否启用旋转手势\n */\n rotateGesturesEnabled?: boolean;\n\n /**\n * 是否启用倾斜手势\n */\n tiltGesturesEnabled?: boolean;\n\n /**\n * 定位的最小更新距离(米)\n * @platform ios\n */\n distanceFilter?: number;\n\n /**\n * 最小更新角度(度)\n * @platform ios\n */\n headingFilter?: number;\n\n /**\n * 样式\n */\n style?: StyleProp<ViewStyle>;\n\n /**\n * 点击地图事件\n */\n onMapPress?: (event: NativeSyntheticEvent<LatLng>) => void;\n\n /**\n * 点击标注点事件\n */\n onPressPoi?: (event: NativeSyntheticEvent<MapPoi>) => void;\n\n /**\n * 长按地图事件\n */\n onMapLongPress?: (event: NativeSyntheticEvent<LatLng>) => void;\n\n /**\n * 地图状态改变事件(实时触发)\n */\n onCameraMove?: (event: NativeSyntheticEvent<CameraEvent>) => void;\n\n /**\n * 地图状态改变完成事件\n */\n onCameraIdle?: (event: NativeSyntheticEvent<CameraEvent>) => void;\n\n /**\n * 地图加载完成事件\n */\n onLoad?: (event: NativeSyntheticEvent<{}>) => void;\n\n /**\n * 地图定位更新事件\n */\n onLocation?: (event: NativeSyntheticEvent<GeolocationPosition>) => void;\n\n /**\n * Marker 点击事件\n */\n onMarkerPress?: (event: NativeSyntheticEvent<{ markerId: string } & LatLng>) => void;\n\n /**\n * Marker 拖拽开始事件\n */\n onMarkerDragStart?: (event: NativeSyntheticEvent<{ markerId: string } & LatLng>) => void;\n\n /**\n * Marker 拖拽中事件\n */\n onMarkerDrag?: (event: NativeSyntheticEvent<{ markerId: string } & LatLng>) => void;\n\n /**\n * Marker 拖拽结束事件\n */\n onMarkerDragEnd?: (event: NativeSyntheticEvent<{ markerId: string } & LatLng>) => void;\n\n /**\n * Circle 点击事件\n */\n onCirclePress?: (event: NativeSyntheticEvent<{ circleId: string } & LatLng>) => void;\n\n /**\n * Polygon 点击事件\n */\n onPolygonPress?: (event: NativeSyntheticEvent<{ polygonId: string } & LatLng>) => void;\n\n /**\n * Polyline 点击事件\n */\n onPolylinePress?: (event: NativeSyntheticEvent<{ polylineId: string } & LatLng>) => void;\n\n /**\n * 子组件\n */\n children?: React.ReactNode;\n}\n\n/**\n * 地图视图方法\n */\nexport interface MapViewMethods {\n /**\n * 移动相机\n * @param cameraPosition 目标相机位置\n * @param duration 动画时长(毫秒)\n */\n moveCamera(cameraPosition: CameraPosition, duration?: number): void;\n\n /**\n * 将屏幕坐标转换为地理坐标\n * @param point 屏幕坐标\n * @returns 地理坐标\n */\n getLatLng(point: Point): Promise<LatLng>;\n}\n\n/**\n * MapView Ref 公开接口(用户使用)\n */\nexport interface MapViewRef {\n moveCamera(position: CameraPosition, duration?: number): Promise<void>;\n getLatLng(point: Point): Promise<LatLng>;\n setCenter(center: LatLng, animated?: boolean): Promise<void>;\n setZoom(zoom: number, animated?: boolean): Promise<void>;\n getCameraPosition(): Promise<CameraPosition>;\n addCircle(id: string, props: import('./overlays.types').CircleProps): Promise<void>;\n removeCircle(id: string): Promise<void>;\n updateCircle(id: string, props: Partial<import('./overlays.types').CircleProps>): Promise<void>;\n addMarker(id: string, props: import('./overlays.types').MarkerProps): Promise<void>;\n removeMarker(id: string): Promise<void>;\n updateMarker(id: string, props: Partial<import('./overlays.types').MarkerProps>): Promise<void>;\n addPolyline(id: string, props: import('./overlays.types').PolylineProps): Promise<void>;\n removePolyline(id: string): Promise<void>;\n updatePolyline(id: string, props: Partial<import('./overlays.types').PolylineProps>): Promise<void>;\n addPolygon(id: string, props: import('./overlays.types').PolygonProps): Promise<void>;\n removePolygon(id: string): Promise<void>;\n updatePolygon(id: string, props: Partial<import('./overlays.types').PolygonProps>): Promise<void>;\n}\n\n/**\n * 原生 MapView Ref 接口(所有参数必需)\n */\nexport interface NativeMapViewRef {\n moveCamera(position: CameraPosition, duration: number): Promise<void>;\n getLatLng(point: Point): Promise<LatLng>;\n setCenter(center: LatLng, animated: boolean): Promise<void>;\n setZoom(zoom: number, animated: boolean): Promise<void>;\n getCameraPosition(): Promise<CameraPosition>;\n addCircle(id: string, props: import('./overlays.types').CircleProps): Promise<void>;\n removeCircle(id: string): Promise<void>;\n updateCircle(id: string, props: Partial<import('./overlays.types').CircleProps>): Promise<void>;\n addMarker(id: string, props: import('./overlays.types').MarkerProps): Promise<void>;\n removeMarker(id: string): Promise<void>;\n updateMarker(id: string, props: Partial<import('./overlays.types').MarkerProps>): Promise<void>;\n addPolyline(id: string, props: import('./overlays.types').PolylineProps): Promise<void>;\n removePolyline(id: string): Promise<void>;\n updatePolyline(id: string, props: Partial<import('./overlays.types').PolylineProps>): Promise<void>;\n addPolygon(id: string, props: import('./overlays.types').PolygonProps): Promise<void>;\n removePolygon(id: string): Promise<void>;\n updatePolygon(id: string, props: Partial<import('./overlays.types').PolygonProps>): Promise<void>;\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  * 高德地图覆盖物相关类型定义
3
3
  * 基于 Expo Modules API
4
4
  */
5
- import type { ImageSourcePropType, ViewStyle } from 'react-native';
5
+ import type { ImageSourcePropType, ViewStyle, NativeSyntheticEvent } from 'react-native';
6
6
  import type { ColorValue, LatLng, Point } from './common.types';
7
7
  /**
8
8
  * 标记点属性
@@ -97,21 +97,19 @@ export interface MarkerProps {
97
97
  /**
98
98
  * 点击事件
99
99
  */
100
- onPress?: () => void;
100
+ onPress?: (event: NativeSyntheticEvent<{}>) => void;
101
101
  /**
102
102
  * 拖拽开始事件
103
103
  */
104
- onDragStart?: () => void;
104
+ onDragStart?: (event: NativeSyntheticEvent<LatLng>) => void;
105
105
  /**
106
106
  * 拖拽中事件
107
107
  */
108
- onDrag?: () => void;
108
+ onDrag?: (event: NativeSyntheticEvent<LatLng>) => void;
109
109
  /**
110
110
  * 拖拽结束事件
111
111
  */
112
- onDragEnd?: (event: {
113
- nativeEvent: LatLng;
114
- }) => void;
112
+ onDragEnd?: (event: NativeSyntheticEvent<LatLng>) => void;
115
113
  }
116
114
  /**
117
115
  * 折线属性
@@ -163,7 +161,7 @@ export interface PolylineProps {
163
161
  /**
164
162
  * 点击事件
165
163
  */
166
- onPress?: () => void;
164
+ onPress?: (event: NativeSyntheticEvent<{}>) => void;
167
165
  }
168
166
  /**
169
167
  * 多边形属性
@@ -192,7 +190,7 @@ export interface PolygonProps {
192
190
  /**
193
191
  * 点击事件
194
192
  */
195
- onPress?: () => void;
193
+ onPress?: (event: NativeSyntheticEvent<{}>) => void;
196
194
  }
197
195
  /**
198
196
  * 圆形属性
@@ -225,7 +223,7 @@ export interface CircleProps {
225
223
  /**
226
224
  * 点击事件
227
225
  */
228
- onPress?: () => void;
226
+ onPress?: (event: NativeSyntheticEvent<{}>) => void;
229
227
  /**
230
228
  * 自定义子元素
231
229
  * 暂不支持
@@ -277,12 +275,10 @@ export interface MultiPointProps {
277
275
  /**
278
276
  * 点击事件
279
277
  */
280
- onPress?: (event: {
281
- nativeEvent: {
282
- index: number;
283
- item: MultiPointItem;
284
- };
285
- }) => void;
278
+ onPress?: (event: NativeSyntheticEvent<{
279
+ index: number;
280
+ item: MultiPointItem;
281
+ }>) => void;
286
282
  }
287
283
  /**
288
284
  * 聚合点参数
@@ -345,6 +341,6 @@ export interface ClusterProps {
345
341
  /**
346
342
  * 聚合点点击事件
347
343
  */
348
- onPress?: (params: ClusterParams) => void;
344
+ onPress?: (event: NativeSyntheticEvent<ClusterParams>) => void;
349
345
  }
350
346
  //# sourceMappingURL=overlays.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"overlays.types.d.ts","sourceRoot":"","sources":["../../src/types/overlays.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlays.types.d.ts","sourceRoot":"","sources":["../../src/types/overlays.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"overlays.types.js","sourceRoot":"","sources":["../../src/types/overlays.types.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * 高德地图覆盖物相关类型定义\n * 基于 Expo Modules API\n */\n\nimport type { ImageSourcePropType, ViewStyle } from 'react-native';\nimport type { ColorValue, LatLng, Point } from './common.types';\n\n/**\n * 标记点属性\n */\nexport interface MarkerProps {\n /**\n * 坐标\n */\n position: LatLng;\n\n /**\n * 图标\n */\n icon?: string | ImageSourcePropType;\n\n /**\n * 图标宽度(像素)\n * 仅在使用 icon 属性时有效\n */\n iconWidth?: number;\n\n /**\n * 图标高度(像素)\n * 仅在使用 icon 属性时有效\n */\n iconHeight?: number;\n\n /**\n * 标题\n */\n title?: string;\n\n /**\n * 描述\n */\n snippet?: string;\n\n /**\n * 透明度 [0, 1]\n * @platform android\n * @note iOS 不支持\n */\n opacity?: number;\n\n /**\n * 是否可拖拽\n */\n draggable?: boolean;\n\n /**\n * 是否平贴地图\n * @platform android\n * @note iOS 不支持\n */\n flat?: boolean;\n\n /**\n * 层级\n * @platform android\n * @note iOS 不支持 (使用 displayPriority)\n */\n zIndex?: number;\n\n /**\n * 覆盖物锚点比例\n * @platform android\n * @note iOS 使用 centerOffset\n */\n anchor?: Point;\n\n /**\n * 覆盖物偏移位置\n * @platform ios\n */\n centerOffset?: Point;\n\n /**\n * 是否显示动画\n * @platform ios\n */\n animatesDrop?: boolean;\n\n /**\n * 大头针颜色\n * @platform ios\n */\n pinColor?: 'red' | 'green' | 'purple';\n\n /**\n * 自定义视图\n * 当使用 children 时,会将 React Native 组件渲染为图片显示在地图上\n */\n children?: React.ReactNode;\n\n /**\n * 自定义视图宽度(像素)\n * 仅在使用 children 属性时有效 \n * @default 80\n */\n customViewWidth?: number;\n\n /**\n * 自定义视图高度(像素)\n * 仅在使用 children 属性时有效\n * @default 30\n */\n customViewHeight?: number;\n\n /**\n * 点击事件\n */\n onPress?: () => void;\n\n /**\n * 拖拽开始事件\n */\n onDragStart?: () => void;\n\n /**\n * 拖拽中事件\n */\n onDrag?: () => void;\n\n /**\n * 拖拽结束事件\n */\n onDragEnd?: (event: { nativeEvent: LatLng }) => void;\n}\n\n/**\n * 折线属性\n */\nexport interface PolylineProps {\n /**\n * 节点坐标数组\n */\n points: LatLng[];\n\n /**\n * 线宽\n */\n width?: number;\n\n /**\n * 线条颜色\n */\n color?: ColorValue;\n\n /**\n * 层级\n */\n zIndex?: number;\n\n /**\n * 分段颜色\n */\n colors?: ColorValue[];\n\n /**\n * 是否使用渐变色\n * @platform android\n * @note iOS 不支持\n */\n gradient?: boolean;\n\n /**\n * 是否绘制大地线\n * @platform android\n * @note iOS 不支持\n */\n geodesic?: boolean;\n\n /**\n * 是否绘制虚线\n * @platform android\n * @note iOS 不支持\n */\n dotted?: boolean;\n\n /**\n * 纹理图片\n * 支持网络图片(http/https)、本地文件(file://)或资源名称\n */\n texture?: string;\n\n /**\n * 点击事件\n */\n onPress?: () => void;\n}\n\n/**\n * 多边形属性\n */\nexport interface PolygonProps {\n /**\n * 节点坐标数组\n */\n points: LatLng[];\n\n /**\n * 边线宽度\n */\n strokeWidth?: number;\n\n /**\n * 边线颜色\n */\n strokeColor?: ColorValue;\n\n /**\n * 填充颜色\n */\n fillColor?: ColorValue;\n\n /**\n * 层级\n */\n zIndex?: number;\n\n /**\n * 点击事件\n */\n onPress?: () => void;\n}\n\n/**\n * 圆形属性\n */\nexport interface CircleProps {\n /**\n * 圆心坐标\n */\n center: LatLng;\n\n /**\n * 半径(米)\n */\n radius: number;\n\n /**\n * 边线宽度\n */\n strokeWidth?: number;\n\n /**\n * 边线颜色\n */\n strokeColor?: ColorValue;\n\n /**\n * 填充颜色\n */\n fillColor?: ColorValue;\n\n /**\n * 层级\n */\n zIndex?: number;\n\n /**\n * 点击事件\n */\n onPress?: () => void;\n\n /**\n * 自定义子元素\n * 暂不支持\n */\n children?: React.ReactNode;\n\n}\n\n/**\n * 热力图属性\n */\nexport interface HeatMapProps {\n /**\n * 热力点数据\n */\n data: LatLng[];\n\n /**\n * 热力半径(米)\n */\n radius?: number;\n\n /**\n * 透明度 [0, 1]\n */\n opacity?: number;\n}\n\n/**\n * 海量点标记项\n */\nexport interface MultiPointItem extends LatLng {\n /**\n * 唯一标识\n */\n id?: string | number;\n\n /**\n * 自定义数据\n */\n data?: any;\n}\n\n/**\n * 海量点属性\n */\nexport interface MultiPointProps {\n /**\n * 点集合\n */\n items: MultiPointItem[];\n\n /**\n * 图标\n */\n icon?: ImageSourcePropType;\n\n /**\n * 点击事件\n */\n onPress?: (event: { nativeEvent: { index: number; item: MultiPointItem } }) => void;\n}\n\n/**\n * 聚合点参数\n */\nexport interface ClusterParams {\n /**\n * 唯一标识\n */\n id: number;\n\n /**\n * 包含的标记点数量\n */\n count: number;\n\n /**\n * 聚合点坐标\n */\n position: LatLng;\n}\n\n/**\n * 聚合点项\n */\nexport interface ClusterPoint {\n /**\n * 坐标\n */\n position: LatLng;\n\n /**\n * 自定义数据\n */\n properties?: any;\n}\n\n/**\n * 聚合图层属性\n */\nexport interface ClusterProps {\n /**\n * 聚合半径\n */\n radius?: number;\n\n /**\n * 聚合点样式\n */\n clusterStyle?: ViewStyle;\n\n /**\n * 聚合点文本样式\n */\n clusterTextStyle?: ViewStyle;\n\n /**\n * 坐标点列表\n */\n points: ClusterPoint[];\n\n /**\n * 渲染标记点\n */\n renderMarker: (item: ClusterPoint) => React.ReactNode;\n\n /**\n * 渲染聚合点\n */\n renderCluster?: (params: ClusterParams) => React.ReactNode;\n\n /**\n * 聚合点点击事件\n */\n onPress?: (params: ClusterParams) => void;\n}\n"]}
1
+ {"version":3,"file":"overlays.types.js","sourceRoot":"","sources":["../../src/types/overlays.types.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * 高德地图覆盖物相关类型定义\n * 基于 Expo Modules API\n */\n\nimport type { ImageSourcePropType, ViewStyle, NativeSyntheticEvent } from 'react-native';\nimport type { ColorValue, LatLng, Point } from './common.types';\n\n/**\n * 标记点属性\n */\nexport interface MarkerProps {\n /**\n * 坐标\n */\n position: LatLng;\n\n /**\n * 图标\n */\n icon?: string | ImageSourcePropType;\n\n /**\n * 图标宽度(像素)\n * 仅在使用 icon 属性时有效\n */\n iconWidth?: number;\n\n /**\n * 图标高度(像素)\n * 仅在使用 icon 属性时有效\n */\n iconHeight?: number;\n\n /**\n * 标题\n */\n title?: string;\n\n /**\n * 描述\n */\n snippet?: string;\n\n /**\n * 透明度 [0, 1]\n * @platform android\n * @note iOS 不支持\n */\n opacity?: number;\n\n /**\n * 是否可拖拽\n */\n draggable?: boolean;\n\n /**\n * 是否平贴地图\n * @platform android\n * @note iOS 不支持\n */\n flat?: boolean;\n\n /**\n * 层级\n * @platform android\n * @note iOS 不支持 (使用 displayPriority)\n */\n zIndex?: number;\n\n /**\n * 覆盖物锚点比例\n * @platform android\n * @note iOS 使用 centerOffset\n */\n anchor?: Point;\n\n /**\n * 覆盖物偏移位置\n * @platform ios\n */\n centerOffset?: Point;\n\n /**\n * 是否显示动画\n * @platform ios\n */\n animatesDrop?: boolean;\n\n /**\n * 大头针颜色\n * @platform ios\n */\n pinColor?: 'red' | 'green' | 'purple';\n\n /**\n * 自定义视图\n * 当使用 children 时,会将 React Native 组件渲染为图片显示在地图上\n */\n children?: React.ReactNode;\n\n /**\n * 自定义视图宽度(像素)\n * 仅在使用 children 属性时有效 \n * @default 80\n */\n customViewWidth?: number;\n\n /**\n * 自定义视图高度(像素)\n * 仅在使用 children 属性时有效\n * @default 30\n */\n customViewHeight?: number;\n\n /**\n * 点击事件\n */\n onPress?: (event: NativeSyntheticEvent<{}>) => void;\n\n /**\n * 拖拽开始事件\n */\n onDragStart?: (event: NativeSyntheticEvent<LatLng>) => void;\n\n /**\n * 拖拽中事件\n */\n onDrag?: (event: NativeSyntheticEvent<LatLng>) => void;\n\n /**\n * 拖拽结束事件\n */\n onDragEnd?: (event: NativeSyntheticEvent<LatLng>) => void;\n}\n\n/**\n * 折线属性\n */\nexport interface PolylineProps {\n /**\n * 节点坐标数组\n */\n points: LatLng[];\n\n /**\n * 线宽\n */\n width?: number;\n\n /**\n * 线条颜色\n */\n color?: ColorValue;\n\n /**\n * 层级\n */\n zIndex?: number;\n\n /**\n * 分段颜色\n */\n colors?: ColorValue[];\n\n /**\n * 是否使用渐变色\n * @platform android\n * @note iOS 不支持\n */\n gradient?: boolean;\n\n /**\n * 是否绘制大地线\n * @platform android\n * @note iOS 不支持\n */\n geodesic?: boolean;\n\n /**\n * 是否绘制虚线\n * @platform android\n * @note iOS 不支持\n */\n dotted?: boolean;\n\n /**\n * 纹理图片\n * 支持网络图片(http/https)、本地文件(file://)或资源名称\n */\n texture?: string;\n\n /**\n * 点击事件\n */\n onPress?: (event: NativeSyntheticEvent<{}>) => void;\n}\n\n/**\n * 多边形属性\n */\nexport interface PolygonProps {\n /**\n * 节点坐标数组\n */\n points: LatLng[];\n\n /**\n * 边线宽度\n */\n strokeWidth?: number;\n\n /**\n * 边线颜色\n */\n strokeColor?: ColorValue;\n\n /**\n * 填充颜色\n */\n fillColor?: ColorValue;\n\n /**\n * 层级\n */\n zIndex?: number;\n\n /**\n * 点击事件\n */\n onPress?: (event: NativeSyntheticEvent<{}>) => void;\n}\n\n/**\n * 圆形属性\n */\nexport interface CircleProps {\n /**\n * 圆心坐标\n */\n center: LatLng;\n\n /**\n * 半径(米)\n */\n radius: number;\n\n /**\n * 边线宽度\n */\n strokeWidth?: number;\n\n /**\n * 边线颜色\n */\n strokeColor?: ColorValue;\n\n /**\n * 填充颜色\n */\n fillColor?: ColorValue;\n\n /**\n * 层级\n */\n zIndex?: number;\n\n /**\n * 点击事件\n */\n onPress?: (event: NativeSyntheticEvent<{}>) => void;\n\n /**\n * 自定义子元素\n * 暂不支持\n */\n children?: React.ReactNode;\n\n}\n\n/**\n * 热力图属性\n */\nexport interface HeatMapProps {\n /**\n * 热力点数据\n */\n data: LatLng[];\n\n /**\n * 热力半径(米)\n */\n radius?: number;\n\n /**\n * 透明度 [0, 1]\n */\n opacity?: number;\n}\n\n/**\n * 海量点标记项\n */\nexport interface MultiPointItem extends LatLng {\n /**\n * 唯一标识\n */\n id?: string | number;\n\n /**\n * 自定义数据\n */\n data?: any;\n}\n\n/**\n * 海量点属性\n */\nexport interface MultiPointProps {\n /**\n * 点集合\n */\n items: MultiPointItem[];\n\n /**\n * 图标\n */\n icon?: ImageSourcePropType;\n\n /**\n * 点击事件\n */\n onPress?: (event: NativeSyntheticEvent<{ index: number; item: MultiPointItem }>) => void;\n}\n\n/**\n * 聚合点参数\n */\nexport interface ClusterParams {\n /**\n * 唯一标识\n */\n id: number;\n\n /**\n * 包含的标记点数量\n */\n count: number;\n\n /**\n * 聚合点坐标\n */\n position: LatLng;\n}\n\n/**\n * 聚合点项\n */\nexport interface ClusterPoint {\n /**\n * 坐标\n */\n position: LatLng;\n\n /**\n * 自定义数据\n */\n properties?: any;\n}\n\n/**\n * 聚合图层属性\n */\nexport interface ClusterProps {\n /**\n * 聚合半径\n */\n radius?: number;\n\n /**\n * 聚合点样式\n */\n clusterStyle?: ViewStyle;\n\n /**\n * 聚合点文本样式\n */\n clusterTextStyle?: ViewStyle;\n\n /**\n * 坐标点列表\n */\n points: ClusterPoint[];\n\n /**\n * 渲染标记点\n */\n renderMarker: (item: ClusterPoint) => React.ReactNode;\n\n /**\n * 渲染聚合点\n */\n renderCluster?: (params: ClusterParams) => React.ReactNode;\n\n /**\n * 聚合点点击事件\n */\n onPress?: (event: NativeSyntheticEvent<ClusterParams>) => void;\n}\n"]}
package/docs/API.en.md CHANGED
@@ -95,9 +95,9 @@ Complete API reference documentation.
95
95
 
96
96
  | Event | Parameters | Description |
97
97
  |-------|------------|-------------|
98
- | `onMapPress` | `(event: LatLng) => void` | Map press event |
99
- | `onMapLongPress` | `(event: LatLng) => void` | Map long press event |
100
- | `onLoad` | `() => void` | Map load complete event |
98
+ | `onMapPress` | `(event: NativeSyntheticEvent<LatLng>) => void` | Map press event |
99
+ | `onMapLongPress` | `(event: NativeSyntheticEvent<LatLng>) => void` | Map long press event |
100
+ | `onLoad` | `(event: NativeSyntheticEvent<{}>) => void` | Map load complete event |
101
101
 
102
102
  ## MapView Methods
103
103
 
@@ -270,7 +270,7 @@ Based on AMap official recommendations, this library uses the following default
270
270
 
271
271
  | Event | Parameters | Description |
272
272
  |-------|------------|-------------|
273
- | `onPress` | `() => void` | Circle press |
273
+ | `onPress` | `(event: NativeSyntheticEvent<{}>) => void` | Circle press |
274
274
 
275
275
  ### Polyline
276
276
 
@@ -290,7 +290,7 @@ Based on AMap official recommendations, this library uses the following default
290
290
 
291
291
  | Event | Parameters | Description |
292
292
  |-------|------------|-------------|
293
- | `onPress` | `() => void` | Polyline press |
293
+ | `onPress` | `(event: NativeSyntheticEvent<{}>) => void` | Polyline press |
294
294
 
295
295
  > **Texture Notes**:
296
296
  > - Supports network images (http/https) and local files (use `Image.resolveAssetSource()`)
@@ -313,7 +313,7 @@ Based on AMap official recommendations, this library uses the following default
313
313
 
314
314
  | Event | Parameters | Description |
315
315
  |-------|------------|-------------|
316
- | `onPress` | `() => void` | Polygon press |
316
+ | `onPress` | `(event: NativeSyntheticEvent<{}>) => void` | Polygon press |
317
317
 
318
318
  ### Marker
319
319
 
@@ -342,10 +342,10 @@ Based on AMap official recommendations, this library uses the following default
342
342
 
343
343
  | Event | Parameters | Description |
344
344
  |-------|------------|-------------|
345
- | `onPress` | `() => void` | Marker press |
346
- | `onDragStart` | `() => void` | Drag start |
347
- | `onDrag` | `() => void` | Dragging |
348
- | `onDragEnd` | `(event: { nativeEvent: LatLng }) => void` | Drag end |
345
+ | `onPress` | `(event: NativeSyntheticEvent<{}>) => void` | Marker press |
346
+ | `onDragStart` | `(event: NativeSyntheticEvent<LatLng>) => void` | Drag start |
347
+ | `onDrag` | `(event: NativeSyntheticEvent<LatLng>) => void` | Dragging |
348
+ | `onDragEnd` | `(event: NativeSyntheticEvent<LatLng>) => void` | Drag end |
349
349
 
350
350
  > **⚠️ Important**: Event callbacks only work in **declarative usage**. Markers added via imperative API (`addMarker`) cannot trigger these events.
351
351
 
package/docs/API.md CHANGED
@@ -95,9 +95,9 @@
95
95
 
96
96
  | 事件 | 参数 | 说明 |
97
97
  |------|------|------|
98
- | `onMapPress` | `(event: LatLng) => void` | 点击地图事件 |
99
- | `onMapLongPress` | `(event: LatLng) => void` | 长按地图事件 |
100
- | `onLoad` | `() => void` | 地图加载完成事件 |
98
+ | `onMapPress` | `(event: NativeSyntheticEvent<LatLng>) => void` | 点击地图事件 |
99
+ | `onMapLongPress` | `(event: NativeSyntheticEvent<LatLng>) => void` | 长按地图事件 |
100
+ | `onLoad` | `(event: NativeSyntheticEvent<{}>) => void` | 地图加载完成事件 |
101
101
 
102
102
  ## MapView 方法
103
103
 
@@ -270,7 +270,7 @@ configure({
270
270
 
271
271
  | 事件 | 参数 | 说明 |
272
272
  |------|------|------|
273
- | `onPress` | `() => void` | 点击圆形 |
273
+ | `onPress` | `(event: NativeSyntheticEvent<{}>) => void` | 点击圆形 |
274
274
 
275
275
  ### Polyline (折线)
276
276
 
@@ -290,7 +290,7 @@ configure({
290
290
 
291
291
  | 事件 | 参数 | 说明 |
292
292
  |------|------|------|
293
- | `onPress` | `() => void` | 点击折线 |
293
+ | `onPress` | `(event: NativeSyntheticEvent<{}>) => void` | 点击折线 |
294
294
 
295
295
  > **纹理说明**:
296
296
  > - 支持网络图片(http/https)和本地文件(使用 `Image.resolveAssetSource()`)
@@ -313,7 +313,7 @@ configure({
313
313
 
314
314
  | 事件 | 参数 | 说明 |
315
315
  |------|------|------|
316
- | `onPress` | `() => void` | 点击多边形 |
316
+ | `onPress` | `(event: NativeSyntheticEvent<{}>) => void` | 点击多边形 |
317
317
 
318
318
  ### Marker (标记点)
319
319
 
@@ -343,10 +343,10 @@ configure({
343
343
 
344
344
  | 事件 | 参数 | 说明 |
345
345
  |------|------|------|
346
- | `onPress` | `() => void` | 点击标记点 |
347
- | `onDragStart` | `() => void` | 开始拖拽 |
348
- | `onDrag` | `() => void` | 拖拽中 |
349
- | `onDragEnd` | `(event: { nativeEvent: LatLng }) => void` | 拖拽结束 |
346
+ | `onPress` | `(event: NativeSyntheticEvent<{}>) => void` | 点击标记点 |
347
+ | `onDragStart` | `(event: NativeSyntheticEvent<LatLng>) => void` | 开始拖拽 |
348
+ | `onDrag` | `(event: NativeSyntheticEvent<LatLng>) => void` | 拖拽中 |
349
+ | `onDragEnd` | `(event: NativeSyntheticEvent<LatLng>) => void` | 拖拽结束 |
350
350
 
351
351
  > **⚠️ 重要提示**:事件回调仅在**声明式用法**中有效。使用命令式 API(`addMarker`)添加的标记点无法触发这些事件。
352
352
 
@@ -190,7 +190,7 @@ export default function App() {
190
190
  myLocationEnabled={true}
191
191
  followUserLocation={false}
192
192
  trafficEnabled={true}
193
- onMapPress={(e) => console.log('Map pressed', e)}
193
+ onMapPress={(e) => console.log('Map pressed', e.nativeEvent)}
194
194
  onLoad={() => console.log('Map loaded')}
195
195
  >
196
196
  {/* Circle overlay */}
@@ -426,7 +426,7 @@ const styles = StyleSheet.create({
426
426
  fillColor="#8800FF00"
427
427
  strokeColor="#FFFF0000"
428
428
  strokeWidth={2}
429
- onPress={() => console.log('Circle pressed')}
429
+ onPress={(e) => console.log('Circle pressed')}
430
430
  />
431
431
  </MapView>
432
432
  ```
@@ -460,7 +460,7 @@ await mapRef.current?.removeCircle('circle1');
460
460
  title="Title"
461
461
  snippet="Description"
462
462
  draggable={true}
463
- onPress={() => console.log('Marker pressed')}
463
+ onPress={(e) => console.log('Marker pressed')}
464
464
  onDragEnd={(e) => console.log('Drag ended', e.nativeEvent)}
465
465
  />
466
466
  </MapView>
@@ -479,7 +479,7 @@ const iconUri = Image.resolveAssetSource(require('./assets/marker-icon.png')).ur
479
479
  icon={iconUri}
480
480
  iconWidth={50}
481
481
  iconHeight={50}
482
- onPress={() => console.log('Custom icon marker pressed')}
482
+ onPress={(e) => console.log('Custom icon marker pressed')}
483
483
  />
484
484
  </MapView>
485
485
  ```
@@ -493,7 +493,7 @@ import { View, Text, StyleSheet } from 'react-native';
493
493
  position={{ latitude: 39.9, longitude: 116.4 }}
494
494
  customViewWidth={120}
495
495
  customViewHeight={40}
496
- onPress={() => console.log('Custom view marker pressed')}
496
+ onPress={(e) => console.log('Custom view marker pressed')}
497
497
  >
498
498
  <View style={styles.markerContainer}>
499
499
  <Text style={styles.markerText}>Custom Content</Text>
@@ -554,7 +554,7 @@ await mapRef.current?.removeMarker('marker1');
554
554
  ]}
555
555
  width={5}
556
556
  color="#FFFF0000"
557
- onPress={() => console.log('Polyline pressed')}
557
+ onPress={(e) => console.log('Polyline pressed')}
558
558
  />
559
559
  </MapView>
560
560
  ```
@@ -575,7 +575,7 @@ const iconUri = Image.resolveAssetSource(require('./assets/arrow.png')).uri;
575
575
  width={20}
576
576
  color="#FFFF0000"
577
577
  texture={iconUri}
578
- onPress={() => console.log('Textured polyline pressed')}
578
+ onPress={(e) => console.log('Textured polyline pressed')}
579
579
  />
580
580
  </MapView>
581
581
  ```
@@ -601,7 +601,7 @@ const iconUri = Image.resolveAssetSource(require('./assets/arrow.png')).uri;
601
601
  fillColor="#8800FF00"
602
602
  strokeColor="#FFFF0000"
603
603
  strokeWidth={2}
604
- onPress={() => console.log('Polygon pressed')}
604
+ onPress={(e) => console.log('Polygon pressed')}
605
605
  />
606
606
  </MapView>
607
607
  ```
package/docs/EXAMPLES.md CHANGED
@@ -190,7 +190,7 @@ export default function App() {
190
190
  myLocationEnabled={true}
191
191
  followUserLocation={false}
192
192
  trafficEnabled={true}
193
- onMapPress={(e) => console.log('点击地图', e)}
193
+ onMapPress={(e) => console.log('点击地图', e.nativeEvent)}
194
194
  onLoad={() => console.log('地图加载完成')}
195
195
  >
196
196
  {/* 圆形覆盖物 */}
@@ -426,7 +426,7 @@ const styles = StyleSheet.create({
426
426
  fillColor="#8800FF00"
427
427
  strokeColor="#FFFF0000"
428
428
  strokeWidth={2}
429
- onPress={() => console.log('点击圆形')}
429
+ onPress={(e) => console.log('点击圆形')}
430
430
  />
431
431
  </MapView>
432
432
  ```
@@ -462,7 +462,7 @@ await mapRef.current?.removeCircle('circle1');
462
462
  title="标题"
463
463
  snippet="描述信息"
464
464
  draggable={true}
465
- onPress={() => console.log('点击标记')}
465
+ onPress={(e) => console.log('点击标记')}
466
466
  onDragEnd={(e) => console.log('拖动结束', e.nativeEvent)}
467
467
  />
468
468
  </MapView>
@@ -501,7 +501,7 @@ const iconUri = Image.resolveAssetSource(require('./assets/marker-icon.png')).ur
501
501
  icon={iconUri}
502
502
  iconWidth={50}
503
503
  iconHeight={50}
504
- onPress={() => console.log('点击自定义图标标记')}
504
+ onPress={(e) => console.log('点击自定义图标标记')}
505
505
  />
506
506
  </MapView>
507
507
  ```
@@ -524,7 +524,7 @@ import { View, Text, StyleSheet } from 'react-native';
524
524
  position={{ latitude: 39.9, longitude: 116.4 }}
525
525
  customViewWidth={200}
526
526
  customViewHeight={50}
527
- onPress={() => Alert.alert('标记', '点击了自定义标记')}
527
+ onPress={(e) => Alert.alert('标记', '点击了自定义标记')}
528
528
  >
529
529
  <View style={styles.markerContainer}>
530
530
  <Text style={styles.markerText}>北京市中心</Text>
@@ -624,7 +624,7 @@ function LocationMarker({ location }: { location: Location }) {
624
624
  }}
625
625
  customViewWidth={220}
626
626
  customViewHeight={60}
627
- onPress={() => Alert.alert('位置', location.address)}
627
+ onPress={(e) => Alert.alert('位置', location.address)}
628
628
  >
629
629
  <View style={styles.locationMarker}>
630
630
  <Text style={styles.locationTitle} numberOfLines={1}>
@@ -761,8 +761,8 @@ import { Platform } from 'react-native';
761
761
  position={{ latitude: 39.9, longitude: 116.4 }}
762
762
  title="可拖拽标记"
763
763
  draggable={true}
764
- onDragStart={() => console.log('开始拖拽')}
765
- onDrag={() => console.log('拖拽中')}
764
+ onDragStart={(e) => console.log('开始拖拽', e.nativeEvent)}
765
+ onDrag={(e) => console.log('拖拽中', e.nativeEvent)}
766
766
  onDragEnd={(e) => {
767
767
  const { latitude, longitude } = e.nativeEvent;
768
768
  console.log(`拖拽结束: ${latitude}, ${longitude}`);
@@ -785,7 +785,7 @@ import { Platform } from 'react-native';
785
785
  ]}
786
786
  width={5}
787
787
  color="#FFFF0000"
788
- onPress={() => console.log('点击折线')}
788
+ onPress={(e) => console.log('点击折线')}
789
789
  />
790
790
  </MapView>
791
791
  ```
@@ -806,7 +806,7 @@ const iconUri = Image.resolveAssetSource(require('./assets/arrow.png')).uri;
806
806
  width={20}
807
807
  color="#FFFF0000"
808
808
  texture={iconUri}
809
- onPress={() => console.log('点击纹理折线')}
809
+ onPress={(e) => console.log('点击纹理折线')}
810
810
  />
811
811
  </MapView>
812
812
  ```
@@ -877,7 +877,7 @@ await mapRef.current?.addPolyline('segment2', {
877
877
  fillColor="#8800FF00"
878
878
  strokeColor="#FFFF0000"
879
879
  strokeWidth={2}
880
- onPress={() => console.log('点击多边形')}
880
+ onPress={(e) => console.log('点击多边形')}
881
881
  />
882
882
  </MapView>
883
883
  ```
@@ -270,6 +270,26 @@ class MarkerView: ExpoView {
270
270
  return UIGraphicsGetImageFromCurrentImageContext()
271
271
  }
272
272
 
273
+ override func willRemoveSubview(_ subview: UIView) {
274
+ super.willRemoveSubview(subview)
275
+
276
+ // 子视图即将被移除,延迟检查并更新图标
277
+ DispatchQueue.main.asyncAfter(deadline: .now() + 0.05) { [weak self] in
278
+ guard let self = self else { return }
279
+
280
+ if self.subviews.isEmpty {
281
+ // 所有子视图已移除,恢复默认图标
282
+ if let annotationView = self.annotationView {
283
+ annotationView.image = self.createDefaultMarkerImage()
284
+ annotationView.centerOffset = CGPoint(x: 0, y: -18)
285
+ }
286
+ } else {
287
+ // 还有子视图,更新图标
288
+ self.updateMarkerImage()
289
+ }
290
+ }
291
+ }
292
+
273
293
  override func didAddSubview(_ subview: UIView) {
274
294
  super.didAddSubview(subview)
275
295
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-gaode-map",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "一个功能完整的高德地图 React Native 组件库,基于 Expo Modules 开发,提供地图显示、定位、覆盖物等功能。",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -1,5 +1,6 @@
1
1
  import { requireNativeViewManager } from 'expo-modules-core';
2
2
  import * as React from 'react';
3
+ import { NativeSyntheticEvent } from 'react-native';
3
4
  import { EventManager } from './utils/EventManager';
4
5
  import type {
5
6
  MapViewProps,
@@ -21,14 +22,14 @@ const NativeView: React.ComponentType<MapViewProps & { ref?: React.Ref<NativeMap
21
22
  export const MapContext = React.createContext<React.RefObject<MapViewRef | null> | null>(null);
22
23
 
23
24
  type MarkerEventCallbacks = {
24
- onPress?: () => void;
25
- onDragStart?: () => void;
26
- onDrag?: () => void;
27
- onDragEnd?: (event: { nativeEvent: LatLng }) => void;
25
+ onPress?: (event: NativeSyntheticEvent<{}>) => void;
26
+ onDragStart?: (event: NativeSyntheticEvent<LatLng>) => void;
27
+ onDrag?: (event: NativeSyntheticEvent<LatLng>) => void;
28
+ onDragEnd?: (event: NativeSyntheticEvent<LatLng>) => void;
28
29
  };
29
30
 
30
31
  type OverlayEventCallbacks = {
31
- onPress?: () => void;
32
+ onPress?: (event: NativeSyntheticEvent<{}>) => void;
32
33
  };
33
34
 
34
35
  export const MarkerEventContext = React.createContext<EventManager<MarkerEventCallbacks> | null>(null);
@@ -63,50 +64,45 @@ const ExpoGaodeMapView = React.forwardRef<MapViewRef, MapViewProps>((props, ref)
63
64
  const polylineEventManager = React.useMemo(() => new EventManager<OverlayEventCallbacks>(), []);
64
65
  const handleMarkerPress = (event: any) => {
65
66
  const markerId = event.nativeEvent?.markerId;
66
- if (markerId) markerEventManager.trigger(markerId, 'onPress');
67
+ if (markerId) markerEventManager.trigger(markerId, 'onPress', event);
67
68
  props.onMarkerPress?.(event);
68
69
  };
69
70
 
70
71
  const handleMarkerDragStart = (event: any) => {
71
72
  const markerId = event.nativeEvent?.markerId;
72
- if (markerId) markerEventManager.trigger(markerId, 'onDragStart');
73
+ if (markerId) markerEventManager.trigger(markerId, 'onDragStart', event);
73
74
  props.onMarkerDragStart?.(event);
74
75
  };
75
76
 
76
77
  const handleMarkerDrag = (event: any) => {
77
78
  const markerId = event.nativeEvent?.markerId;
78
- if (markerId) markerEventManager.trigger(markerId, 'onDrag');
79
+ if (markerId) markerEventManager.trigger(markerId, 'onDrag', event);
79
80
  props.onMarkerDrag?.(event);
80
81
  };
81
82
 
82
83
  const handleMarkerDragEnd = (event: any) => {
83
84
  const markerId = event.nativeEvent?.markerId;
84
85
  if (markerId) {
85
- markerEventManager.trigger(markerId, 'onDragEnd', {
86
- nativeEvent: {
87
- latitude: event.nativeEvent.latitude,
88
- longitude: event.nativeEvent.longitude
89
- }
90
- });
86
+ markerEventManager.trigger(markerId, 'onDragEnd', event);
91
87
  }
92
88
  props.onMarkerDragEnd?.(event);
93
89
  };
94
90
 
95
91
  const handleCirclePress = (event: any) => {
96
92
  const circleId = event.nativeEvent?.circleId;
97
- if (circleId) circleEventManager.trigger(circleId, 'onPress');
93
+ if (circleId) circleEventManager.trigger(circleId, 'onPress', event);
98
94
  props.onCirclePress?.(event);
99
95
  };
100
96
 
101
97
  const handlePolygonPress = (event: any) => {
102
98
  const polygonId = event.nativeEvent?.polygonId;
103
- if (polygonId) polygonEventManager.trigger(polygonId, 'onPress');
99
+ if (polygonId) polygonEventManager.trigger(polygonId, 'onPress', event);
104
100
  props.onPolygonPress?.(event);
105
101
  };
106
102
 
107
103
  const handlePolylinePress = (event: any) => {
108
104
  const polylineId = event.nativeEvent?.polylineId;
109
- if (polylineId) polylineEventManager.trigger(polylineId, 'onPress');
105
+ if (polylineId) polylineEventManager.trigger(polylineId, 'onPress', event);
110
106
  props.onPolylinePress?.(event);
111
107
  };
112
108
 
@@ -3,9 +3,9 @@
3
3
  * 基于 Expo Modules API
4
4
  */
5
5
 
6
- import type { StyleProp, ViewStyle } from 'react-native';
6
+ import type { StyleProp, ViewStyle,NativeSyntheticEvent } from 'react-native';
7
7
  import type { CameraPosition, LatLng, LatLngBounds, MapPoi, MapType, Point } from './common.types';
8
- import type { Coordinates, ReGeocode } from './location.types';
8
+
9
9
 
10
10
  /**
11
11
  * 地图相机事件
@@ -168,72 +168,72 @@ export interface MapViewProps {
168
168
  /**
169
169
  * 点击地图事件
170
170
  */
171
- onMapPress?: (event: LatLng) => void;
171
+ onMapPress?: (event: NativeSyntheticEvent<LatLng>) => void;
172
172
 
173
173
  /**
174
174
  * 点击标注点事件
175
175
  */
176
- onPressPoi?: (event: MapPoi) => void;
176
+ onPressPoi?: (event: NativeSyntheticEvent<MapPoi>) => void;
177
177
 
178
178
  /**
179
179
  * 长按地图事件
180
180
  */
181
- onMapLongPress?: (event: LatLng) => void;
181
+ onMapLongPress?: (event: NativeSyntheticEvent<LatLng>) => void;
182
182
 
183
183
  /**
184
184
  * 地图状态改变事件(实时触发)
185
185
  */
186
- onCameraMove?: (event: CameraEvent) => void;
186
+ onCameraMove?: (event: NativeSyntheticEvent<CameraEvent>) => void;
187
187
 
188
188
  /**
189
189
  * 地图状态改变完成事件
190
190
  */
191
- onCameraIdle?: (event: CameraEvent) => void;
191
+ onCameraIdle?: (event: NativeSyntheticEvent<CameraEvent>) => void;
192
192
 
193
193
  /**
194
194
  * 地图加载完成事件
195
195
  */
196
- onLoad?: (event: {}) => void;
196
+ onLoad?: (event: NativeSyntheticEvent<{}>) => void;
197
197
 
198
198
  /**
199
199
  * 地图定位更新事件
200
200
  */
201
- onLocation?: (event: Coordinates | ReGeocode) => void;
201
+ onLocation?: (event: NativeSyntheticEvent<GeolocationPosition>) => void;
202
202
 
203
203
  /**
204
204
  * Marker 点击事件
205
205
  */
206
- onMarkerPress?: (event: { markerId: string } & LatLng) => void;
206
+ onMarkerPress?: (event: NativeSyntheticEvent<{ markerId: string } & LatLng>) => void;
207
207
 
208
208
  /**
209
209
  * Marker 拖拽开始事件
210
210
  */
211
- onMarkerDragStart?: (event: { markerId: string } & LatLng) => void;
211
+ onMarkerDragStart?: (event: NativeSyntheticEvent<{ markerId: string } & LatLng>) => void;
212
212
 
213
213
  /**
214
214
  * Marker 拖拽中事件
215
215
  */
216
- onMarkerDrag?: (event: { markerId: string } & LatLng) => void;
216
+ onMarkerDrag?: (event: NativeSyntheticEvent<{ markerId: string } & LatLng>) => void;
217
217
 
218
218
  /**
219
219
  * Marker 拖拽结束事件
220
220
  */
221
- onMarkerDragEnd?: (event: { markerId: string } & LatLng) => void;
221
+ onMarkerDragEnd?: (event: NativeSyntheticEvent<{ markerId: string } & LatLng>) => void;
222
222
 
223
223
  /**
224
224
  * Circle 点击事件
225
225
  */
226
- onCirclePress?: (event: { circleId: string } & LatLng) => void;
226
+ onCirclePress?: (event: NativeSyntheticEvent<{ circleId: string } & LatLng>) => void;
227
227
 
228
228
  /**
229
229
  * Polygon 点击事件
230
230
  */
231
- onPolygonPress?: (event: { polygonId: string } & LatLng) => void;
231
+ onPolygonPress?: (event: NativeSyntheticEvent<{ polygonId: string } & LatLng>) => void;
232
232
 
233
233
  /**
234
234
  * Polyline 点击事件
235
235
  */
236
- onPolylinePress?: (event: { polylineId: string } & LatLng) => void;
236
+ onPolylinePress?: (event: NativeSyntheticEvent<{ polylineId: string } & LatLng>) => void;
237
237
 
238
238
  /**
239
239
  * 子组件
@@ -3,7 +3,7 @@
3
3
  * 基于 Expo Modules API
4
4
  */
5
5
 
6
- import type { ImageSourcePropType, ViewStyle } from 'react-native';
6
+ import type { ImageSourcePropType, ViewStyle, NativeSyntheticEvent } from 'react-native';
7
7
  import type { ColorValue, LatLng, Point } from './common.types';
8
8
 
9
9
  /**
@@ -116,22 +116,22 @@ export interface MarkerProps {
116
116
  /**
117
117
  * 点击事件
118
118
  */
119
- onPress?: () => void;
119
+ onPress?: (event: NativeSyntheticEvent<{}>) => void;
120
120
 
121
121
  /**
122
122
  * 拖拽开始事件
123
123
  */
124
- onDragStart?: () => void;
124
+ onDragStart?: (event: NativeSyntheticEvent<LatLng>) => void;
125
125
 
126
126
  /**
127
127
  * 拖拽中事件
128
128
  */
129
- onDrag?: () => void;
129
+ onDrag?: (event: NativeSyntheticEvent<LatLng>) => void;
130
130
 
131
131
  /**
132
132
  * 拖拽结束事件
133
133
  */
134
- onDragEnd?: (event: { nativeEvent: LatLng }) => void;
134
+ onDragEnd?: (event: NativeSyntheticEvent<LatLng>) => void;
135
135
  }
136
136
 
137
137
  /**
@@ -193,7 +193,7 @@ export interface PolylineProps {
193
193
  /**
194
194
  * 点击事件
195
195
  */
196
- onPress?: () => void;
196
+ onPress?: (event: NativeSyntheticEvent<{}>) => void;
197
197
  }
198
198
 
199
199
  /**
@@ -228,7 +228,7 @@ export interface PolygonProps {
228
228
  /**
229
229
  * 点击事件
230
230
  */
231
- onPress?: () => void;
231
+ onPress?: (event: NativeSyntheticEvent<{}>) => void;
232
232
  }
233
233
 
234
234
  /**
@@ -268,7 +268,7 @@ export interface CircleProps {
268
268
  /**
269
269
  * 点击事件
270
270
  */
271
- onPress?: () => void;
271
+ onPress?: (event: NativeSyntheticEvent<{}>) => void;
272
272
 
273
273
  /**
274
274
  * 自定义子元素
@@ -330,7 +330,7 @@ export interface MultiPointProps {
330
330
  /**
331
331
  * 点击事件
332
332
  */
333
- onPress?: (event: { nativeEvent: { index: number; item: MultiPointItem } }) => void;
333
+ onPress?: (event: NativeSyntheticEvent<{ index: number; item: MultiPointItem }>) => void;
334
334
  }
335
335
 
336
336
  /**
@@ -405,5 +405,5 @@ export interface ClusterProps {
405
405
  /**
406
406
  * 聚合点点击事件
407
407
  */
408
- onPress?: (params: ClusterParams) => void;
408
+ onPress?: (event: NativeSyntheticEvent<ClusterParams>) => void;
409
409
  }