expo-gaode-map 1.1.0 → 1.1.2
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/android/src/main/java/expo/modules/gaodemap/managers/UIManager.kt +224 -53
- package/android/src/main/java/expo/modules/gaodemap/overlays/MarkerView.kt +38 -1
- package/build/ExpoGaodeMapView.d.ts +6 -7
- package/build/ExpoGaodeMapView.d.ts.map +1 -1
- package/build/ExpoGaodeMapView.js +7 -12
- package/build/ExpoGaodeMapView.js.map +1 -1
- package/build/types/map-view.types.d.ts +22 -23
- 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 +13 -17
- package/build/types/overlays.types.d.ts.map +1 -1
- package/build/types/overlays.types.js.map +1 -1
- package/docs/API.en.md +10 -10
- package/docs/API.md +10 -10
- package/docs/EXAMPLES.en.md +8 -8
- package/docs/EXAMPLES.md +11 -11
- package/ios/overlays/MarkerView.swift +20 -0
- package/package.json +1 -1
- package/src/ExpoGaodeMapView.tsx +13 -17
- package/src/types/map-view.types.ts +16 -16
- package/src/types/overlays.types.ts +10 -10
|
@@ -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:
|
|
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":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
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';\
|
|
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
|
-
|
|
282
|
-
|
|
283
|
-
|
|
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?: (
|
|
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":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
|
package/docs/EXAMPLES.en.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('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
|
|