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
package/android/src/main/java/expo/modules/gaodemap/navigation/services/IndependentRouteService.kt
CHANGED
|
@@ -5,6 +5,7 @@ import com.amap.api.navi.AMapNavi
|
|
|
5
5
|
import com.amap.api.navi.model.AMapCarInfo
|
|
6
6
|
import com.amap.api.navi.model.NaviLatLng
|
|
7
7
|
import com.amap.api.navi.model.NaviPoi
|
|
8
|
+
import expo.modules.core.arguments.ReadableArguments
|
|
8
9
|
import expo.modules.gaodemap.navigation.ExpoGaodeMapNavigationModule
|
|
9
10
|
import expo.modules.gaodemap.navigation.listeners.IndependentRouteListener
|
|
10
11
|
import expo.modules.gaodemap.navigation.utils.Converters
|
|
@@ -25,32 +26,33 @@ class IndependentRouteService(
|
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
// 驾车(小客车)
|
|
28
|
-
fun independentDriveRoute(options:
|
|
29
|
+
fun independentDriveRoute(options: ReadableArguments, promise: Promise) {
|
|
29
30
|
try {
|
|
31
|
+
val rawOptions = options.toPlainMap()
|
|
30
32
|
val navi = AMapNavi.getInstance(context)
|
|
31
33
|
|
|
32
34
|
@Suppress("UNCHECKED_CAST")
|
|
33
|
-
val from =
|
|
35
|
+
val from = rawOptions["from"] as? Map<String, Any?>
|
|
34
36
|
@Suppress("UNCHECKED_CAST")
|
|
35
|
-
val to =
|
|
37
|
+
val to = rawOptions["to"] as? Map<String, Any?> ?: throw Exception("to is required")
|
|
36
38
|
|
|
37
39
|
val fromPoi = from?.let { Converters.parseNaviPoi(it) }
|
|
38
40
|
val toPoi = Converters.parseNaviPoi(to)
|
|
39
41
|
@Suppress("UNCHECKED_CAST")
|
|
40
|
-
val waypointsRaw =
|
|
42
|
+
val waypointsRaw = rawOptions["waypoints"] as? List<Map<String, Any?>>
|
|
41
43
|
val waypointsPoi = Converters.parseWaypoints(waypointsRaw)
|
|
42
44
|
|
|
43
|
-
val strategy = resolveDriveStrategy(navi,
|
|
45
|
+
val strategy = resolveDriveStrategy(navi, rawOptions)
|
|
44
46
|
|
|
45
|
-
val carNumber =
|
|
46
|
-
val restriction =
|
|
47
|
+
val carNumber = rawOptions["carNumber"] as? String
|
|
48
|
+
val restriction = rawOptions["restriction"] as? Boolean
|
|
47
49
|
if (carNumber != null || restriction != null) {
|
|
48
50
|
setCarInfo(navi, "0", carNumber, restriction)
|
|
49
51
|
}
|
|
50
52
|
|
|
51
53
|
val listener = IndependentRouteListener(module, promise)
|
|
52
|
-
val avoidPolygons = Converters.parseAvoidPolygons(
|
|
53
|
-
val avoidRoad = (
|
|
54
|
+
val avoidPolygons = Converters.parseAvoidPolygons(rawOptions["avoidPolygons"])
|
|
55
|
+
val avoidRoad = (rawOptions["avoidRoad"] as? String)?.trim()?.takeIf { it.isNotEmpty() }
|
|
54
56
|
val hasAvoidPolygon = avoidPolygons.isNotEmpty()
|
|
55
57
|
val hasAvoidRoad = !avoidRoad.isNullOrBlank()
|
|
56
58
|
|
|
@@ -92,7 +94,7 @@ class IndependentRouteService(
|
|
|
92
94
|
}
|
|
93
95
|
}
|
|
94
96
|
|
|
95
|
-
navi.independentCalculateRoute(
|
|
97
|
+
val success = navi.independentCalculateRoute(
|
|
96
98
|
fromPoi,
|
|
97
99
|
toPoi,
|
|
98
100
|
waypointsPoi,
|
|
@@ -100,31 +102,36 @@ class IndependentRouteService(
|
|
|
100
102
|
1, // 驾车
|
|
101
103
|
listener
|
|
102
104
|
)
|
|
105
|
+
|
|
106
|
+
if (!success) {
|
|
107
|
+
promise.reject("CALCULATE_ERROR", "独立驾车路线规划启动失败", null)
|
|
108
|
+
}
|
|
103
109
|
} catch (e: Exception) {
|
|
104
110
|
promise.reject("CALCULATE_ERROR", e.message, e)
|
|
105
111
|
}
|
|
106
112
|
}
|
|
107
113
|
|
|
108
114
|
// 货车
|
|
109
|
-
fun independentTruckRoute(options:
|
|
115
|
+
fun independentTruckRoute(options: ReadableArguments, promise: Promise) {
|
|
110
116
|
try {
|
|
117
|
+
val rawOptions = options.toPlainMap()
|
|
111
118
|
val navi = AMapNavi.getInstance(context)
|
|
112
119
|
|
|
113
|
-
val carNumber =
|
|
114
|
-
val restriction =
|
|
120
|
+
val carNumber = rawOptions["carNumber"] as? String
|
|
121
|
+
val restriction = rawOptions["restriction"] as? Boolean
|
|
115
122
|
setCarInfo(navi, "1", carNumber, restriction)
|
|
116
123
|
|
|
117
124
|
@Suppress("UNCHECKED_CAST")
|
|
118
|
-
val from =
|
|
125
|
+
val from = rawOptions["from"] as? Map<String, Any?>
|
|
119
126
|
@Suppress("UNCHECKED_CAST")
|
|
120
|
-
val to =
|
|
127
|
+
val to = rawOptions["to"] as? Map<String, Any?> ?: throw Exception("to is required")
|
|
121
128
|
|
|
122
129
|
val fromPoi = from?.let { Converters.parseNaviPoi(it) }
|
|
123
130
|
val toPoi = Converters.parseNaviPoi(to)
|
|
124
131
|
@Suppress("UNCHECKED_CAST")
|
|
125
|
-
val waypoints = Converters.parseWaypoints(
|
|
132
|
+
val waypoints = Converters.parseWaypoints(rawOptions["waypoints"] as? List<Map<String, Any?>>)
|
|
126
133
|
|
|
127
|
-
val strategy = resolveDriveStrategy(navi,
|
|
134
|
+
val strategy = resolveDriveStrategy(navi, rawOptions)
|
|
128
135
|
|
|
129
136
|
navi.independentCalculateRoute(
|
|
130
137
|
fromPoi, toPoi, waypoints, strategy,
|
|
@@ -137,23 +144,24 @@ class IndependentRouteService(
|
|
|
137
144
|
}
|
|
138
145
|
|
|
139
146
|
// 步行
|
|
140
|
-
fun independentWalkRoute(options:
|
|
147
|
+
fun independentWalkRoute(options: ReadableArguments, promise: Promise) {
|
|
141
148
|
try {
|
|
149
|
+
val rawOptions = options.toPlainMap()
|
|
142
150
|
val navi = AMapNavi.getInstance(context)
|
|
143
151
|
|
|
144
152
|
@Suppress("UNCHECKED_CAST")
|
|
145
|
-
val from =
|
|
153
|
+
val from = rawOptions["from"] as? Map<String, Any?>
|
|
146
154
|
@Suppress("UNCHECKED_CAST")
|
|
147
|
-
val to =
|
|
155
|
+
val to = rawOptions["to"] as? Map<String, Any?> ?: throw Exception("to is required")
|
|
148
156
|
|
|
149
157
|
val fromPoi = from?.let { Converters.parseNaviPoi(it) }
|
|
150
158
|
val toPoi = Converters.parseNaviPoi(to)
|
|
151
159
|
@Suppress("UNCHECKED_CAST")
|
|
152
|
-
val waypoints = Converters.parseWaypoints(
|
|
160
|
+
val waypoints = Converters.parseWaypoints(rawOptions["waypoints"] as? List<Map<String, Any?>>)
|
|
153
161
|
|
|
154
162
|
val travelStrategy: Int = when {
|
|
155
|
-
|
|
156
|
-
|
|
163
|
+
rawOptions["travelStrategy"] is Number -> (rawOptions["travelStrategy"] as Number).toInt()
|
|
164
|
+
rawOptions["multiple"] as? Boolean == true -> 1001
|
|
157
165
|
else -> 1000
|
|
158
166
|
}
|
|
159
167
|
|
|
@@ -168,23 +176,24 @@ class IndependentRouteService(
|
|
|
168
176
|
}
|
|
169
177
|
|
|
170
178
|
// 骑行
|
|
171
|
-
fun independentRideRoute(options:
|
|
179
|
+
fun independentRideRoute(options: ReadableArguments, promise: Promise) {
|
|
172
180
|
try {
|
|
181
|
+
val rawOptions = options.toPlainMap()
|
|
173
182
|
val navi = AMapNavi.getInstance(context)
|
|
174
183
|
|
|
175
184
|
@Suppress("UNCHECKED_CAST")
|
|
176
|
-
val from =
|
|
185
|
+
val from = rawOptions["from"] as? Map<String, Any?>
|
|
177
186
|
@Suppress("UNCHECKED_CAST")
|
|
178
|
-
val to =
|
|
187
|
+
val to = rawOptions["to"] as? Map<String, Any?> ?: throw Exception("to is required")
|
|
179
188
|
|
|
180
189
|
val fromPoi = from?.let { Converters.parseNaviPoi(it) }
|
|
181
190
|
val toPoi = Converters.parseNaviPoi(to)
|
|
182
191
|
@Suppress("UNCHECKED_CAST")
|
|
183
|
-
val waypoints = Converters.parseWaypoints(
|
|
192
|
+
val waypoints = Converters.parseWaypoints(rawOptions["waypoints"] as? List<Map<String, Any?>>)
|
|
184
193
|
|
|
185
194
|
val travelStrategy: Int = when {
|
|
186
|
-
|
|
187
|
-
|
|
195
|
+
rawOptions["travelStrategy"] is Number -> (rawOptions["travelStrategy"] as Number).toInt()
|
|
196
|
+
rawOptions["multiple"] as? Boolean == true -> 1001
|
|
188
197
|
else -> 1000
|
|
189
198
|
}
|
|
190
199
|
|
|
@@ -199,25 +208,26 @@ class IndependentRouteService(
|
|
|
199
208
|
}
|
|
200
209
|
|
|
201
210
|
// 摩托车(carType=11)
|
|
202
|
-
fun independentMotorcycleRoute(options:
|
|
211
|
+
fun independentMotorcycleRoute(options: ReadableArguments, promise: Promise) {
|
|
203
212
|
try {
|
|
213
|
+
val rawOptions = options.toPlainMap()
|
|
204
214
|
val navi = AMapNavi.getInstance(context)
|
|
205
215
|
|
|
206
|
-
val carNumber =
|
|
207
|
-
val motorcycleCC = (
|
|
216
|
+
val carNumber = rawOptions["carNumber"] as? String
|
|
217
|
+
val motorcycleCC = (rawOptions["motorcycleCC"] as? Number)?.toInt()
|
|
208
218
|
setCarInfo(navi, "11", carNumber, null, motorcycleCC)
|
|
209
219
|
|
|
210
220
|
@Suppress("UNCHECKED_CAST")
|
|
211
|
-
val from =
|
|
221
|
+
val from = rawOptions["from"] as? Map<String, Any?>
|
|
212
222
|
@Suppress("UNCHECKED_CAST")
|
|
213
|
-
val to =
|
|
223
|
+
val to = rawOptions["to"] as? Map<String, Any?> ?: throw Exception("to is required")
|
|
214
224
|
|
|
215
225
|
val fromPoi = from?.let { Converters.parseNaviPoi(it) }
|
|
216
226
|
val toPoi = Converters.parseNaviPoi(to)
|
|
217
227
|
@Suppress("UNCHECKED_CAST")
|
|
218
|
-
val waypoints = Converters.parseWaypoints(
|
|
228
|
+
val waypoints = Converters.parseWaypoints(rawOptions["waypoints"] as? List<Map<String, Any?>>)
|
|
219
229
|
|
|
220
|
-
val strategy = resolveDriveStrategy(navi,
|
|
230
|
+
val strategy = resolveDriveStrategy(navi, rawOptions)
|
|
221
231
|
|
|
222
232
|
navi.independentCalculateRoute(
|
|
223
233
|
fromPoi, toPoi, waypoints, strategy,
|
|
@@ -393,4 +403,8 @@ class IndependentRouteService(
|
|
|
393
403
|
else -> type
|
|
394
404
|
}
|
|
395
405
|
}
|
|
406
|
+
|
|
407
|
+
private fun ReadableArguments.toPlainMap(): Map<String, Any?> {
|
|
408
|
+
return keys().associateWith { key -> get(key) }
|
|
409
|
+
}
|
|
396
410
|
}
|