expo-gaode-map 2.2.33 → 2.2.34

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.
Files changed (57) hide show
  1. package/README.md +20 -14
  2. package/android/build.gradle +8 -4
  3. package/android/src/main/AndroidManifest.xml +14 -0
  4. package/android/src/main/java/expo/modules/gaodemap/ExpoGaodeMapModule.kt +7 -8
  5. package/android/src/main/java/expo/modules/gaodemap/ExpoGaodeMapOfflineModule.kt +150 -27
  6. package/android/src/main/java/expo/modules/gaodemap/ExpoGaodeMapView.kt +24 -14
  7. package/android/src/main/java/expo/modules/gaodemap/managers/UIManager.kt +38 -41
  8. package/android/src/main/java/expo/modules/gaodemap/modules/SDKInitializer.kt +18 -17
  9. package/android/src/main/java/expo/modules/gaodemap/overlays/CircleView.kt +3 -1
  10. package/android/src/main/java/expo/modules/gaodemap/overlays/ClusterView.kt +6 -1
  11. package/android/src/main/java/expo/modules/gaodemap/overlays/HeatMapView.kt +124 -10
  12. package/android/src/main/java/expo/modules/gaodemap/overlays/HeatMapViewModule.kt +2 -2
  13. package/android/src/main/java/expo/modules/gaodemap/overlays/MarkerBitmapRenderer.kt +10 -9
  14. package/android/src/main/java/expo/modules/gaodemap/overlays/MarkerView.kt +7 -11
  15. package/android/src/main/java/expo/modules/gaodemap/overlays/MultiPointView.kt +3 -1
  16. package/android/src/main/java/expo/modules/gaodemap/overlays/PolygonView.kt +2 -1
  17. package/android/src/main/java/expo/modules/gaodemap/overlays/PolylineView.kt +1 -0
  18. package/android/src/main/java/expo/modules/gaodemap/search/ExpoGaodeMapSearchModule.kt +751 -0
  19. package/android/src/main/java/expo/modules/gaodemap/utils/GeometryUtils.kt +5 -5
  20. package/android/src/main/java/expo/modules/gaodemap/utils/PermissionHelper.kt +13 -16
  21. package/build/ExpoGaodeMapOfflineModule.d.ts +5 -0
  22. package/build/ExpoGaodeMapOfflineModule.d.ts.map +1 -1
  23. package/build/ExpoGaodeMapOfflineModule.js.map +1 -1
  24. package/build/components/overlays/HeatMap.d.ts.map +1 -1
  25. package/build/components/overlays/HeatMap.js +21 -2
  26. package/build/components/overlays/HeatMap.js.map +1 -1
  27. package/build/index.d.ts +3 -0
  28. package/build/index.d.ts.map +1 -1
  29. package/build/index.js +3 -0
  30. package/build/index.js.map +1 -1
  31. package/build/search/ExpoGaodeMapSearch.types.d.ts +340 -0
  32. package/build/search/ExpoGaodeMapSearch.types.d.ts.map +1 -0
  33. package/build/search/ExpoGaodeMapSearch.types.js +19 -0
  34. package/build/search/ExpoGaodeMapSearch.types.js.map +1 -0
  35. package/build/search/ExpoGaodeMapSearchModule.d.ts +74 -0
  36. package/build/search/ExpoGaodeMapSearchModule.d.ts.map +1 -0
  37. package/build/search/ExpoGaodeMapSearchModule.js +47 -0
  38. package/build/search/ExpoGaodeMapSearchModule.js.map +1 -0
  39. package/build/search/index.d.ts +156 -0
  40. package/build/search/index.d.ts.map +1 -0
  41. package/build/search/index.js +171 -0
  42. package/build/search/index.js.map +1 -0
  43. package/build/types/map-view.types.d.ts +4 -2
  44. package/build/types/map-view.types.d.ts.map +1 -1
  45. package/build/types/map-view.types.js.map +1 -1
  46. package/build/utils/OfflineMapManager.d.ts +4 -0
  47. package/build/utils/OfflineMapManager.d.ts.map +1 -1
  48. package/build/utils/OfflineMapManager.js +6 -0
  49. package/build/utils/OfflineMapManager.js.map +1 -1
  50. package/expo-module.config.json +4 -2
  51. package/ios/ExpoGaodeMap.podspec +2 -2
  52. package/ios/ExpoGaodeMapOfflineModule.swift +60 -0
  53. package/ios/ExpoGaodeMapSearchModule.swift +773 -0
  54. package/ios/modules/LocationManager.swift +9 -3
  55. package/ios/overlays/PolylineView.swift +6 -12
  56. package/package.json +1 -1
  57. package/plugin/build/withGaodeMap.js +12 -0
@@ -317,7 +317,7 @@ object GeometryUtils {
317
317
  longitudes[i] = points[i].longitude
318
318
  }
319
319
  val result = nativeGetPointAtDistance(latitudes, longitudes, distanceMeters)
320
- if (result != null && result.size >= 3) {
320
+ if (result.size >= 3) {
321
321
  PointAtDistance(LatLng(result[0], result[1]), result[2])
322
322
  } else {
323
323
  null
@@ -345,7 +345,7 @@ object GeometryUtils {
345
345
  longitudes[i] = points[i].longitude
346
346
  }
347
347
  val result = nativeGetNearestPointOnPath(latitudes, longitudes, target.latitude, target.longitude)
348
- if (result != null && result.size >= 4) {
348
+ if (result.size >= 4) {
349
349
  NearestPointResult(
350
350
  LatLng(result[0], result[1]),
351
351
  result[2].toInt(),
@@ -369,7 +369,7 @@ object GeometryUtils {
369
369
  longitudes[i] = points[i].longitude
370
370
  }
371
371
  val result = nativeCalculateCentroid(latitudes, longitudes)
372
- if (result != null && result.size >= 2) {
372
+ if (result.size >= 2) {
373
373
  LatLng(result[0], result[1])
374
374
  } else {
375
375
  null
@@ -549,7 +549,7 @@ object GeometryUtils {
549
549
  fun tileToLatLng(x: Int, y: Int, zoom: Int): LatLng? {
550
550
  return try {
551
551
  val result = nativeTileToLatLng(x, y, zoom)
552
- if (result != null && result.size >= 2) {
552
+ if (result.size >= 2) {
553
553
  LatLng(result[0], result[1])
554
554
  } else {
555
555
  null
@@ -570,7 +570,7 @@ object GeometryUtils {
570
570
  fun pixelToLatLng(x: Double, y: Double, zoom: Int): LatLng? {
571
571
  return try {
572
572
  val result = nativePixelToLatLng(x, y, zoom)
573
- if (result != null && result.size >= 2) {
573
+ if (result.size >= 2) {
574
574
  LatLng(result[0], result[1])
575
575
  } else {
576
576
  null
@@ -8,6 +8,7 @@ import android.content.pm.PackageManager
8
8
  import android.net.Uri
9
9
  import android.os.Build
10
10
  import android.provider.Settings
11
+ import androidx.annotation.ChecksSdkIntAtLeast
11
12
  import androidx.core.app.ActivityCompat
12
13
  import androidx.core.content.ContextCompat
13
14
 
@@ -46,6 +47,7 @@ object PermissionHelper {
46
47
  /**
47
48
  * 检查是否为 Android 14+
48
49
  */
50
+ @ChecksSdkIntAtLeast(api = Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
49
51
  fun isAndroid14Plus(): Boolean {
50
52
  return Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE // API 34
51
53
  }
@@ -53,6 +55,7 @@ object PermissionHelper {
53
55
  /**
54
56
  * 检查是否为 Android 10+(引入后台位置权限)
55
57
  */
58
+ @ChecksSdkIntAtLeast(api = Build.VERSION_CODES.Q)
56
59
  fun isAndroid10Plus(): Boolean {
57
60
  return Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q // API 29
58
61
  }
@@ -117,17 +120,14 @@ object PermissionHelper {
117
120
  * 检查后台位置权限状态
118
121
  */
119
122
  fun checkBackgroundLocationPermission(context: Context): PermissionStatus {
120
- val permission = getBackgroundLocationPermission()
121
- if (permission == null) {
122
- // Android 10 以下不支持后台位置权限
123
- return PermissionStatus(
124
- granted = true,
125
- shouldShowRationale = false,
126
- isPermanentlyDenied = false,
127
- backgroundLocation = true
128
- )
129
- }
130
-
123
+ val permission = getBackgroundLocationPermission() ?: // Android 10 以下不支持后台位置权限
124
+ return PermissionStatus(
125
+ granted = true,
126
+ shouldShowRationale = false,
127
+ isPermanentlyDenied = false,
128
+ backgroundLocation = true
129
+ )
130
+
131
131
  val granted = ContextCompat.checkSelfPermission(
132
132
  context,
133
133
  permission
@@ -179,11 +179,8 @@ object PermissionHelper {
179
179
  * 注意:必须在前台权限已授予后才能请求
180
180
  */
181
181
  fun requestBackgroundLocationPermission(activity: Activity, requestCode: Int): Boolean {
182
- val permission = getBackgroundLocationPermission()
183
- if (permission == null) {
184
- return false
185
- }
186
-
182
+ val permission = getBackgroundLocationPermission() ?: return false
183
+
187
184
  // 检查前台权限是否已授予
188
185
  val foregroundStatus = checkForegroundLocationPermission(activity)
189
186
  if (!foregroundStatus.granted) {
@@ -7,6 +7,11 @@ import type { OfflineMapInfo, OfflineMapDownloadConfig, OfflineMapStorageInfo, O
7
7
  * 离线地图原生模块接口
8
8
  */
9
9
  declare class ExpoGaodeMapOfflineModule extends NativeModule<OfflineMapEvents> {
10
+ /**
11
+ * 打开高德 3D 地图 SDK 官方离线地图 UI 组件(Android)。
12
+ * 官方组件内置城市下载、暂停、更新、删除和城市搜索。
13
+ */
14
+ openOfflineMapUI(): Promise<void>;
10
15
  /**
11
16
  * 获取所有可下载的城市列表
12
17
  * @returns Promise<OfflineMapInfo[]> 城市列表
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoGaodeMapOfflineModule.d.ts","sourceRoot":"","sources":["../src/ExpoGaodeMapOfflineModule.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAuB,MAAM,MAAM,CAAC;AACzD,OAAO,KAAK,EACV,cAAc,EACd,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,OAAO,OAAO,yBAA0B,SAAQ,YAAY,CAAC,gBAAgB,CAAC;IAG5E;;;OAGG;IACH,kBAAkB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAE/C;;;OAGG;IACH,qBAAqB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAElD;;;;OAIG;IACH,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAEpE;;;OAGG;IACH,iBAAiB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAI9C;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9D;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9C;;;OAGG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/C;;;OAGG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/C;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1C;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1C;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/C;;;;OAIG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAEnD;;;;OAIG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAEvD;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAEnC;;;OAGG;IACH,oBAAoB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIzC;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAEjC;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAEhD;;OAEG;IACH,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAE7B;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAElC;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAIjC;;;;OAIG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1E;;;OAGG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/C;;;OAGG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/C;;OAEG;IACH,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAElC;;OAEG;IACH,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;CAEpC;;AAuBD,wBAIG"}
1
+ {"version":3,"file":"ExpoGaodeMapOfflineModule.d.ts","sourceRoot":"","sources":["../src/ExpoGaodeMapOfflineModule.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAuB,MAAM,MAAM,CAAC;AACzD,OAAO,KAAK,EACV,cAAc,EACd,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,OAAO,OAAO,yBAA0B,SAAQ,YAAY,CAAC,gBAAgB,CAAC;IAG5E;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAEjC;;;OAGG;IACH,kBAAkB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAE/C;;;OAGG;IACH,qBAAqB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAElD;;;;OAIG;IACH,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAEpE;;;OAGG;IACH,iBAAiB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAI9C;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9D;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9C;;;OAGG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/C;;;OAGG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/C;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1C;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1C;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/C;;;;OAIG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAEnD;;;;OAIG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAEvD;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAEnC;;;OAGG;IACH,oBAAoB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIzC;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAEjC;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAEhD;;OAEG;IACH,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAE7B;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAElC;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAIjC;;;;OAIG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1E;;;OAGG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/C;;;OAGG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/C;;OAEG;IACH,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAElC;;OAEG;IACH,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;CAEpC;;AAuBD,wBAIG"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoGaodeMapOfflineModule.js","sourceRoot":"","sources":["../src/ExpoGaodeMapOfflineModule.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAgB,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAgLzD,IAAI,iBAAiB,GAAqC,IAAI,CAAC;AAE/D,SAAS,eAAe;IACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,iBAAiB,GAAG,mBAAmB,CAA4B,qBAAqB,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAAiC,EACjC,IAAiB;IAEjB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAgB,EAAE,IAAI,EAAE,MAAgB,CAAC,CAAC;IACpE,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,IAAe,EAAE,EAAE,CAC3B,KAA2C,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,eAAe,IAAI,KAAK,CAAC,EAA+B,EAAE;IACxD,GAAG,CAAC,OAAO,EAAE,IAAI;QACf,OAAO,mBAAmB,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;CACF,CAAC,CAAC","sourcesContent":["/**\n * 高德地图离线地图原生模块\n */\n\nimport { NativeModule, requireNativeModule } from 'expo';\nimport type {\n OfflineMapInfo,\n OfflineMapDownloadConfig,\n OfflineMapStorageInfo,\n OfflineMapEvents,\n} from './types/offline.types';\n\n/**\n * 离线地图原生模块接口\n */\ndeclare class ExpoGaodeMapOfflineModule extends NativeModule<OfflineMapEvents> {\n // ==================== 地图列表管理 ====================\n \n /**\n * 获取所有可下载的城市列表\n * @returns Promise<OfflineMapInfo[]> 城市列表\n */\n getAvailableCities(): Promise<OfflineMapInfo[]>;\n \n /**\n * 获取所有省份列表\n * @returns Promise<OfflineMapInfo[]> 省份列表\n */\n getAvailableProvinces(): Promise<OfflineMapInfo[]>;\n \n /**\n * 根据省份代码获取城市列表\n * @param provinceCode 省份代码\n * @returns Promise<OfflineMapInfo[]> 该省份下的城市列表\n */\n getCitiesByProvince(provinceCode: string): Promise<OfflineMapInfo[]>;\n \n /**\n * 获取已下载的地图列表\n * @returns Promise<OfflineMapInfo[]> 已下载的地图列表\n */\n getDownloadedMaps(): Promise<OfflineMapInfo[]>;\n \n // ==================== 下载管理 ====================\n \n /**\n * 开始下载离线地图\n * @param config 下载配置\n */\n startDownload(config: OfflineMapDownloadConfig): Promise<void>;\n \n /**\n * 暂停下载\n * @param cityCode 城市代码\n */\n pauseDownload(cityCode: string): Promise<void>;\n \n /**\n * 恢复下载\n * @param cityCode 城市代码\n */\n resumeDownload(cityCode: string): Promise<void>;\n \n /**\n * 取消下载\n * @param cityCode 城市代码\n */\n cancelDownload(cityCode: string): Promise<void>;\n \n /**\n * 删除离线地图\n * @param cityCode 城市代码\n */\n deleteMap(cityCode: string): Promise<void>;\n \n /**\n * 更新离线地图\n * @param cityCode 城市代码\n */\n updateMap(cityCode: string): Promise<void>;\n \n /**\n * 检查是否有可用更新\n * @param cityCode 城市代码\n * @returns Promise<boolean> 是否有更新\n */\n checkUpdate(cityCode: string): Promise<boolean>;\n \n // ==================== 状态查询 ====================\n \n /**\n * 检查地图是否已下载\n * @param cityCode 城市代码\n * @returns Promise<boolean> 是否已下载\n */\n isMapDownloaded(cityCode: string): Promise<boolean>;\n \n /**\n * 获取地图下载状态\n * @param cityCode 城市代码\n * @returns Promise<OfflineMapInfo> 地图信息\n */\n getMapStatus(cityCode: string): Promise<OfflineMapInfo>;\n \n /**\n * 获取所有下载任务的总进度\n * @returns Promise<number> 总进度 (0-100)\n */\n getTotalProgress(): Promise<number>;\n \n /**\n * 获取当前正在下载的城市列表\n * @returns Promise<string[]> 城市代码列表\n */\n getDownloadingCities(): Promise<string[]>;\n \n // ==================== 存储管理 ====================\n \n /**\n * 获取离线地图占用的存储空间(字节)\n * @returns Promise<number> 存储空间大小\n */\n getStorageSize(): Promise<number>;\n \n /**\n * 获取详细的存储信息\n * @returns Promise<OfflineMapStorageInfo> 存储信息\n */\n getStorageInfo(): Promise<OfflineMapStorageInfo>;\n \n /**\n * 清理所有离线地图\n */\n clearAllMaps(): Promise<void>;\n \n /**\n * 设置离线地图存储路径\n * @param path 存储路径\n */\n setStoragePath(path: string): void;\n \n /**\n * 获取离线地图存储路径\n * @returns Promise<string> 存储路径\n */\n getStoragePath(): Promise<string>;\n \n // ==================== 批量操作 ====================\n \n /**\n * 批量下载地图\n * @param cityCodes 城市代码列表\n * @param allowCellular 是否允许移动网络\n */\n batchDownload(cityCodes: string[], allowCellular?: boolean): Promise<void>;\n \n /**\n * 批量删除地图\n * @param cityCodes 城市代码列表\n */\n batchDelete(cityCodes: string[]): Promise<void>;\n \n /**\n * 批量更新地图\n * @param cityCodes 城市代码列表\n */\n batchUpdate(cityCodes: string[]): Promise<void>;\n \n /**\n * 暂停所有下载任务\n */\n pauseAllDownloads(): Promise<void>;\n \n /**\n * 恢复所有下载任务\n */\n resumeAllDownloads(): Promise<void>;\n\n}\n\nlet nativeModuleCache: ExpoGaodeMapOfflineModule | null = null;\n\nfunction getNativeModule(): ExpoGaodeMapOfflineModule {\n if (!nativeModuleCache) {\n nativeModuleCache = requireNativeModule<ExpoGaodeMapOfflineModule>('ExpoGaodeMapOffline');\n }\n return nativeModuleCache;\n}\n\nfunction getBoundNativeValue(\n module: ExpoGaodeMapOfflineModule,\n prop: PropertyKey\n): unknown {\n const value = Reflect.get(module as object, prop, module as object);\n if (typeof value === 'function') {\n return (...args: unknown[]) =>\n (value as (...fnArgs: unknown[]) => unknown).apply(module, args);\n }\n return value;\n}\n\nexport default new Proxy({} as ExpoGaodeMapOfflineModule, {\n get(_target, prop) {\n return getBoundNativeValue(getNativeModule(), prop);\n },\n});\n"]}
1
+ {"version":3,"file":"ExpoGaodeMapOfflineModule.js","sourceRoot":"","sources":["../src/ExpoGaodeMapOfflineModule.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAgB,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAsLzD,IAAI,iBAAiB,GAAqC,IAAI,CAAC;AAE/D,SAAS,eAAe;IACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,iBAAiB,GAAG,mBAAmB,CAA4B,qBAAqB,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAAiC,EACjC,IAAiB;IAEjB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAgB,EAAE,IAAI,EAAE,MAAgB,CAAC,CAAC;IACpE,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,IAAe,EAAE,EAAE,CAC3B,KAA2C,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,eAAe,IAAI,KAAK,CAAC,EAA+B,EAAE;IACxD,GAAG,CAAC,OAAO,EAAE,IAAI;QACf,OAAO,mBAAmB,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;CACF,CAAC,CAAC","sourcesContent":["/**\n * 高德地图离线地图原生模块\n */\n\nimport { NativeModule, requireNativeModule } from 'expo';\nimport type {\n OfflineMapInfo,\n OfflineMapDownloadConfig,\n OfflineMapStorageInfo,\n OfflineMapEvents,\n} from './types/offline.types';\n\n/**\n * 离线地图原生模块接口\n */\ndeclare class ExpoGaodeMapOfflineModule extends NativeModule<OfflineMapEvents> {\n // ==================== 地图列表管理 ====================\n\n /**\n * 打开高德 3D 地图 SDK 官方离线地图 UI 组件(Android)。\n * 官方组件内置城市下载、暂停、更新、删除和城市搜索。\n */\n openOfflineMapUI(): Promise<void>;\n \n /**\n * 获取所有可下载的城市列表\n * @returns Promise<OfflineMapInfo[]> 城市列表\n */\n getAvailableCities(): Promise<OfflineMapInfo[]>;\n \n /**\n * 获取所有省份列表\n * @returns Promise<OfflineMapInfo[]> 省份列表\n */\n getAvailableProvinces(): Promise<OfflineMapInfo[]>;\n \n /**\n * 根据省份代码获取城市列表\n * @param provinceCode 省份代码\n * @returns Promise<OfflineMapInfo[]> 该省份下的城市列表\n */\n getCitiesByProvince(provinceCode: string): Promise<OfflineMapInfo[]>;\n \n /**\n * 获取已下载的地图列表\n * @returns Promise<OfflineMapInfo[]> 已下载的地图列表\n */\n getDownloadedMaps(): Promise<OfflineMapInfo[]>;\n \n // ==================== 下载管理 ====================\n \n /**\n * 开始下载离线地图\n * @param config 下载配置\n */\n startDownload(config: OfflineMapDownloadConfig): Promise<void>;\n \n /**\n * 暂停下载\n * @param cityCode 城市代码\n */\n pauseDownload(cityCode: string): Promise<void>;\n \n /**\n * 恢复下载\n * @param cityCode 城市代码\n */\n resumeDownload(cityCode: string): Promise<void>;\n \n /**\n * 取消下载\n * @param cityCode 城市代码\n */\n cancelDownload(cityCode: string): Promise<void>;\n \n /**\n * 删除离线地图\n * @param cityCode 城市代码\n */\n deleteMap(cityCode: string): Promise<void>;\n \n /**\n * 更新离线地图\n * @param cityCode 城市代码\n */\n updateMap(cityCode: string): Promise<void>;\n \n /**\n * 检查是否有可用更新\n * @param cityCode 城市代码\n * @returns Promise<boolean> 是否有更新\n */\n checkUpdate(cityCode: string): Promise<boolean>;\n \n // ==================== 状态查询 ====================\n \n /**\n * 检查地图是否已下载\n * @param cityCode 城市代码\n * @returns Promise<boolean> 是否已下载\n */\n isMapDownloaded(cityCode: string): Promise<boolean>;\n \n /**\n * 获取地图下载状态\n * @param cityCode 城市代码\n * @returns Promise<OfflineMapInfo> 地图信息\n */\n getMapStatus(cityCode: string): Promise<OfflineMapInfo>;\n \n /**\n * 获取所有下载任务的总进度\n * @returns Promise<number> 总进度 (0-100)\n */\n getTotalProgress(): Promise<number>;\n \n /**\n * 获取当前正在下载的城市列表\n * @returns Promise<string[]> 城市代码列表\n */\n getDownloadingCities(): Promise<string[]>;\n \n // ==================== 存储管理 ====================\n \n /**\n * 获取离线地图占用的存储空间(字节)\n * @returns Promise<number> 存储空间大小\n */\n getStorageSize(): Promise<number>;\n \n /**\n * 获取详细的存储信息\n * @returns Promise<OfflineMapStorageInfo> 存储信息\n */\n getStorageInfo(): Promise<OfflineMapStorageInfo>;\n \n /**\n * 清理所有离线地图\n */\n clearAllMaps(): Promise<void>;\n \n /**\n * 设置离线地图存储路径\n * @param path 存储路径\n */\n setStoragePath(path: string): void;\n \n /**\n * 获取离线地图存储路径\n * @returns Promise<string> 存储路径\n */\n getStoragePath(): Promise<string>;\n \n // ==================== 批量操作 ====================\n \n /**\n * 批量下载地图\n * @param cityCodes 城市代码列表\n * @param allowCellular 是否允许移动网络\n */\n batchDownload(cityCodes: string[], allowCellular?: boolean): Promise<void>;\n \n /**\n * 批量删除地图\n * @param cityCodes 城市代码列表\n */\n batchDelete(cityCodes: string[]): Promise<void>;\n \n /**\n * 批量更新地图\n * @param cityCodes 城市代码列表\n */\n batchUpdate(cityCodes: string[]): Promise<void>;\n \n /**\n * 暂停所有下载任务\n */\n pauseAllDownloads(): Promise<void>;\n \n /**\n * 恢复所有下载任务\n */\n resumeAllDownloads(): Promise<void>;\n\n}\n\nlet nativeModuleCache: ExpoGaodeMapOfflineModule | null = null;\n\nfunction getNativeModule(): ExpoGaodeMapOfflineModule {\n if (!nativeModuleCache) {\n nativeModuleCache = requireNativeModule<ExpoGaodeMapOfflineModule>('ExpoGaodeMapOffline');\n }\n return nativeModuleCache;\n}\n\nfunction getBoundNativeValue(\n module: ExpoGaodeMapOfflineModule,\n prop: PropertyKey\n): unknown {\n const value = Reflect.get(module as object, prop, module as object);\n if (typeof value === 'function') {\n return (...args: unknown[]) =>\n (value as (...fnArgs: unknown[]) => unknown).apply(module, args);\n }\n return value;\n}\n\nexport default new Proxy({} as ExpoGaodeMapOfflineModule, {\n get(_target, prop) {\n return getBoundNativeValue(getNativeModule(), prop);\n },\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"HeatMap.d.ts","sourceRoot":"","sources":["../../../src/components/overlays/HeatMap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAYhD;;;;;GAKG;AACH,iBAAS,OAAO,CAAC,KAAK,EAAE,YAAY,qBAcnC;;AAUD,wBAAmC"}
1
+ {"version":3,"file":"HeatMap.d.ts","sourceRoot":"","sources":["../../../src/components/overlays/HeatMap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAmBhD;;;;;GAKG;AACH,iBAAS,OAAO,CAAC,KAAK,EAAE,YAAY,qBAcnC;;AA+BD,wBAAmC"}
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { StyleSheet } from 'react-native';
3
- import { normalizeLatLngList } from '../../utils/GeoUtils';
3
+ import { normalizeLatLng } from '../../utils/GeoUtils';
4
4
  import { createLazyNativeViewManager } from '../../utils/lazyNativeViewManager';
5
5
  const getNativeHeatMap = createLazyNativeViewManager('HeatMapView');
6
6
  /**
@@ -12,7 +12,7 @@ const getNativeHeatMap = createLazyNativeViewManager('HeatMapView');
12
12
  function HeatMap(props) {
13
13
  const NativeHeatMap = React.useMemo(() => getNativeHeatMap(), []);
14
14
  const { data, ...restProps } = props;
15
- const normalizedData = normalizeLatLngList(data);
15
+ const normalizedData = React.useMemo(() => normalizeHeatMapData(data), [data]);
16
16
  return (<NativeHeatMap data={normalizedData} {...restProps} collapsable={false} pointerEvents="none" style={styles.hidden}/>);
17
17
  }
18
18
  const styles = StyleSheet.create({
@@ -22,5 +22,24 @@ const styles = StyleSheet.create({
22
22
  backgroundColor: 'transparent',
23
23
  },
24
24
  });
25
+ function normalizeHeatMapData(data) {
26
+ return data.map((point) => {
27
+ const normalized = normalizeLatLng(point);
28
+ if (Array.isArray(point)) {
29
+ return {
30
+ ...normalized,
31
+ intensity: typeof point[2] === 'number' ? point[2] : undefined,
32
+ };
33
+ }
34
+ const extra = point;
35
+ return {
36
+ ...normalized,
37
+ intensity: typeof extra.intensity === 'number' ? extra.intensity : undefined,
38
+ weight: typeof extra.weight === 'number' ? extra.weight : undefined,
39
+ count: typeof extra.count === 'number' ? extra.count : undefined,
40
+ value: typeof extra.value === 'number' ? extra.value : undefined,
41
+ };
42
+ });
43
+ }
25
44
  export default React.memo(HeatMap);
26
45
  //# sourceMappingURL=HeatMap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HeatMap.js","sourceRoot":"","sources":["../../../src/components/overlays/HeatMap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAMhF,MAAM,gBAAgB,GAAG,2BAA2B,CAAqB,aAAa,CAAC,CAAC;AAGxF;;;;;GAKG;AACH,SAAS,OAAO,CAAC,KAAmB;IAClC,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;IAClE,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAEjD,OAAO,CACL,CAAC,aAAa,CACZ,IAAI,CAAC,CAAC,cAAc,CAAC,CACrB,IAAI,SAAS,CAAC,CACd,WAAW,CAAC,CAAC,KAAK,CAAC,CACnB,aAAa,CAAC,MAAM,CACpB,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EACrB,CACH,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE;QACN,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,eAAe,EAAE,aAAa;KAC/B;CACF,CAAC,CAAC;AAEH,eAAe,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC","sourcesContent":["import * as React from 'react';\nimport { StyleSheet } from 'react-native';\nimport type { ViewProps } from 'react-native';\nimport type { HeatMapProps } from '../../types';\nimport type { LatLng } from '../../types';\nimport { normalizeLatLngList } from '../../utils/GeoUtils';\nimport { createLazyNativeViewManager } from '../../utils/lazyNativeViewManager';\n\ntype NativeHeatMapProps = Omit<HeatMapProps, 'data'> & ViewProps & {\n data: LatLng[];\n};\n\nconst getNativeHeatMap = createLazyNativeViewManager<NativeHeatMapProps>('HeatMapView');\n\n\n/**\n * 高德地图热力图组件\n *\n * @param props - 热力图配置属性,继承自NativeHeatMap组件的属性\n * @returns 渲染高德地图原生热力图组件\n */\nfunction HeatMap(props: HeatMapProps) {\n const NativeHeatMap = React.useMemo(() => getNativeHeatMap(), []);\n const { data, ...restProps } = props;\n const normalizedData = normalizeLatLngList(data);\n\n return (\n <NativeHeatMap\n data={normalizedData}\n {...restProps}\n collapsable={false}\n pointerEvents=\"none\"\n style={styles.hidden}\n />\n );\n}\n\nconst styles = StyleSheet.create({\n hidden: {\n width: 0,\n height: 0,\n backgroundColor: 'transparent',\n },\n});\n\nexport default React.memo(HeatMap);\n"]}
1
+ {"version":3,"file":"HeatMap.js","sourceRoot":"","sources":["../../../src/components/overlays/HeatMap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAahF,MAAM,gBAAgB,GAAG,2BAA2B,CAAqB,aAAa,CAAC,CAAC;AAGxF;;;;;GAKG;AACH,SAAS,OAAO,CAAC,KAAmB;IAClC,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;IAClE,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/E,OAAO,CACL,CAAC,aAAa,CACZ,IAAI,CAAC,CAAC,cAAc,CAAC,CACrB,IAAI,SAAS,CAAC,CACd,WAAW,CAAC,CAAC,KAAK,CAAC,CACnB,aAAa,CAAC,MAAM,CACpB,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EACrB,CACH,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE;QACN,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,eAAe,EAAE,aAAa;KAC/B;CACF,CAAC,CAAC;AAEH,SAAS,oBAAoB,CAAC,IAA0B;IACtD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxB,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO;gBACL,GAAG,UAAU;gBACb,SAAS,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;aAC/D,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,KAAoC,CAAC;QACnD,OAAO;YACL,GAAG,UAAU;YACb,SAAS,EAAE,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAC5E,MAAM,EAAE,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACnE,KAAK,EAAE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YAChE,KAAK,EAAE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SACjE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC","sourcesContent":["import * as React from 'react';\nimport { StyleSheet } from 'react-native';\nimport type { ViewProps } from 'react-native';\nimport type { HeatMapProps } from '../../types';\nimport type { LatLng } from '../../types';\nimport { normalizeLatLng } from '../../utils/GeoUtils';\nimport { createLazyNativeViewManager } from '../../utils/lazyNativeViewManager';\n\ntype NativeHeatMapPoint = LatLng & {\n intensity?: number;\n weight?: number;\n count?: number;\n value?: number;\n};\n\ntype NativeHeatMapProps = Omit<HeatMapProps, 'data'> & ViewProps & {\n data: NativeHeatMapPoint[];\n};\n\nconst getNativeHeatMap = createLazyNativeViewManager<NativeHeatMapProps>('HeatMapView');\n\n\n/**\n * 高德地图热力图组件\n *\n * @param props - 热力图配置属性,继承自NativeHeatMap组件的属性\n * @returns 渲染高德地图原生热力图组件\n */\nfunction HeatMap(props: HeatMapProps) {\n const NativeHeatMap = React.useMemo(() => getNativeHeatMap(), []);\n const { data, ...restProps } = props;\n const normalizedData = React.useMemo(() => normalizeHeatMapData(data), [data]);\n\n return (\n <NativeHeatMap\n data={normalizedData}\n {...restProps}\n collapsable={false}\n pointerEvents=\"none\"\n style={styles.hidden}\n />\n );\n}\n\nconst styles = StyleSheet.create({\n hidden: {\n width: 0,\n height: 0,\n backgroundColor: 'transparent',\n },\n});\n\nfunction normalizeHeatMapData(data: HeatMapProps['data']): NativeHeatMapPoint[] {\n return data.map((point) => {\n const normalized = normalizeLatLng(point);\n if (Array.isArray(point)) {\n return {\n ...normalized,\n intensity: typeof point[2] === 'number' ? point[2] : undefined,\n };\n }\n\n const extra = point as Partial<NativeHeatMapPoint>;\n return {\n ...normalized,\n intensity: typeof extra.intensity === 'number' ? extra.intensity : undefined,\n weight: typeof extra.weight === 'number' ? extra.weight : undefined,\n count: typeof extra.count === 'number' ? extra.count : undefined,\n value: typeof extra.value === 'number' ? extra.value : undefined,\n };\n });\n}\n\nexport default React.memo(HeatMap);\n"]}
package/build/index.d.ts CHANGED
@@ -33,5 +33,8 @@ export type { OfflineMapInfo, OfflineMapStatus, OfflineMapDownloadConfig, Offlin
33
33
  export declare const useLocationPermissions: (options?: import("expo-modules-core").PermissionHookOptions<object> | undefined) => [import("./types").PermissionStatus | null, () => Promise<import("./types").PermissionStatus>, () => Promise<import("./types").PermissionStatus>];
34
34
  export { getSDKConfig, getWebKey } from './ExpoGaodeMapModule';
35
35
  export { buildLatLngBounds, fitCameraToCoordinates, getRouteBounds, parseMultiRingPolyline, } from './utils/RouteUtils';
36
+ export { initSearch, searchPOI, searchNearby, searchAlong, searchPolygon, getInputTips, reGeocode, getPoiDetail, SearchType, } from './search';
37
+ export type { Coordinates as SearchCoordinates, POI, POISearchOptions, NearbySearchOptions, AlongSearchOptions, PolygonSearchOptions, InputTipsOptions, InputTip, SearchResult, InputTipsResult, ReGeocodeOptions, ReGeocodeResult, AddressComponent, Road, RoadCross, AOI, RoutePOIType, } from './search';
38
+ export { default as Search } from './search';
36
39
  export { default } from './ExpoGaodeMapModule';
37
40
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,eAAe,EACf,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AAGjC,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAGrE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,EACL,MAAM,EACN,QAAQ,EACR,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAU,EACV,OAAO,GACR,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,YAAY,EACZ,WAAW,EACX,aAAa,EACb,SAAS,GACV,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,eAAe,EACf,WAAW,EACX,QAAQ,EACR,UAAU,EACV,MAAM,GACP,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG1E,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,iBAAiB,wBAAkB,CAAC;AAGjD,OAAO,EACL,eAAe,EACf,cAAc,GACf,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,oBAAoB,EACpB,cAAc,GACf,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAEjF,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAM/B;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,wOAGjC,CAAA;AAGF,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,eAAe,EACf,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AAGjC,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAGrE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,EACL,MAAM,EACN,QAAQ,EACR,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAU,EACV,OAAO,GACR,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,YAAY,EACZ,WAAW,EACX,aAAa,EACb,SAAS,GACV,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,eAAe,EACf,WAAW,EACX,QAAQ,EACR,UAAU,EACV,MAAM,GACP,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG1E,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,iBAAiB,wBAAkB,CAAC;AAGjD,OAAO,EACL,eAAe,EACf,cAAc,GACf,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,oBAAoB,EACpB,cAAc,GACf,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAEjF,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAM/B;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,wOAGjC,CAAA;AAGF,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EACX,aAAa,EACb,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,UAAU,GACX,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,WAAW,IAAI,iBAAiB,EAChC,GAAG,EACH,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,IAAI,EACJ,SAAS,EACT,GAAG,EACH,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAG7C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC"}
package/build/index.js CHANGED
@@ -46,6 +46,9 @@ export const useLocationPermissions = createPermissionHook({
46
46
  // 导出便捷读取的 SDK 配置与 webKey
47
47
  export { getSDKConfig, getWebKey } from './ExpoGaodeMapModule';
48
48
  export { buildLatLngBounds, fitCameraToCoordinates, getRouteBounds, parseMultiRingPolyline, } from './utils/RouteUtils';
49
+ // 导出内置搜索 API
50
+ export { initSearch, searchPOI, searchNearby, searchAlong, searchPolygon, getInputTips, reGeocode, getPoiDetail, SearchType, } from './search';
51
+ export { default as Search } from './search';
49
52
  // 默认导出原生模块
50
53
  export { default } from './ExpoGaodeMapModule';
51
54
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,6BAA6B,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,eAAe,EACf,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,mBAAmB;AACnB,cAAc,SAAS,CAAC;AACxB,SAAS;AACT,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAErE,WAAW;AACX,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,UAAU;AACV,OAAO,EACL,MAAM,EACN,QAAQ,EACR,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAU,EACV,OAAO,GACR,MAAM,uBAAuB,CAAC;AAE/B,WAAW;AACX,OAAO,EACL,YAAY,EACZ,WAAW,EACX,aAAa,EACb,SAAS,GACV,MAAM,sBAAsB,CAAC;AAG9B,WAAW;AACX,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,eAAe,EACf,WAAW,EACX,QAAQ,EACR,UAAU,EACV,MAAM,GACP,MAAM,0BAA0B,CAAC;AAGlC,gDAAgD;AAChD,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAEjD,YAAY;AACZ,OAAO,EACL,eAAe,EACf,cAAc,GACf,MAAM,8BAA8B,CAAC;AAMtC,aAAa;AACb,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAejF,MAAM,uBAAuB,GAAG,6BAA6B,CAAC,yBAAyB,CAAA;AACvF,MAAM,mBAAmB,GAAG,6BAA6B,CAAC,uBAAuB,CAAA;AAGjF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;IACzD,SAAS,EAAE,mBAAmB;IAC9B,aAAa,EAAE,uBAAuB;CACvC,CAAC,CAAA;AAEF,yBAAyB;AACzB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,WAAW;AACX,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC","sourcesContent":["\nimport { createPermissionHook } from 'expo-modules-core';\nimport ExpoGaodeMapModuleWithHelpers from './ExpoGaodeMapModule';\nimport {\n PermissionUtils,\n LocationPermissionType,\n} from './utils/PermissionUtils';\n\n// 导出类型定义(包含所有通用类型)\nexport * from './types';\n// 导出原生模块\nexport { default as ExpoGaodeMapModule } from './ExpoGaodeMapModule';\n\n// 导出地图视图组件\nexport { default as MapView } from './ExpoGaodeMapView';\nexport { useMap } from './components/MapContext';\nexport { MapUI } from './components/MapUI';\nexport { RouteOverlay } from './components/RouteOverlay';\nexport { AreaMaskOverlay } from './components/AreaMaskOverlay';\nexport { useRoutePlayback } from './hooks/useRoutePlayback';\n\n// 导出覆盖物组件\nexport {\n Marker,\n Polyline,\n Polygon,\n Circle,\n HeatMap,\n MultiPoint,\n Cluster,\n} from './components/overlays';\n\n// 导出错误处理工具\nexport {\n ErrorHandler,\n ErrorLogger,\n GaodeMapError,\n ErrorType,\n} from './utils/ErrorHandler';\nexport type { ErrorDetails } from './utils/ErrorHandler';\n\n// 导出平台检测工具\nexport {\n PlatformDetector,\n DeviceType,\n FoldState,\n isAndroid14Plus,\n isiOS17Plus,\n isTablet,\n isFoldable,\n isIPad,\n} from './utils/PlatformDetector';\nexport type { DeviceInfo, SystemVersion } from './utils/PlatformDetector';\n\n// 导出权限工具类(仅提供文案和诊断,实际权限请求使用 ExpoGaodeMapModule)\nexport { PermissionUtils, LocationPermissionType };\n\n/**\n * @deprecated 请使用 `PermissionUtils`\n */\nexport const PermissionManager = PermissionUtils;\n\n// 导出折叠屏适配组件\nexport {\n FoldableMapView,\n useFoldableMap,\n} from './components/FoldableMapView';\nexport type {\n FoldableMapViewProps,\n FoldableConfig,\n} from './components/FoldableMapView';\n\n// 导出离线地图 API\nexport { default as ExpoGaodeMapOfflineModule } from './utils/OfflineMapManager';\n\nexport type {\n OfflineMapInfo,\n OfflineMapStatus,\n OfflineMapDownloadConfig,\n OfflineMapDownloadEvent,\n OfflineMapCompleteEvent,\n OfflineMapErrorEvent,\n OfflineMapPausedEvent,\n OfflineMapCancelledEvent,\n OfflineMapStorageInfo,\n OfflineMapEvents,\n} from './types/offline.types';\n\nconst requestPermissionsAsync = ExpoGaodeMapModuleWithHelpers.requestLocationPermission\nconst getPermissionsAsync = ExpoGaodeMapModuleWithHelpers.checkLocationPermission\n\n\n/**\n * Check or request permissions to access the location.\n * This uses both `requestPermissionsAsync` and `getPermissionsAsync` to interact with the permissions.\n *\n * @example\n * ```ts\n * const [status, requestPermission] = useLocationPermissions();\n * ```\n */\nexport const useLocationPermissions = createPermissionHook({\n getMethod: getPermissionsAsync,\n requestMethod: requestPermissionsAsync,\n})\n\n// 导出便捷读取的 SDK 配置与 webKey\nexport { getSDKConfig, getWebKey } from './ExpoGaodeMapModule';\nexport {\n buildLatLngBounds,\n fitCameraToCoordinates,\n getRouteBounds,\n parseMultiRingPolyline,\n} from './utils/RouteUtils';\n\n// 默认导出原生模块\nexport { default } from './ExpoGaodeMapModule';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,6BAA6B,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,eAAe,EACf,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,mBAAmB;AACnB,cAAc,SAAS,CAAC;AACxB,SAAS;AACT,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAErE,WAAW;AACX,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,UAAU;AACV,OAAO,EACL,MAAM,EACN,QAAQ,EACR,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAU,EACV,OAAO,GACR,MAAM,uBAAuB,CAAC;AAE/B,WAAW;AACX,OAAO,EACL,YAAY,EACZ,WAAW,EACX,aAAa,EACb,SAAS,GACV,MAAM,sBAAsB,CAAC;AAG9B,WAAW;AACX,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,eAAe,EACf,WAAW,EACX,QAAQ,EACR,UAAU,EACV,MAAM,GACP,MAAM,0BAA0B,CAAC;AAGlC,gDAAgD;AAChD,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAEjD,YAAY;AACZ,OAAO,EACL,eAAe,EACf,cAAc,GACf,MAAM,8BAA8B,CAAC;AAMtC,aAAa;AACb,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAejF,MAAM,uBAAuB,GAAG,6BAA6B,CAAC,yBAAyB,CAAA;AACvF,MAAM,mBAAmB,GAAG,6BAA6B,CAAC,uBAAuB,CAAA;AAGjF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;IACzD,SAAS,EAAE,mBAAmB;IAC9B,aAAa,EAAE,uBAAuB;CACvC,CAAC,CAAA;AAEF,yBAAyB;AACzB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,aAAa;AACb,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EACX,aAAa,EACb,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,UAAU,GACX,MAAM,UAAU,CAAC;AAoBlB,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAE7C,WAAW;AACX,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC","sourcesContent":["\nimport { createPermissionHook } from 'expo-modules-core';\nimport ExpoGaodeMapModuleWithHelpers from './ExpoGaodeMapModule';\nimport {\n PermissionUtils,\n LocationPermissionType,\n} from './utils/PermissionUtils';\n\n// 导出类型定义(包含所有通用类型)\nexport * from './types';\n// 导出原生模块\nexport { default as ExpoGaodeMapModule } from './ExpoGaodeMapModule';\n\n// 导出地图视图组件\nexport { default as MapView } from './ExpoGaodeMapView';\nexport { useMap } from './components/MapContext';\nexport { MapUI } from './components/MapUI';\nexport { RouteOverlay } from './components/RouteOverlay';\nexport { AreaMaskOverlay } from './components/AreaMaskOverlay';\nexport { useRoutePlayback } from './hooks/useRoutePlayback';\n\n// 导出覆盖物组件\nexport {\n Marker,\n Polyline,\n Polygon,\n Circle,\n HeatMap,\n MultiPoint,\n Cluster,\n} from './components/overlays';\n\n// 导出错误处理工具\nexport {\n ErrorHandler,\n ErrorLogger,\n GaodeMapError,\n ErrorType,\n} from './utils/ErrorHandler';\nexport type { ErrorDetails } from './utils/ErrorHandler';\n\n// 导出平台检测工具\nexport {\n PlatformDetector,\n DeviceType,\n FoldState,\n isAndroid14Plus,\n isiOS17Plus,\n isTablet,\n isFoldable,\n isIPad,\n} from './utils/PlatformDetector';\nexport type { DeviceInfo, SystemVersion } from './utils/PlatformDetector';\n\n// 导出权限工具类(仅提供文案和诊断,实际权限请求使用 ExpoGaodeMapModule)\nexport { PermissionUtils, LocationPermissionType };\n\n/**\n * @deprecated 请使用 `PermissionUtils`\n */\nexport const PermissionManager = PermissionUtils;\n\n// 导出折叠屏适配组件\nexport {\n FoldableMapView,\n useFoldableMap,\n} from './components/FoldableMapView';\nexport type {\n FoldableMapViewProps,\n FoldableConfig,\n} from './components/FoldableMapView';\n\n// 导出离线地图 API\nexport { default as ExpoGaodeMapOfflineModule } from './utils/OfflineMapManager';\n\nexport type {\n OfflineMapInfo,\n OfflineMapStatus,\n OfflineMapDownloadConfig,\n OfflineMapDownloadEvent,\n OfflineMapCompleteEvent,\n OfflineMapErrorEvent,\n OfflineMapPausedEvent,\n OfflineMapCancelledEvent,\n OfflineMapStorageInfo,\n OfflineMapEvents,\n} from './types/offline.types';\n\nconst requestPermissionsAsync = ExpoGaodeMapModuleWithHelpers.requestLocationPermission\nconst getPermissionsAsync = ExpoGaodeMapModuleWithHelpers.checkLocationPermission\n\n\n/**\n * Check or request permissions to access the location.\n * This uses both `requestPermissionsAsync` and `getPermissionsAsync` to interact with the permissions.\n *\n * @example\n * ```ts\n * const [status, requestPermission] = useLocationPermissions();\n * ```\n */\nexport const useLocationPermissions = createPermissionHook({\n getMethod: getPermissionsAsync,\n requestMethod: requestPermissionsAsync,\n})\n\n// 导出便捷读取的 SDK 配置与 webKey\nexport { getSDKConfig, getWebKey } from './ExpoGaodeMapModule';\nexport {\n buildLatLngBounds,\n fitCameraToCoordinates,\n getRouteBounds,\n parseMultiRingPolyline,\n} from './utils/RouteUtils';\n\n// 导出内置搜索 API\nexport {\n initSearch,\n searchPOI,\n searchNearby,\n searchAlong,\n searchPolygon,\n getInputTips,\n reGeocode,\n getPoiDetail,\n SearchType,\n} from './search';\nexport type {\n Coordinates as SearchCoordinates,\n POI,\n POISearchOptions,\n NearbySearchOptions,\n AlongSearchOptions,\n PolygonSearchOptions,\n InputTipsOptions,\n InputTip,\n SearchResult,\n InputTipsResult,\n ReGeocodeOptions,\n ReGeocodeResult,\n AddressComponent,\n Road,\n RoadCross,\n AOI,\n RoutePOIType,\n} from './search';\nexport { default as Search } from './search';\n\n// 默认导出原生模块\nexport { default } from './ExpoGaodeMapModule';\n"]}
@@ -0,0 +1,340 @@
1
+ /**
2
+ * 搜索类型
3
+ */
4
+ export declare enum SearchType {
5
+ /** POI 搜索 */
6
+ POI = "poi",
7
+ /** 周边搜索 */
8
+ NEARBY = "nearby",
9
+ /** 沿途搜索 */
10
+ ALONG = "along",
11
+ /** 多边形搜索 */
12
+ POLYGON = "polygon",
13
+ /** 输入提示 */
14
+ INPUT_TIPS = "inputTips",
15
+ /** 逆地理编码 */
16
+ RE_GEOCODE = "reGeocode"
17
+ }
18
+ /**
19
+ * 沿途搜索支持的 POI 类型。
20
+ *
21
+ * 高德沿途搜索 SDK 不是通用 POI 搜索,只支持这些固定类型。
22
+ */
23
+ export type RoutePOIType = 'gasStation' | 'maintenanceStation' | 'atm' | 'toilet' | 'gasAirStation' | 'serviceArea' | 'chargingPile' | 'food' | 'hotel';
24
+ /**
25
+ * 坐标点
26
+ */
27
+ export interface Coordinates {
28
+ latitude: number;
29
+ longitude: number;
30
+ }
31
+ /**
32
+ * POI 信息
33
+ */
34
+ export interface POI {
35
+ /** POI ID */
36
+ id: string;
37
+ /** 名称 */
38
+ name: string;
39
+ /** 地址 */
40
+ address: string;
41
+ /** 坐标 */
42
+ location: Coordinates;
43
+ /** 类型编码 */
44
+ typeCode: string;
45
+ /** 类型描述 */
46
+ typeDes: string;
47
+ /** 电话 */
48
+ tel?: string;
49
+ /** 距离(米),仅周边搜索返回 */
50
+ distance?: number;
51
+ /** 城市名称 */
52
+ cityName?: string;
53
+ /** 城市编码 */
54
+ cityCode?: string;
55
+ /** 省份名称 */
56
+ provinceName?: string;
57
+ /** 区域名称 */
58
+ adName?: string;
59
+ /** 区域编码 */
60
+ adCode?: string;
61
+ /**
62
+ * 深度信息 (Android SDK V9.4.0+ 新增)
63
+ * 包含评分、营业时间、人均消费等扩展信息
64
+ */
65
+ business?: {
66
+ opentime?: string;
67
+ opentimeToday?: string;
68
+ rating?: string;
69
+ cost?: string;
70
+ parkingType?: string;
71
+ tag?: string;
72
+ tel?: string;
73
+ alias?: string;
74
+ businessArea?: string;
75
+ };
76
+ /**
77
+ * 图片信息
78
+ */
79
+ photos?: Array<{
80
+ title?: string;
81
+ url?: string;
82
+ }>;
83
+ /** 室内地图信息 */
84
+ indoor?: {
85
+ /** 楼层 */
86
+ floor?: string;
87
+ /** 楼层名称 */
88
+ floorName?: string;
89
+ /** POI ID */
90
+ poiId?: string;
91
+ /** 是否有室内地图 */
92
+ hasIndoorMap?: boolean;
93
+ };
94
+ }
95
+ /**
96
+ * 商圈信息
97
+ */
98
+ export interface BusinessArea {
99
+ /** 名称 */
100
+ name: string;
101
+ /** 中心坐标 */
102
+ location: Coordinates;
103
+ }
104
+ /**
105
+ * 地址组成要素
106
+ */
107
+ export interface AddressComponent {
108
+ /** 省名称 */
109
+ province: string;
110
+ /** 市名称 */
111
+ city: string;
112
+ /** 区名称 */
113
+ district: string;
114
+ /** 乡镇名称 */
115
+ township: string;
116
+ /** 社区名称 */
117
+ neighborhood: string;
118
+ /** 建筑名称 */
119
+ building: string;
120
+ /** 城市编码 */
121
+ cityCode: string;
122
+ /** 区域编码 */
123
+ adCode: string;
124
+ /** 门牌信息 */
125
+ streetNumber: {
126
+ /** 街道名称 */
127
+ street: string;
128
+ /** 门牌号 */
129
+ number: string;
130
+ /** 坐标点 */
131
+ location?: Coordinates;
132
+ /** 方向 */
133
+ direction: string;
134
+ /** 距离 */
135
+ distance: number;
136
+ };
137
+ /** 商圈列表 */
138
+ businessAreas?: BusinessArea[];
139
+ }
140
+ /**
141
+ * 道路信息
142
+ */
143
+ export interface Road {
144
+ /** 道路ID */
145
+ id: string;
146
+ /** 道路名称 */
147
+ name: string;
148
+ /** 距离 */
149
+ distance: number;
150
+ /** 方向 */
151
+ direction: string;
152
+ /** 坐标点 */
153
+ location: Coordinates;
154
+ }
155
+ /**
156
+ * 道路交叉口信息
157
+ */
158
+ export interface RoadCross {
159
+ /** 距离 */
160
+ distance: number;
161
+ /** 方向 */
162
+ direction: string;
163
+ /** 交叉口坐标 */
164
+ location: Coordinates;
165
+ /** 第一条道路ID */
166
+ firstId: string;
167
+ /** 第一条道路名称 */
168
+ firstName: string;
169
+ /** 第二条道路ID */
170
+ secondId: string;
171
+ /** 第二条道路名称 */
172
+ secondName: string;
173
+ }
174
+ /**
175
+ * 兴趣区域信息
176
+ */
177
+ export interface AOI {
178
+ /** AOI ID */
179
+ id: string;
180
+ /** AOI 名称 */
181
+ name: string;
182
+ /** 区域编码 */
183
+ adCode: string;
184
+ /** 中心点坐标 */
185
+ location: Coordinates;
186
+ /** 面积 */
187
+ area: number;
188
+ }
189
+ /**
190
+ * 逆地理编码选项
191
+ */
192
+ export interface ReGeocodeOptions {
193
+ /** 经纬度坐标 */
194
+ location: Coordinates;
195
+ /** 搜索半径,默认 1000 米 */
196
+ radius?: number;
197
+ /** 是否返回扩展信息,默认 true */
198
+ requireExtension?: boolean;
199
+ }
200
+ /**
201
+ * 逆地理编码结果
202
+ */
203
+ export interface ReGeocodeResult {
204
+ /** 格式化地址 */
205
+ formattedAddress: string;
206
+ /** 地址组成要素 */
207
+ addressComponent: AddressComponent;
208
+ /** 兴趣点列表 */
209
+ pois: POI[];
210
+ /** 道路列表 */
211
+ roads: Road[];
212
+ /** 道路交叉口列表 */
213
+ roadCrosses: RoadCross[];
214
+ /** 兴趣区域列表 */
215
+ aois: AOI[];
216
+ }
217
+ /**
218
+ * POI 搜索选项
219
+ */
220
+ export interface POISearchOptions {
221
+ /** 搜索关键词 */
222
+ keyword: string;
223
+ /** 城市名称或城市编码(可选) */
224
+ city?: string;
225
+ /** POI 类型(可选),多个类型用 | 分隔 */
226
+ types?: string;
227
+ /** 每页记录数,默认 20,最大 50 */
228
+ pageSize?: number;
229
+ /** 当前页码,从 1 开始,默认 1 */
230
+ pageNum?: number;
231
+ /** 是否按照距离排序,需要设置中心点 */
232
+ sortByDistance?: boolean;
233
+ /** 中心点坐标,用于距离排序或周边搜索 */
234
+ center?: Coordinates;
235
+ }
236
+ /**
237
+ * 周边搜索选项
238
+ */
239
+ export interface NearbySearchOptions {
240
+ /** 搜索关键词 */
241
+ keyword: string;
242
+ /** 中心点坐标 */
243
+ center: Coordinates;
244
+ /** 搜索半径,单位:米,默认 1000,最大 50000 */
245
+ radius?: number;
246
+ /** POI 类型(可选),多个类型用 | 分隔 */
247
+ types?: string;
248
+ /** 每页记录数,默认 20,最大 50 */
249
+ pageSize?: number;
250
+ /** 当前页码,从 1 开始,默认 1 */
251
+ pageNum?: number;
252
+ }
253
+ /**
254
+ * 沿途搜索选项
255
+ */
256
+ export interface AlongSearchOptions {
257
+ /** 搜索关键词 */
258
+ keyword: string;
259
+ /** 路线坐标点数组 */
260
+ polyline: Coordinates[];
261
+ /** 沿途搜索类型。高德 SDK 只支持固定类型,建议显式传入此字段。 */
262
+ routePoiType?: RoutePOIType;
263
+ /** 搜索范围,单位:米,默认 250,最大 500 */
264
+ range?: number;
265
+ /**
266
+ * @deprecated 沿途搜索不是通用 POI 类型搜索,请使用 routePoiType。
267
+ * 为兼容旧代码,仅接受与 RoutePOIType 相同的字符串。
268
+ */
269
+ types?: string;
270
+ }
271
+ /**
272
+ * 多边形搜索选项
273
+ */
274
+ export interface PolygonSearchOptions {
275
+ /** 搜索关键词 */
276
+ keyword: string;
277
+ /** 多边形顶点坐标数组 */
278
+ polygon: Coordinates[];
279
+ /** POI 类型(可选),多个类型用 | 分隔 */
280
+ types?: string;
281
+ /** 每页记录数,默认 20,最大 50 */
282
+ pageSize?: number;
283
+ /** 当前页码,从 1 开始,默认 1 */
284
+ pageNum?: number;
285
+ }
286
+ /**
287
+ * 输入提示选项
288
+ */
289
+ export interface InputTipsOptions {
290
+ /** 关键词 */
291
+ keyword: string;
292
+ /** 城市名称或城市编码(可选) */
293
+ city?: string;
294
+ /** POI 类型(可选),多个类型用 | 分隔 */
295
+ types?: string;
296
+ /** 是否强制限制在 city 内,默认 false */
297
+ cityLimit?: boolean;
298
+ }
299
+ /**
300
+ * 输入提示结果
301
+ */
302
+ export interface InputTip {
303
+ /** 提示 ID */
304
+ id: string;
305
+ /** 名称 */
306
+ name: string;
307
+ /** 地址 */
308
+ address: string;
309
+ /** 坐标(可能为空) */
310
+ location?: Coordinates;
311
+ /** 类型编码 */
312
+ typeCode?: string;
313
+ /** 城市名称 */
314
+ cityName?: string;
315
+ /** 区域名称 */
316
+ adName?: string;
317
+ }
318
+ /**
319
+ * 搜索结果
320
+ */
321
+ export interface SearchResult {
322
+ /** POI 列表 */
323
+ pois: POI[];
324
+ /** 总记录数 */
325
+ total: number;
326
+ /** 当前页码 */
327
+ pageNum: number;
328
+ /** 每页记录数 */
329
+ pageSize: number;
330
+ /** 总页数 */
331
+ pageCount: number;
332
+ }
333
+ /**
334
+ * 输入提示结果
335
+ */
336
+ export interface InputTipsResult {
337
+ /** 提示列表 */
338
+ tips: InputTip[];
339
+ }
340
+ //# sourceMappingURL=ExpoGaodeMapSearch.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpoGaodeMapSearch.types.d.ts","sourceRoot":"","sources":["../../src/search/ExpoGaodeMapSearch.types.ts"],"names":[],"mappings":"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"}