expo-gaode-map-navigation 2.0.12-next.0 → 2.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +296 -7
- package/android/build.gradle +12 -4
- package/android/src/main/AndroidManifest.xml +10 -1
- package/android/src/main/cpp/cluster_jni.cpp +56 -0
- package/android/src/main/java/expo/modules/gaodemap/map/ExpoGaodeMapModule.kt +49 -8
- package/android/src/main/java/expo/modules/gaodemap/map/ExpoGaodeMapOfflineModule.kt +83 -15
- package/android/src/main/java/expo/modules/gaodemap/map/ExpoGaodeMapView.kt +13 -3
- package/android/src/main/java/expo/modules/gaodemap/map/managers/UIManager.kt +36 -39
- package/android/src/main/java/expo/modules/gaodemap/map/modules/SDKInitializer.kt +23 -17
- package/android/src/main/java/expo/modules/gaodemap/map/overlays/ClusterView.kt +5 -2
- package/android/src/main/java/expo/modules/gaodemap/map/overlays/HeatMapView.kt +122 -10
- package/android/src/main/java/expo/modules/gaodemap/map/overlays/HeatMapViewModule.kt +2 -2
- package/android/src/main/java/expo/modules/gaodemap/map/overlays/MarkerView.kt +37 -25
- package/android/src/main/java/expo/modules/gaodemap/map/overlays/MarkerViewModule.kt +6 -6
- package/android/src/main/java/expo/modules/gaodemap/map/search/ExpoGaodeMapSearchModule.kt +751 -0
- package/android/src/main/java/expo/modules/gaodemap/map/utils/GeometryUtils.kt +103 -0
- package/android/src/main/java/expo/modules/gaodemap/navigation/ExpoGaodeMapNaviView.kt +1408 -394
- package/android/src/main/java/expo/modules/gaodemap/navigation/ExpoGaodeMapNaviViewModule.kt +121 -1
- package/android/src/main/java/expo/modules/gaodemap/navigation/ExpoGaodeMapNavigationModule.kt +14 -28
- package/android/src/main/java/expo/modules/gaodemap/navigation/listeners/IndependentRouteListener.kt +28 -3
- package/android/src/main/java/expo/modules/gaodemap/navigation/listeners/RouteCalculateListener.kt +2 -2
- package/android/src/main/java/expo/modules/gaodemap/navigation/managers/IndependentRouteManager.kt +114 -15
- package/android/src/main/java/expo/modules/gaodemap/navigation/routes/drive/DriveTruckRouteCalculator.kt +24 -35
- package/android/src/main/java/expo/modules/gaodemap/navigation/services/IndependentRouteService.kt +50 -36
- package/android/src/main/java/expo/modules/gaodemap/navigation/services/NavigationForegroundService.kt +661 -0
- package/android/src/main/java/expo/modules/gaodemap/navigation/utils/Converters.kt +21 -12
- package/android/src/main/res/drawable/ic_nav_notification_small.xml +10 -0
- package/android/src/main/res/drawable/landback_0.png +0 -0
- package/android/src/main/res/drawable/landback_1.png +0 -0
- package/android/src/main/res/drawable/landback_2.png +0 -0
- package/android/src/main/res/drawable/landback_3.png +0 -0
- package/android/src/main/res/drawable/landback_4.png +0 -0
- package/android/src/main/res/drawable/landback_5.png +0 -0
- package/android/src/main/res/drawable/landback_6.png +0 -0
- package/android/src/main/res/drawable/landback_7.png +0 -0
- package/android/src/main/res/drawable/landback_8.png +0 -0
- package/android/src/main/res/drawable/landback_9.png +0 -0
- package/android/src/main/res/drawable/landback_a.png +0 -0
- package/android/src/main/res/drawable/landback_b.png +0 -0
- package/android/src/main/res/drawable/landback_c.png +0 -0
- package/android/src/main/res/drawable/landback_d.png +0 -0
- package/android/src/main/res/drawable/landback_e.png +0 -0
- package/android/src/main/res/drawable/landback_f.png +0 -0
- package/android/src/main/res/drawable/landback_g.png +0 -0
- package/android/src/main/res/drawable/landback_h.png +0 -0
- package/android/src/main/res/drawable/landback_i.png +0 -0
- package/android/src/main/res/drawable/landback_j.png +0 -0
- package/android/src/main/res/drawable/landback_k.png +0 -0
- package/android/src/main/res/drawable/landback_l.png +0 -0
- package/android/src/main/res/drawable/landfront_0.png +0 -0
- package/android/src/main/res/drawable/landfront_00.png +0 -0
- package/android/src/main/res/drawable/landfront_1.png +0 -0
- package/android/src/main/res/drawable/landfront_11.png +0 -0
- package/android/src/main/res/drawable/landfront_20.png +0 -0
- package/android/src/main/res/drawable/landfront_21.png +0 -0
- package/android/src/main/res/drawable/landfront_22.png +0 -0
- package/android/src/main/res/drawable/landfront_3.png +0 -0
- package/android/src/main/res/drawable/landfront_33.png +0 -0
- package/android/src/main/res/drawable/landfront_40.png +0 -0
- package/android/src/main/res/drawable/landfront_43.png +0 -0
- package/android/src/main/res/drawable/landfront_44.png +0 -0
- package/android/src/main/res/drawable/landfront_5.png +0 -0
- package/android/src/main/res/drawable/landfront_55.png +0 -0
- package/android/src/main/res/drawable/landfront_61.png +0 -0
- package/android/src/main/res/drawable/landfront_63.png +0 -0
- package/android/src/main/res/drawable/landfront_66.png +0 -0
- package/android/src/main/res/drawable/landfront_70.png +0 -0
- package/android/src/main/res/drawable/landfront_71.png +0 -0
- package/android/src/main/res/drawable/landfront_73.png +0 -0
- package/android/src/main/res/drawable/landfront_77.png +0 -0
- package/android/src/main/res/drawable/landfront_8.png +0 -0
- package/android/src/main/res/drawable/landfront_88.png +0 -0
- package/android/src/main/res/drawable/landfront_90.png +0 -0
- package/android/src/main/res/drawable/landfront_95.png +0 -0
- package/android/src/main/res/drawable/landfront_99.png +0 -0
- package/android/src/main/res/drawable/landfront_a0.png +0 -0
- package/android/src/main/res/drawable/landfront_a8.png +0 -0
- package/android/src/main/res/drawable/landfront_aa.png +0 -0
- package/android/src/main/res/drawable/landfront_b1.png +0 -0
- package/android/src/main/res/drawable/landfront_b5.png +0 -0
- package/android/src/main/res/drawable/landfront_bb.png +0 -0
- package/android/src/main/res/drawable/landfront_c3.png +0 -0
- package/android/src/main/res/drawable/landfront_c8.png +0 -0
- package/android/src/main/res/drawable/landfront_cc.png +0 -0
- package/android/src/main/res/drawable/landfront_d.png +0 -0
- package/android/src/main/res/drawable/landfront_dd.png +0 -0
- package/android/src/main/res/drawable/landfront_e1.png +0 -0
- package/android/src/main/res/drawable/landfront_e5.png +0 -0
- package/android/src/main/res/drawable/landfront_ee.png +0 -0
- package/android/src/main/res/drawable/landfront_f0.png +0 -0
- package/android/src/main/res/drawable/landfront_f1.png +0 -0
- package/android/src/main/res/drawable/landfront_f5.png +0 -0
- package/android/src/main/res/drawable/landfront_ff.png +0 -0
- package/android/src/main/res/drawable/landfront_g3.png +0 -0
- package/android/src/main/res/drawable/landfront_g5.png +0 -0
- package/android/src/main/res/drawable/landfront_gg.png +0 -0
- package/android/src/main/res/drawable/landfront_h1.png +0 -0
- package/android/src/main/res/drawable/landfront_h3.png +0 -0
- package/android/src/main/res/drawable/landfront_h5.png +0 -0
- package/android/src/main/res/drawable/landfront_hh.png +0 -0
- package/android/src/main/res/drawable/landfront_i0.png +0 -0
- package/android/src/main/res/drawable/landfront_i3.png +0 -0
- package/android/src/main/res/drawable/landfront_i5.png +0 -0
- package/android/src/main/res/drawable/landfront_ii.png +0 -0
- package/android/src/main/res/drawable/landfront_j1.png +0 -0
- package/android/src/main/res/drawable/landfront_j8.png +0 -0
- package/android/src/main/res/drawable/landfront_jj.png +0 -0
- package/android/src/main/res/drawable/landfront_kk.png +0 -0
- package/android/src/main/res/drawable/landfront_ll.png +0 -0
- package/android/src/main/res/drawable/nav_notification_brand_icon.xml +16 -0
- package/android/src/main/res/drawable/navi_arrow_leftline.png +0 -0
- package/android/src/main/res/drawable/navi_lane_shape_bg_center.xml +5 -0
- package/android/src/main/res/drawable/navi_lane_shape_bg_left.xml +8 -0
- package/android/src/main/res/drawable/navi_lane_shape_bg_over.xml +6 -0
- package/android/src/main/res/drawable/navi_lane_shape_bg_right.xml +8 -0
- package/android/src/main/res/drawable-nodpi/nav_tracker_car.png +0 -0
- package/build/ExpoGaodeMapNaviView.d.ts +16 -0
- package/build/ExpoGaodeMapNaviView.d.ts.map +1 -1
- package/build/ExpoGaodeMapNaviView.js +74 -1
- package/build/ExpoGaodeMapNaviView.js.map +1 -1
- package/build/index.d.ts +56 -8
- package/build/index.d.ts.map +1 -1
- package/build/index.js +452 -10
- package/build/index.js.map +1 -1
- package/build/map/ExpoGaodeMapModule.d.ts +15 -13
- package/build/map/ExpoGaodeMapModule.d.ts.map +1 -1
- package/build/map/ExpoGaodeMapModule.js +31 -39
- package/build/map/ExpoGaodeMapModule.js.map +1 -1
- package/build/map/ExpoGaodeMapOfflineModule.d.ts +5 -0
- package/build/map/ExpoGaodeMapOfflineModule.d.ts.map +1 -1
- package/build/map/ExpoGaodeMapOfflineModule.js.map +1 -1
- package/build/map/ExpoGaodeMapView.d.ts +3 -4
- package/build/map/ExpoGaodeMapView.d.ts.map +1 -1
- package/build/map/ExpoGaodeMapView.js +28 -25
- package/build/map/ExpoGaodeMapView.js.map +1 -1
- package/build/map/components/overlays/Circle.d.ts.map +1 -1
- package/build/map/components/overlays/Circle.js +1 -30
- package/build/map/components/overlays/Circle.js.map +1 -1
- package/build/map/components/overlays/Cluster.d.ts.map +1 -1
- package/build/map/components/overlays/Cluster.js +1 -42
- package/build/map/components/overlays/Cluster.js.map +1 -1
- package/build/map/components/overlays/HeatMap.d.ts.map +1 -1
- package/build/map/components/overlays/HeatMap.js +21 -21
- package/build/map/components/overlays/HeatMap.js.map +1 -1
- package/build/map/components/overlays/Marker.d.ts.map +1 -1
- package/build/map/components/overlays/Marker.js +76 -80
- package/build/map/components/overlays/Marker.js.map +1 -1
- package/build/map/components/overlays/Polygon.d.ts.map +1 -1
- package/build/map/components/overlays/Polygon.js +1 -25
- package/build/map/components/overlays/Polygon.js.map +1 -1
- package/build/map/components/overlays/Polyline.d.ts.map +1 -1
- package/build/map/components/overlays/Polyline.js +1 -31
- package/build/map/components/overlays/Polyline.js.map +1 -1
- package/build/map/index.d.ts +9 -2
- package/build/map/index.d.ts.map +1 -1
- package/build/map/index.js +9 -2
- package/build/map/index.js.map +1 -1
- package/build/map/search/ExpoGaodeMapSearch.types.d.ts +340 -0
- package/build/map/search/ExpoGaodeMapSearch.types.d.ts.map +1 -0
- package/build/map/search/ExpoGaodeMapSearch.types.js +19 -0
- package/build/map/search/ExpoGaodeMapSearch.types.js.map +1 -0
- package/build/map/search/ExpoGaodeMapSearchModule.d.ts +74 -0
- package/build/map/search/ExpoGaodeMapSearchModule.d.ts.map +1 -0
- package/build/map/search/ExpoGaodeMapSearchModule.js +47 -0
- package/build/map/search/ExpoGaodeMapSearchModule.js.map +1 -0
- package/build/map/search/index.d.ts +156 -0
- package/build/map/search/index.d.ts.map +1 -0
- package/build/map/search/index.js +171 -0
- package/build/map/search/index.js.map +1 -0
- package/build/map/types/index.d.ts +2 -2
- package/build/map/types/index.d.ts.map +1 -1
- package/build/map/types/index.js.map +1 -1
- package/build/map/types/map-view.types.d.ts +4 -2
- package/build/map/types/map-view.types.d.ts.map +1 -1
- package/build/map/types/map-view.types.js.map +1 -1
- package/build/map/types/native-module.types.d.ts +11 -12
- package/build/map/types/native-module.types.d.ts.map +1 -1
- package/build/map/types/native-module.types.js.map +1 -1
- package/build/map/types/overlays.types.d.ts +9 -14
- package/build/map/types/overlays.types.d.ts.map +1 -1
- package/build/map/types/overlays.types.js.map +1 -1
- package/build/map/types/route-playback.types.d.ts +16 -0
- package/build/map/types/route-playback.types.d.ts.map +1 -1
- package/build/map/types/route-playback.types.js.map +1 -1
- package/build/map/utils/ErrorHandler.js +11 -11
- package/build/map/utils/ErrorHandler.js.map +1 -1
- package/build/map/utils/OfflineMapManager.d.ts +4 -0
- package/build/map/utils/OfflineMapManager.d.ts.map +1 -1
- package/build/map/utils/OfflineMapManager.js +6 -0
- package/build/map/utils/OfflineMapManager.js.map +1 -1
- package/build/types/coordinates.types.d.ts +3 -0
- package/build/types/coordinates.types.d.ts.map +1 -1
- package/build/types/coordinates.types.js.map +1 -1
- package/build/types/independent.types.d.ts +111 -12
- package/build/types/independent.types.d.ts.map +1 -1
- package/build/types/independent.types.js.map +1 -1
- package/build/types/native-module.types.d.ts +1 -1
- package/build/types/native-module.types.js.map +1 -1
- package/build/types/naviview.types.d.ts +304 -14
- package/build/types/naviview.types.d.ts.map +1 -1
- package/build/types/naviview.types.js.map +1 -1
- package/build/types/route.types.d.ts +12 -2
- package/build/types/route.types.d.ts.map +1 -1
- package/build/types/route.types.js.map +1 -1
- package/expo-module.config.json +4 -2
- package/ios/ExpoGaodeMapNaviView.swift +2331 -201
- package/ios/ExpoGaodeMapNaviViewModule.swift +109 -1
- package/ios/ExpoGaodeMapNavigation.podspec +2 -1
- package/ios/ExpoGaodeMapNavigationModule.swift +7 -5
- package/ios/managers/IndependentRouteManager.swift +90 -26
- package/ios/map/ExpoGaodeMapModule.swift +72 -21
- package/ios/map/ExpoGaodeMapOfflineModule.swift +61 -0
- package/ios/map/ExpoGaodeMapSearchModule.swift +773 -0
- package/ios/map/ExpoGaodeMapView.swift +23 -5
- package/ios/map/GaodeMapPrivacyManager.swift +26 -18
- package/ios/map/cpp/GeometryEngine.cpp +112 -0
- package/ios/map/cpp/GeometryEngine.hpp +21 -0
- package/ios/map/modules/LocationManager.swift +37 -5
- package/ios/map/overlays/MarkerView.swift +11 -11
- package/ios/map/overlays/MarkerViewModule.swift +4 -4
- package/ios/map/overlays/PolylineView.swift +6 -12
- package/ios/map/utils/ClusterNative.h +8 -0
- package/ios/map/utils/ClusterNative.mm +27 -0
- package/ios/map/utils/PermissionManager.swift +115 -6
- package/ios/routes/drive/DriveTruckRouteCalculator.swift +165 -77
- package/ios/routes/walkride/WalkRideRouteCalculator.swift +127 -1
- package/ios/services/IndependentRouteService.swift +198 -39
- package/ios/services/NavigationLiveActivityAttributes.swift +48 -0
- package/ios/services/NavigationLiveActivityManager.swift +359 -0
- package/package.json +22 -7
- package/plugin/build/withGaodeMap.d.ts +8 -0
- package/plugin/build/withGaodeMap.js +60 -4
- package/scripts/check-expo-modules.js +68 -0
- package/shared/cpp/GeometryEngine.cpp +112 -0
- package/shared/cpp/GeometryEngine.hpp +21 -0
- package/widget-template/README.md +46 -0
- package/widget-template/ios/NavigationLiveActivityWidget.swift +367 -0
- package/android/src/main/java/expo/modules/gaodemap/navigation/managers/RouteCalculator.kt +0 -173
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
package expo.modules.gaodemap.navigation.managers
|
|
2
|
-
|
|
3
|
-
import android.content.Context
|
|
4
|
-
import com.amap.api.navi.AMapNavi
|
|
5
|
-
import com.amap.api.navi.model.AMapCarInfo
|
|
6
|
-
|
|
7
|
-
import expo.modules.kotlin.Promise
|
|
8
|
-
import expo.modules.gaodemap.navigation.ExpoGaodeMapNavigationModule
|
|
9
|
-
import expo.modules.gaodemap.navigation.utils.Converters
|
|
10
|
-
import expo.modules.gaodemap.navigation.listeners.RouteCalculateListener
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* 路径规划管理器
|
|
14
|
-
*
|
|
15
|
-
* 负责处理各种类型的路径规划:驾车、步行、骑行、公交、货车
|
|
16
|
-
*/
|
|
17
|
-
class RouteCalculator(
|
|
18
|
-
private val context: Context,
|
|
19
|
-
private val module: ExpoGaodeMapNavigationModule
|
|
20
|
-
) {
|
|
21
|
-
|
|
22
|
-
private var aMapNavi: AMapNavi? = null
|
|
23
|
-
private var routeListener: RouteCalculateListener? = null
|
|
24
|
-
|
|
25
|
-
init {
|
|
26
|
-
initNavi()
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
private fun initNavi() {
|
|
30
|
-
if (aMapNavi == null) {
|
|
31
|
-
aMapNavi = AMapNavi.getInstance(context)
|
|
32
|
-
routeListener = RouteCalculateListener(module)
|
|
33
|
-
aMapNavi?.addAMapNaviListener(routeListener)
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* 驾车路径规划
|
|
39
|
-
*/
|
|
40
|
-
fun calculateDriveRoute(options: Map<String, Any?>, promise: Promise) {
|
|
41
|
-
@Suppress("UNCHECKED_CAST")
|
|
42
|
-
val from = options["from"] as? Map<String, Any?>
|
|
43
|
-
@Suppress("UNCHECKED_CAST")
|
|
44
|
-
val to = options["to"] as? Map<String, Any?>
|
|
45
|
-
?: throw Exception("to is required")
|
|
46
|
-
|
|
47
|
-
val fromPoi = from?.let { Converters.parseNaviPoi(it) }
|
|
48
|
-
val toPoi = Converters.parseNaviPoi(to)
|
|
49
|
-
@Suppress("UNCHECKED_CAST")
|
|
50
|
-
val waypoints = Converters.parseWaypoints(options["waypoints"] as? List<Map<String, Any?>>)
|
|
51
|
-
|
|
52
|
-
// 支持两种策略传参:
|
|
53
|
-
// 1) 直接传 PathPlanningStrategy 的整型值:strategy
|
|
54
|
-
// 2) 传策略开关(建议):avoidCongestion/avoidHighway/avoidCost/prioritiseHighway
|
|
55
|
-
val strategy: Int = if (options.containsKey("strategy")) {
|
|
56
|
-
(options["strategy"] as? Number)?.toInt() ?: 0
|
|
57
|
-
} else {
|
|
58
|
-
val avoidCongestion = options["avoidCongestion"] as? Boolean ?: false
|
|
59
|
-
val avoidHighway = options["avoidHighway"] as? Boolean ?: false
|
|
60
|
-
val avoidCost = options["avoidCost"] as? Boolean ?: false
|
|
61
|
-
val prioritiseHighway = options["prioritiseHighway"] as? Boolean ?: false
|
|
62
|
-
try {
|
|
63
|
-
// 6.3+ multipleRoute 参数已无效,但保留 true 以获取多路线策略
|
|
64
|
-
aMapNavi?.strategyConvert(avoidCongestion, avoidHighway, avoidCost, prioritiseHighway, true) ?: 0
|
|
65
|
-
} catch (e: Exception) {
|
|
66
|
-
0
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// 若提供了车牌/限行信息,则在算路前设置车辆信息(小客车)
|
|
71
|
-
val carNumber = options["carNumber"] as? String
|
|
72
|
-
val restriction = options["restriction"] as? Boolean
|
|
73
|
-
if (carNumber != null || restriction != null) {
|
|
74
|
-
try {
|
|
75
|
-
val carInfo = AMapCarInfo().apply {
|
|
76
|
-
if (carNumber != null) setCarNumber(carNumber)
|
|
77
|
-
// 0=小客车;如为货车请使用 calculateTruckRoute 并设置 carType=1
|
|
78
|
-
setCarType("0")
|
|
79
|
-
if (restriction != null) setRestriction(restriction)
|
|
80
|
-
}
|
|
81
|
-
aMapNavi?.setCarInfo(carInfo)
|
|
82
|
-
} catch (_: Exception) {
|
|
83
|
-
// 忽略设置失败,不影响算路
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
routeListener?.currentPromise = promise
|
|
88
|
-
// 官方 API:POI 算路
|
|
89
|
-
aMapNavi?.calculateDriveRoute(fromPoi, toPoi, waypoints, strategy)
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* 步行路径规划(使用 NaviLatLng)
|
|
94
|
-
*/
|
|
95
|
-
fun calculateWalkRoute(options: Map<String, Any?>, promise: Promise) {
|
|
96
|
-
@Suppress("UNCHECKED_CAST")
|
|
97
|
-
val from = options["from"] as? Map<String, Any?>
|
|
98
|
-
?: throw Exception("from is required")
|
|
99
|
-
@Suppress("UNCHECKED_CAST")
|
|
100
|
-
val to = options["to"] as? Map<String, Any?>
|
|
101
|
-
?: throw Exception("to is required")
|
|
102
|
-
|
|
103
|
-
val fromLatLng = Converters.parseNaviLatLng(from)
|
|
104
|
-
val toLatLng = Converters.parseNaviLatLng(to)
|
|
105
|
-
|
|
106
|
-
routeListener?.currentPromise = promise
|
|
107
|
-
aMapNavi?.calculateWalkRoute(fromLatLng, toLatLng)
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* 骑行路径规划(使用 NaviLatLng)
|
|
112
|
-
*/
|
|
113
|
-
fun calculateRideRoute(options: Map<String, Any?>, promise: Promise) {
|
|
114
|
-
@Suppress("UNCHECKED_CAST")
|
|
115
|
-
val from = options["from"] as? Map<String, Any?>
|
|
116
|
-
?: throw Exception("from is required")
|
|
117
|
-
@Suppress("UNCHECKED_CAST")
|
|
118
|
-
val to = options["to"] as? Map<String, Any?>
|
|
119
|
-
?: throw Exception("to is required")
|
|
120
|
-
|
|
121
|
-
val fromLatLng = Converters.parseNaviLatLng(from)
|
|
122
|
-
val toLatLng = Converters.parseNaviLatLng(to)
|
|
123
|
-
|
|
124
|
-
routeListener?.currentPromise = promise
|
|
125
|
-
aMapNavi?.calculateRideRoute(fromLatLng, toLatLng)
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* 公交路径规划
|
|
130
|
-
* 注意:公交路径规划需要使用搜索服务,这里返回未实现错误
|
|
131
|
-
*/
|
|
132
|
-
fun calculateBusRoute(options: Map<String, Any?>, promise: Promise) {
|
|
133
|
-
promise.reject("NOT_IMPLEMENTED", "Bus route calculation requires search service", null)
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* 货车路径规划
|
|
138
|
-
*/
|
|
139
|
-
fun calculateTruckRoute(options: Map<String, Any?>, promise: Promise) {
|
|
140
|
-
// 货车路径规划:在算路前设置货车信息
|
|
141
|
-
try {
|
|
142
|
-
val carNumber = options["carNumber"] as? String
|
|
143
|
-
val restriction = options["restriction"] as? Boolean
|
|
144
|
-
val carInfo = AMapCarInfo().apply {
|
|
145
|
-
if (carNumber != null) setCarNumber(carNumber)
|
|
146
|
-
// 1=货车(CarType 为 1/3/5 均视为货车),这里取 1 作为通用值
|
|
147
|
-
setCarType("1")
|
|
148
|
-
if (restriction != null) setRestriction(restriction)
|
|
149
|
-
// 如需更精细的车型参数(轴数/长宽高/载重等),可在此扩展:
|
|
150
|
-
// setVehicleAxis("6"); setVehicleHeight("3.5"); setVehicleLength("7.3"); setVehicleWidth("2.5");
|
|
151
|
-
// setVehicleSize("4"); setVehicleLoad("25.99"); setVehicleWeight("20"); setVehicleLoadSwitch(true);
|
|
152
|
-
}
|
|
153
|
-
aMapNavi?.setCarInfo(carInfo)
|
|
154
|
-
} catch (_: Exception) {
|
|
155
|
-
// 忽略设置失败,不影响后续算路
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
// 复用驾车算路逻辑(含 strategyConvert)
|
|
159
|
-
calculateDriveRoute(options, promise)
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
fun destroy() {
|
|
163
|
-
aMapNavi?.removeAMapNaviListener(routeListener)
|
|
164
|
-
try {
|
|
165
|
-
// 官方建议:销毁单例释放资源
|
|
166
|
-
AMapNavi.destroy()
|
|
167
|
-
} catch (_: Exception) {
|
|
168
|
-
} finally {
|
|
169
|
-
aMapNavi = null
|
|
170
|
-
routeListener = null
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|