expo-gaode-map-navigation 2.0.10 → 2.0.11
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 +54 -2
- package/android/build.gradle +4 -0
- package/android/src/main/AndroidManifest.xml +2 -1
- package/android/src/main/java/expo/modules/gaodemap/navigation/ExpoGaodeMapNaviView.kt +501 -27
- package/android/src/main/java/expo/modules/gaodemap/navigation/ExpoGaodeMapNaviViewModule.kt +35 -0
- package/android/src/main/java/expo/modules/gaodemap/navigation/ExpoGaodeMapNavigationModule.kt +10 -23
- package/android/src/main/java/expo/modules/gaodemap/navigation/listeners/IndependentRouteListener.kt +24 -0
- package/android/src/main/java/expo/modules/gaodemap/navigation/managers/IndependentRouteManager.kt +24 -7
- package/android/src/main/java/expo/modules/gaodemap/navigation/routes/drive/DriveTruckRouteCalculator.kt +22 -35
- package/android/src/main/java/expo/modules/gaodemap/navigation/services/IndependentRouteService.kt +45 -35
- 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 +2 -2
- package/android/src/main/res/drawable/ic_nav_notification_small.xml +10 -0
- package/android/src/main/res/drawable/nav_notification_brand_icon.xml +16 -0
- package/android/src/main/res/drawable/navi_lane_shape_bg_center.xml +4 -4
- package/android/src/main/res/drawable/navi_lane_shape_bg_left.xml +7 -7
- package/android/src/main/res/drawable/navi_lane_shape_bg_over.xml +5 -5
- package/android/src/main/res/drawable/navi_lane_shape_bg_right.xml +7 -7
- package/android/src/main/res/drawable-nodpi/nav_tracker_car.png +0 -0
- package/build/ExpoGaodeMapNaviView.d.ts +9 -1
- package/build/ExpoGaodeMapNaviView.d.ts.map +1 -1
- package/build/ExpoGaodeMapNaviView.js +39 -3
- package/build/ExpoGaodeMapNaviView.js.map +1 -1
- package/build/index.d.ts +32 -6
- package/build/index.d.ts.map +1 -1
- package/build/index.js +32 -6
- package/build/index.js.map +1 -1
- package/build/types/independent.types.d.ts +18 -3
- package/build/types/independent.types.d.ts.map +1 -1
- package/build/types/independent.types.js.map +1 -1
- package/build/types/naviview.types.d.ts +49 -3
- 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 +10 -2
- package/build/types/route.types.d.ts.map +1 -1
- package/build/types/route.types.js.map +1 -1
- package/ios/ExpoGaodeMapNaviView.swift +1526 -246
- package/ios/ExpoGaodeMapNaviViewModule.swift +22 -0
- package/ios/ExpoGaodeMapNavigationModule.swift +6 -4
- package/ios/managers/IndependentRouteManager.swift +89 -26
- package/ios/map/ExpoGaodeMapModule.swift +25 -11
- package/ios/map/modules/LocationManager.swift +10 -1
- package/ios/map/utils/PermissionManager.swift +104 -0
- package/ios/routes/drive/DriveTruckRouteCalculator.swift +157 -78
- package/ios/routes/walkride/WalkRideRouteCalculator.swift +97 -1
- package/ios/services/IndependentRouteService.swift +165 -32
- package/ios/services/NavigationLiveActivityAttributes.swift +48 -0
- package/ios/services/NavigationLiveActivityManager.swift +359 -0
- package/package.json +2 -1
- package/plugin/build/withGaodeMap.d.ts +8 -0
- package/plugin/build/withGaodeMap.js +48 -4
- package/widget-template/README.md +46 -0
- package/widget-template/ios/NavigationLiveActivityWidget.swift +367 -0
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import ExpoGaodeMapNavigationModule from './ExpoGaodeMapNavigationModule';\nimport { ExpoGaodeMapModule } from './map';\n\n// 重新导出地图模块的所有内容\nexport * from './map';\nimport {\n RouteType,\n DriveStrategy,\n WalkStrategy,\n RideStrategy,\n TruckSize,\n TravelStrategy,\n type TransitRouteOptions,\n} from './types';\nimport type {\n NaviPoint,\n RouteOptions,\n DriveRouteOptions,\n WalkRouteOptions,\n RideRouteOptions,\n EBikeRouteOptions,\n TransitRouteOptions as TransitRouteOptionsType,\n TruckRouteOptions,\n OfficialNaviPageOptions,\n RouteResult,\n DriveRouteResult,\n IndependentRouteResult,\n IndependentDriveRouteOptions,\n IndependentTruckRouteOptions,\n IndependentWalkRouteOptions,\n IndependentRideRouteOptions,\n SelectIndependentRouteOptions,\n StartNaviWithIndependentPathOptions,\n ClearIndependentRouteOptions,\n MotorcycleRouteOptions,\n IndependentMotorcycleRouteOptions,\n BuildAnchorWaypointsOptions,\n FollowWebPlannedRouteOptions,\n FollowWebPlannedRouteResult,\n FollowWebPlannedRouteCandidate,\n WebPlannedRoute,\n NaviInfoUpdateEvent,\n NaviLaneInfoEvent,\n NaviTrafficStatusesEvent,\n NaviVisualStateEvent,\n ExpoGaodeMapNaviViewProps,\n } from './types';\n\nfunction parsePolyline(polyline?: string): NaviPoint[] {\n if (!polyline?.trim()) {\n return [];\n }\n\n return polyline\n .split(';')\n .map((segment) => segment.trim())\n .filter(Boolean)\n .map((segment) => {\n const [longitude, latitude] = segment.split(',').map((value) => Number(value.trim()));\n if (!Number.isFinite(longitude) || !Number.isFinite(latitude)) {\n return null;\n }\n\n return {\n latitude,\n longitude,\n };\n })\n .filter((point): point is NaviPoint => point !== null);\n}\n\nfunction dedupeAdjacentPoints(points: NaviPoint[]): NaviPoint[] {\n return points.filter((point, index) => {\n if (index === 0) {\n return true;\n }\n\n const previous = points[index - 1];\n return (\n previous.latitude !== point.latitude ||\n previous.longitude !== point.longitude\n );\n });\n}\n\nfunction haversineDistance(pointA: NaviPoint, pointB: NaviPoint): number {\n const toRadians = (degrees: number) => (degrees * Math.PI) / 180;\n const earthRadiusMeters = 6371000;\n const latitudeDelta = toRadians(pointB.latitude - pointA.latitude);\n const longitudeDelta = toRadians(pointB.longitude - pointA.longitude);\n const latitudeA = toRadians(pointA.latitude);\n const latitudeB = toRadians(pointB.latitude);\n\n const a =\n Math.sin(latitudeDelta / 2) ** 2 +\n Math.cos(latitudeA) * Math.cos(latitudeB) * Math.sin(longitudeDelta / 2) ** 2;\n\n return 2 * earthRadiusMeters * Math.asin(Math.sqrt(a));\n}\n\nfunction distanceBetweenCoordinatesSafe(pointA: NaviPoint, pointB: NaviPoint): number {\n try {\n return ExpoGaodeMapModule.distanceBetweenCoordinates(pointA, pointB);\n } catch {\n return haversineDistance(pointA, pointB);\n }\n}\n\nfunction calculatePathLengthSafe(points: NaviPoint[]): number {\n try {\n return ExpoGaodeMapModule.calculatePathLength(points);\n } catch {\n let total = 0;\n for (let index = 1; index < points.length; index += 1) {\n total += distanceBetweenCoordinatesSafe(points[index - 1], points[index]);\n }\n return total;\n }\n}\n\nfunction simplifyPolylineSafe(points: NaviPoint[], tolerance: number): NaviPoint[] {\n if (points.length <= 2) {\n return points;\n }\n\n try {\n const simplified = ExpoGaodeMapModule.simplifyPolyline(points, tolerance);\n return simplified.length >= 2 ? simplified : points;\n } catch {\n return points;\n }\n}\n\nfunction getDistanceToPathSafe(path: NaviPoint[], target: NaviPoint): number {\n if (path.length === 0) {\n return Number.POSITIVE_INFINITY;\n }\n\n try {\n const nearest = ExpoGaodeMapModule.getNearestPointOnPath(path, target);\n if (nearest) {\n return nearest.distanceMeters;\n }\n } catch {\n // ignore and fallback to point-to-point scan\n }\n\n return path.reduce((minimum, point) => {\n const distance = distanceBetweenCoordinatesSafe(point, target);\n return distance < minimum ? distance : minimum;\n }, Number.POSITIVE_INFINITY);\n}\n\nfunction samplePolyline(points: NaviPoint[], targetSamples = 36): NaviPoint[] {\n if (points.length <= targetSamples) {\n return points;\n }\n\n const step = Math.max(1, Math.floor(points.length / targetSamples));\n const samples = points.filter((_, index) => index % step === 0);\n const lastPoint = points[points.length - 1];\n const lastSample = samples[samples.length - 1];\n if (\n !lastSample ||\n lastSample.latitude !== lastPoint.latitude ||\n lastSample.longitude !== lastPoint.longitude\n ) {\n samples.push(lastPoint);\n }\n return samples;\n}\n\nfunction selectEvenlySpacedPoints(points: NaviPoint[], count: number): NaviPoint[] {\n if (count <= 0 || points.length <= count) {\n return points;\n }\n\n return Array.from({ length: count }, (_, index) => {\n const rawIndex = Math.round(((index + 1) * (points.length + 1)) / (count + 1)) - 1;\n const boundedIndex = Math.min(points.length - 1, Math.max(0, rawIndex));\n return points[boundedIndex];\n });\n}\n\nfunction normalizeWebRoutePolyline(webRoute: WebPlannedRoute): NaviPoint[] {\n const directPolyline = dedupeAdjacentPoints(webRoute.polyline ?? []);\n if (directPolyline.length > 1) {\n return directPolyline;\n }\n\n const stepPolyline = dedupeAdjacentPoints(\n (webRoute.steps ?? []).flatMap((step) => step.polyline ?? [])\n );\n return stepPolyline;\n}\n\nexport function buildAnchorWaypointsFromWebRoute(\n options: BuildAnchorWaypointsOptions\n): NaviPoint[] {\n const {\n webRoute,\n maxViaPoints = 8,\n simplifyTolerance = 80,\n minSpacingMeters = 800,\n } = options;\n\n const polyline = normalizeWebRoutePolyline(webRoute);\n if (polyline.length <= 2) {\n return [];\n }\n\n const simplified = dedupeAdjacentPoints(\n simplifyPolylineSafe(polyline, simplifyTolerance)\n );\n const candidatePoints = simplified.length > 2 ? simplified : polyline;\n const interiorPoints = candidatePoints.slice(1, -1);\n\n const spacedPoints: NaviPoint[] = [];\n let previousPoint = polyline[0];\n\n for (const point of interiorPoints) {\n if (distanceBetweenCoordinatesSafe(previousPoint, point) < minSpacingMeters) {\n continue;\n }\n spacedPoints.push(point);\n previousPoint = point;\n }\n\n const waypoints = spacedPoints.length > 0\n ? spacedPoints\n : candidatePoints.length > 2\n ? [candidatePoints[Math.floor(candidatePoints.length / 2)]]\n : [];\n\n return dedupeAdjacentPoints(selectEvenlySpacedPoints(waypoints, maxViaPoints));\n}\n\nasync function loadWebApiFallback(feature: '公交路径规划' | '规避路线预览') {\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const webApi = require('expo-gaode-map-web-api');\n if (typeof webApi?.GaodeWebAPI !== 'function') {\n throw new Error('expo-gaode-map-web-api 未导出 GaodeWebAPI');\n }\n return webApi;\n } catch {\n throw new Error(\n `${feature}依赖 expo-gaode-map-web-api。请安装该包,并在 ExpoGaodeMapModule.initSDK 中提供 webKey。`\n );\n }\n}\n\nfunction normalizeAvoidPolygons(polygons?: DriveRouteOptions['avoidPolygons']): string | undefined {\n if (!polygons?.length) {\n return undefined;\n }\n\n const normalized = polygons\n .map((polygon) =>\n polygon\n .map((point) => `${point.longitude},${point.latitude}`)\n .join(';')\n )\n .filter(Boolean)\n .join('|');\n\n return normalized || undefined;\n}\n\nfunction normalizeDrivingStrategy(\n strategy?: DriveStrategy\n): number | undefined {\n // 导航 SDK 与 Web API 的策略枚举不完全一致。\n // 这里做“尽量等价”的映射,主要用于带规避参数时的路线预览。\n switch (strategy) {\n case DriveStrategy.FASTEST:\n return 38;\n case DriveStrategy.FEE_FIRST:\n return 1;\n case DriveStrategy.SHORTEST:\n return 2;\n case DriveStrategy.NO_EXPRESSWAYS:\n return 37;\n case DriveStrategy.AVOID_CONGESTION:\n return 33;\n case DriveStrategy.NO_HIGHWAY:\n return 35;\n case DriveStrategy.NO_HIGHWAY_AVOID_CONGESTION:\n return 40;\n case DriveStrategy.AVOID_COST_CONGESTION:\n case DriveStrategy.AVOID_CONGESTION_COST:\n return 41;\n case DriveStrategy.NO_HIGHWAY_AVOID_COST_CONGESTION:\n return 43;\n default:\n return undefined;\n }\n}\n\nfunction normalizeDrivingRouteResult(\n options: DriveRouteOptions,\n result: any\n): DriveRouteResult {\n const paths = result?.route?.paths ?? [];\n const routes = paths.map((path: any, index: number) => {\n const segments = (path?.steps ?? []).map((step: any) => ({\n instruction: step?.instruction ?? '',\n orientation: step?.orientation,\n road: step?.road_name,\n distance: Number(step?.step_distance ?? 0),\n duration: Number(step?.cost?.duration ?? 0),\n polyline: parsePolyline(step?.polyline),\n assistantAction: step?.assistant_action,\n tollDistance: step?.cost?.toll_distance ? Number(step.cost.toll_distance) : undefined,\n tollCost: step?.cost?.tolls ? Number(step.cost.tolls) : undefined,\n }));\n\n const restrictionCode = path?.restriction != null ? Number(path.restriction) : undefined;\n\n return {\n id: index,\n start: options.from,\n end: options.to,\n distance: Number(path?.distance ?? 0),\n duration: Number(path?.cost?.duration ?? path?.duration ?? 0),\n segments,\n polyline: segments.flatMap((segment: { polyline: NaviPoint[] }) => segment.polyline),\n tollDistance: path?.cost?.toll_distance ? Number(path.cost.toll_distance) : undefined,\n tollCost: path?.cost?.tolls ? Number(path.cost.tolls) : undefined,\n trafficLightCount: path?.cost?.traffic_lights ? Number(path.cost.traffic_lights) : undefined,\n restrictionCode,\n restrictionInfo:\n restrictionCode === 0\n ? '限行已规避或未限行'\n : restrictionCode === 1\n ? '限行无法规避'\n : undefined,\n strategy: options.strategy,\n };\n });\n\n return {\n count: Number(result?.count ?? routes.length),\n mainPathIndex: 0,\n routeIds: routes.map((route: RouteResult) => route.id),\n routes,\n taxiCost: result?.route?.taxi_cost ? Number(result.route.taxi_cost) : undefined,\n };\n}\n\nfunction shouldUseAvoidPreviewFallback(options: DriveRouteOptions): boolean {\n return Boolean(options.avoidRoad?.trim() || options.avoidPolygons?.length);\n}\n\ntype RouteLike = RouteResult & {\n routeId?: number;\n steps?: Array<{ polyline?: NaviPoint[] }>;\n};\n\nfunction extractRoutePolyline(route: RouteLike): NaviPoint[] {\n if (Array.isArray(route.polyline) && route.polyline.length > 0) {\n return route.polyline;\n }\n\n const segments = Array.isArray(route.segments) ? route.segments : [];\n if (segments.length > 0) {\n return dedupeAdjacentPoints(\n segments.flatMap((segment) => segment.polyline ?? [])\n );\n }\n\n const steps = Array.isArray(route.steps) ? route.steps : [];\n if (steps.length > 0) {\n return dedupeAdjacentPoints(\n steps.flatMap((step) => step.polyline ?? [])\n );\n }\n\n return [];\n}\n\nfunction resolveIndependentRouteId(\n result: IndependentRouteResult,\n route: RouteLike,\n routeIndex: number\n): number | undefined {\n if (typeof route.id === 'number') {\n return route.id;\n }\n if (typeof route.routeId === 'number') {\n return route.routeId;\n }\n return result.routeIds?.[routeIndex];\n}\n\nfunction scoreIndependentRouteAgainstWebPolyline(\n result: IndependentRouteResult,\n route: RouteLike,\n routeIndex: number,\n webPolyline: NaviPoint[],\n anchorWaypoints: NaviPoint[],\n thresholdMeters: number\n): FollowWebPlannedRouteCandidate | null {\n const nativePolyline = extractRoutePolyline(route);\n if (nativePolyline.length === 0 || webPolyline.length === 0) {\n return null;\n }\n\n const sampledNativePoints = samplePolyline(nativePolyline);\n const pointDistances = sampledNativePoints.map((point) =>\n getDistanceToPathSafe(webPolyline, point)\n );\n const averageDeviationMeters =\n pointDistances.reduce((total, distance) => total + distance, 0) / pointDistances.length;\n const maxDeviationMeters = Math.max(...pointDistances);\n\n const missedAnchorCount = anchorWaypoints.reduce((count, point) => (\n getDistanceToPathSafe(nativePolyline, point) > thresholdMeters ? count + 1 : count\n ), 0);\n\n return {\n routeId: resolveIndependentRouteId(result, route, routeIndex),\n routeIndex,\n averageDeviationMeters,\n maxDeviationMeters,\n missedAnchorCount,\n score:\n averageDeviationMeters +\n maxDeviationMeters * 0.35 +\n missedAnchorCount * thresholdMeters * 0.5,\n };\n}\n\nfunction evaluateIndependentResultAgainstWebRoute(\n independentResult: IndependentRouteResult,\n webPolyline: NaviPoint[],\n anchorWaypoints: NaviPoint[],\n maxDeviationMeters: number\n) {\n const candidateMatches = independentResult.routes\n .map((route, routeIndex) =>\n scoreIndependentRouteAgainstWebPolyline(\n independentResult,\n route as RouteLike,\n routeIndex,\n webPolyline,\n anchorWaypoints,\n maxDeviationMeters\n )\n )\n .filter((candidate): candidate is FollowWebPlannedRouteCandidate => candidate !== null)\n .sort((routeA, routeB) => routeA.score - routeB.score);\n\n const bestMatch = candidateMatches[0];\n const selectedRoute = bestMatch\n ? independentResult.routes[bestMatch.routeIndex] as RouteLike\n : undefined;\n const nativePolyline = selectedRoute ? extractRoutePolyline(selectedRoute) : [];\n\n let mode: FollowWebPlannedRouteResult['mode'] = 'preview_only';\n let reason = '未找到足够接近 Web 规划线的原生路线';\n\n if (bestMatch) {\n if (\n bestMatch.averageDeviationMeters <= maxDeviationMeters / 2 &&\n bestMatch.maxDeviationMeters <= maxDeviationMeters &&\n bestMatch.missedAnchorCount === 0\n ) {\n mode = 'matched';\n reason = '原生路线与 Web 规划线高度接近,可直接按近似结果导航';\n } else if (\n bestMatch.averageDeviationMeters <= maxDeviationMeters &&\n bestMatch.maxDeviationMeters <= maxDeviationMeters * 2\n ) {\n mode = 'approximate';\n reason = '原生路线与 Web 规划线接近,但仍存在可见偏差';\n }\n }\n\n return {\n candidateMatches,\n bestMatch,\n selectedRoute,\n nativePolyline,\n mode,\n reason,\n };\n}\n\nexport async function followWebPlannedRoute(\n options: FollowWebPlannedRouteOptions\n): Promise<FollowWebPlannedRouteResult> {\n const {\n from,\n to,\n webRoute,\n strategy,\n carNumber,\n restriction,\n maxDeviationMeters = 120,\n startNavigation = false,\n naviType = 0,\n } = options;\n\n const webPolyline = normalizeWebRoutePolyline(webRoute);\n if (webPolyline.length < 2) {\n throw new Error('webRoute.polyline 至少需要 2 个点');\n }\n\n const anchorWaypoints = buildAnchorWaypointsFromWebRoute(options);\n const anchoredIndependentResult = await independentDriveRoute({\n from,\n to,\n strategy,\n carNumber,\n restriction,\n waypoints: anchorWaypoints,\n });\n\n let independentResult = anchoredIndependentResult;\n let evaluation = evaluateIndependentResultAgainstWebRoute(\n anchoredIndependentResult,\n webPolyline,\n anchorWaypoints,\n maxDeviationMeters\n );\n let navigationUsesAnchorWaypoints = anchorWaypoints.length > 0;\n\n if (evaluation.bestMatch && evaluation.mode !== 'preview_only' && anchorWaypoints.length > 0) {\n try {\n const directIndependentResult = await independentDriveRoute({\n from,\n to,\n strategy,\n carNumber,\n restriction,\n });\n\n const directEvaluation = evaluateIndependentResultAgainstWebRoute(\n directIndependentResult,\n webPolyline,\n [],\n maxDeviationMeters\n );\n const anchoredBest = evaluation.bestMatch;\n const directBest = directEvaluation.bestMatch;\n\n const canSwitchToDirectNavigation =\n Boolean(directBest) &&\n directEvaluation.mode !== 'preview_only' &&\n directBest!.averageDeviationMeters <= Math.max(\n anchoredBest.averageDeviationMeters + 45,\n anchoredBest.averageDeviationMeters * 1.45\n ) &&\n directBest!.maxDeviationMeters <= Math.max(\n anchoredBest.maxDeviationMeters + 90,\n anchoredBest.maxDeviationMeters * 1.45\n );\n\n if (canSwitchToDirectNavigation) {\n ExpoGaodeMapNavigationModule.clearIndependentRoute({\n token: anchoredIndependentResult.token,\n }).catch(() => {});\n independentResult = directIndependentResult;\n evaluation = directEvaluation;\n navigationUsesAnchorWaypoints = false;\n evaluation.reason =\n directEvaluation.mode === 'matched'\n ? '已切换为无途经点导航结果,且与 Web 规划线高度接近'\n : '已切换为无途经点导航结果,但与 Web 规划线仍存在轻微偏差';\n } else {\n ExpoGaodeMapNavigationModule.clearIndependentRoute({\n token: directIndependentResult.token,\n }).catch(() => {});\n evaluation.reason = `${evaluation.reason};最终导航仍需依赖锚点途经点逼近 Web 线路`;\n }\n } catch {\n evaluation.reason = `${evaluation.reason};无途经点重算失败,最终导航仍需依赖锚点途经点`;\n }\n }\n\n let navigationStarted = false;\n if (startNavigation && evaluation.bestMatch && evaluation.mode !== 'preview_only') {\n navigationStarted = await startNaviWithIndependentPath({\n token: independentResult.token,\n naviType,\n routeId: evaluation.bestMatch.routeId,\n routeIndex:\n evaluation.bestMatch.routeId == null ? evaluation.bestMatch.routeIndex : undefined,\n });\n }\n\n return {\n mode: evaluation.mode,\n token: independentResult.token,\n anchorWaypoints,\n webDistance: calculatePathLengthSafe(webPolyline),\n nativeDistance:\n evaluation.nativePolyline.length > 1\n ? calculatePathLengthSafe(evaluation.nativePolyline)\n : undefined,\n selectedRouteId: evaluation.bestMatch?.routeId,\n selectedRouteIndex: evaluation.bestMatch?.routeIndex,\n averageDeviationMeters: evaluation.bestMatch?.averageDeviationMeters,\n maxDeviationMeters: evaluation.bestMatch?.maxDeviationMeters,\n navigationStarted,\n navigationUsesAnchorWaypoints,\n independentResult,\n candidateMatches: evaluation.candidateMatches,\n reason: evaluation.reason,\n };\n}\n\nasync function calculateDriveRouteWithAvoidPreview(\n options: DriveRouteOptions\n): Promise<DriveRouteResult> {\n const { GaodeWebAPI } = await loadWebApiFallback('规避路线预览');\n const api = new GaodeWebAPI();\n const result = await api.route.driving(\n `${options.from.longitude},${options.from.latitude}`,\n `${options.to.longitude},${options.to.latitude}`,\n {\n strategy: normalizeDrivingStrategy(options.strategy),\n waypoints: options.waypoints?.map(\n (point) => `${point.longitude},${point.latitude}`\n ),\n avoidpolygons: normalizeAvoidPolygons(options.avoidPolygons),\n avoidroad: options.avoidRoad?.trim() || undefined,\n plate: options.carNumber,\n show_fields: 'cost,navi,polyline',\n }\n );\n\n return normalizeDrivingRouteResult(options, result);\n}\n\nfunction normalizeTransitRouteResult(\n options: TransitRouteOptions,\n result: any\n): DriveRouteResult {\n // 导航包内部仍保持独立实现;\n // 这里只是在“公交无法由导航 SDK 直算”时,把 Web API 结果映射成现有 RouteResult 形状。\n const routes = (result?.route?.transits ?? []).map((transit: any, index: number) => {\n const polyline = (transit?.segments ?? []).flatMap((segment: any) => [\n ...(segment.walking?.steps?.flatMap((step: any) => parsePolyline(step.polyline)) ?? []),\n ...(segment.bus?.buslines?.flatMap((line: any) => parsePolyline(line.polyline)) ?? []),\n ...(segment.railway?.buslines?.flatMap((line: any) => parsePolyline(line.polyline)) ?? []),\n ]);\n\n return {\n id: index,\n start: options.from,\n end: options.to,\n distance: Number(transit?.distance ?? 0),\n duration: Number(transit?.cost?.duration ?? 0),\n segments: [],\n polyline,\n tollDistance: 0,\n tollCost: Number(transit?.cost?.transit_fee ?? 0),\n strategy: options.strategy,\n };\n });\n\n return {\n count: routes.length,\n mainPathIndex: 0,\n routes,\n };\n}\n\nfunction hasStrategyOption(\n options: RouteOptions\n): options is WalkRouteOptions | RideRouteOptions {\n return 'strategy' in options;\n}\n\nfunction isMotorcycleRouteOptions(\n options: RouteOptions | MotorcycleRouteOptions\n): options is MotorcycleRouteOptions {\n return 'motorcycleCC' in options;\n}\n\n// 导出官方导航界面组件\nexport { \n ExpoGaodeMapNaviView, \n type ExpoGaodeMapNaviViewRef,\n // 兼容旧版本名称\n ExpoGaodeMapNaviView as NaviView,\n type ExpoGaodeMapNaviViewRef as NaviViewRef \n} from './ExpoGaodeMapNaviView';\n\n/**\n * 初始化导航模块(可选)\n */\nexport const initNavigation = () => ExpoGaodeMapNavigationModule.initNavigation();\n\n/**\n * 销毁所有路径计算器实例\n * 用于页面切换时释放资源,避免\"Another route calculation is in progress\"错误\n */\nexport const destroyAllCalculators = () => ExpoGaodeMapNavigationModule.destroyAllCalculators();\n\n/**\n * 路径规划(通用方法)\n */\nexport async function calculateRoute(\n options: RouteOptions\n): Promise<RouteResult | DriveRouteResult> {\n if ('type' in options && options.type === RouteType.TRANSIT) {\n return calculateTransitRoute(options as TransitRouteOptions);\n }\n\n // 1. 货车\n if ('size' in options) {\n return calculateTruckRoute(options as TruckRouteOptions);\n }\n \n // 2. 步行、骑行、电动车\n if ('multiple' in options || 'travelStrategy' in options) {\n if ('usePoi' in options) return calculateEBikeRoute(options as EBikeRouteOptions);\n \n // 策略判断:0 或 1 通常为骑行策略,其余默认步行\n const strategy = hasStrategyOption(options) ? options.strategy : undefined;\n if (strategy === 0 || strategy === 1) {\n return calculateRideRoute(options as RideRouteOptions);\n }\n return calculateWalkRoute(options as WalkRouteOptions);\n }\n\n // 3. 摩托车 (通过 carType 或 motorcycleCC 判断)\n if (isMotorcycleRouteOptions(options)) {\n return calculateMotorcycleRoute(options as MotorcycleRouteOptions);\n }\n\n // 4. 默认驾车\n return calculateDriveRoute(options as DriveRouteOptions);\n}\n\n/**\n * 驾车路径规划\n */\nexport async function calculateDriveRoute(\n options: DriveRouteOptions\n): Promise<DriveRouteResult> {\n if (shouldUseAvoidPreviewFallback(options)) {\n try {\n return await calculateDriveRouteWithAvoidPreview(options);\n } catch {\n // 若未安装 Web API 包,则保持现有原生逻辑不变。\n // 这样不会破坏当前依赖 Android 反射重载的项目。\n }\n }\n\n return ExpoGaodeMapNavigationModule.calculateDriveRoute(options);\n}\n\n/**\n * 步行路径规划\n */\nexport const calculateWalkRoute = (options: WalkRouteOptions) => \n ExpoGaodeMapNavigationModule.calculateWalkRoute(options);\n\n/**\n * 骑行路径规划\n */\nexport const calculateRideRoute = (options: RideRouteOptions) => \n ExpoGaodeMapNavigationModule.calculateRideRoute(options);\n\n/**\n * 骑行电动车路径规划\n */\nexport const calculateEBikeRoute = (options: EBikeRouteOptions) => \n ExpoGaodeMapNavigationModule.calculateEBikeRoute(options);\n\n/**\n * 货车路径规划\n */\nexport const calculateTruckRoute = (options: TruckRouteOptions) => \n ExpoGaodeMapNavigationModule.calculateTruckRoute(options);\n\n/**\n * 摩托车路径规划(车类型为 11,支持传入排量)\n */\nexport const calculateMotorcycleRoute = (options: MotorcycleRouteOptions) => \n ExpoGaodeMapNavigationModule.calculateMotorcycleRoute(options);\n\n/**\n * 公交换乘路径规划(运行时 fallback 到 Web API)\n */\nexport async function calculateTransitRoute(options: TransitRouteOptions): Promise<DriveRouteResult> {\n // 运行时按需加载,避免把 navigation 包和 web-api 包在构建期强绑定。\n const { GaodeWebAPI, TransitStrategy } = await loadWebApiFallback('公交路径规划');\n const api = new GaodeWebAPI();\n const result = await api.route.transit(\n `${options.from.longitude},${options.from.latitude}`,\n `${options.to.longitude},${options.to.latitude}`,\n options.city1,\n options.city2,\n {\n strategy: options.strategy ?? TransitStrategy.RECOMMENDED,\n AlternativeRoute: options.alternativeRoute,\n show_fields: 'cost,polyline',\n }\n );\n\n return normalizeTransitRouteResult(options, result);\n}\n\n/**\n* 独立路径规划(不会影响当前导航;适合路线预览/行前选路)\n*/\nexport const independentDriveRoute = (options: IndependentDriveRouteOptions) => \n ExpoGaodeMapNavigationModule.independentDriveRoute(options);\n/**\n * 独立货车路径规划(不干扰当前导航)\n */\nexport const independentTruckRoute = (options: IndependentTruckRouteOptions) => \n ExpoGaodeMapNavigationModule.independentTruckRoute(options);\n/**\n * 独立步行路径规划(不干扰当前导航)\n */\nexport const independentWalkRoute = (options: IndependentWalkRouteOptions) => \n ExpoGaodeMapNavigationModule.independentWalkRoute(options);\n\n/**\n * 独立骑行路径规划(不干扰当前导航)\n */\nexport const independentRideRoute = (options: IndependentRideRouteOptions) => \n ExpoGaodeMapNavigationModule.independentRideRoute(options);\n\n/**\n * 独立摩托车路径规划(不干扰当前导航)\n */\nexport const independentMotorcycleRoute = (options: IndependentMotorcycleRouteOptions) => \n ExpoGaodeMapNavigationModule.independentMotorcycleRoute(options);\n\n/**\n * 独立路径组:选主路线\n */\nexport const selectIndependentRoute = (options: SelectIndependentRouteOptions) => \n ExpoGaodeMapNavigationModule.selectIndependentRoute(options);\n\n/**\n * 独立路径组:使用指定路线启动导航\n */\nexport const startNaviWithIndependentPath = (options: StartNaviWithIndependentPathOptions) => \n ExpoGaodeMapNavigationModule.startNaviWithIndependentPath(options);\n\n/**\n * 打开高德官方导航页(Android 原生 AmapNaviPage)\n */\nexport const openOfficialNaviPage = (options: OfficialNaviPageOptions) =>\n ExpoGaodeMapNavigationModule.openOfficialNaviPage(options);\n\n/**\n * 独立路径组:清理\n */\nexport const clearIndependentRoute = (options: ClearIndependentRouteOptions) => \n ExpoGaodeMapNavigationModule.clearIndependentRoute(options);\n\n// 导出导航相关类型与枚举(Coordinates 从 map 模块导出)\nexport type {\n NaviPoint,\n RouteOptions,\n DriveRouteOptions,\n WalkRouteOptions,\n RideRouteOptions,\n EBikeRouteOptions,\n TransitRouteOptionsType as TransitRouteOptions,\n TruckRouteOptions,\n RouteResult,\n DriveRouteResult,\n IndependentRouteResult,\n IndependentDriveRouteOptions,\n IndependentTruckRouteOptions,\n IndependentWalkRouteOptions,\n IndependentRideRouteOptions,\n SelectIndependentRouteOptions,\n StartNaviWithIndependentPathOptions,\n OfficialNaviPageOptions,\n ClearIndependentRouteOptions,\n MotorcycleRouteOptions,\n IndependentMotorcycleRouteOptions,\n BuildAnchorWaypointsOptions,\n FollowWebPlannedRouteOptions,\n FollowWebPlannedRouteResult,\n FollowWebPlannedRouteCandidate,\n WebPlannedRoute,\n NaviInfoUpdateEvent,\n NaviLaneInfoEvent,\n NaviTrafficStatusesEvent,\n NaviVisualStateEvent,\n ExpoGaodeMapNaviViewProps,\n};\n\nexport {\n RouteType,\n DriveStrategy,\n WalkStrategy,\n RideStrategy,\n TruckSize,\n TravelStrategy,\n};\n\n// 精简后的默认导出\nexport default {\n // 初始化\n initNavigation,\n destroyAllCalculators,\n\n // 路径规划\n calculateRoute,\n calculateDriveRoute,\n calculateWalkRoute,\n calculateRideRoute,\n calculateEBikeRoute,\n calculateTransitRoute,\n calculateTruckRoute,\n calculateMotorcycleRoute,\n buildAnchorWaypointsFromWebRoute,\n followWebPlannedRoute,\n\n // 独立路径规划\n independentDriveRoute,\n independentTruckRoute,\n independentWalkRoute,\n independentRideRoute,\n independentMotorcycleRoute,\n\n // 独立路径组操作\n selectIndependentRoute,\n startNaviWithIndependentPath,\n openOfficialNaviPage,\n clearIndependentRoute,\n};\n\nexport {\n ExpoGaodeMapNavigationModule,\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import ExpoGaodeMapNavigationModule from './ExpoGaodeMapNavigationModule';\nimport { ExpoGaodeMapModule } from './map';\n\n// 重新导出地图模块的所有内容\nexport * from './map';\nimport {\n RouteType,\n DriveStrategy,\n WalkStrategy,\n RideStrategy,\n TruckSize,\n TravelStrategy,\n type TransitRouteOptions,\n} from './types';\nimport type {\n NaviPoint,\n RouteOptions,\n DriveRouteOptions,\n WalkRouteOptions,\n RideRouteOptions,\n EBikeRouteOptions,\n TransitRouteOptions as TransitRouteOptionsType,\n TruckRouteOptions,\n OfficialNaviPageOptions,\n RouteResult,\n DriveRouteResult,\n IndependentRouteResult,\n IndependentDriveRouteOptions,\n IndependentTruckRouteOptions,\n IndependentWalkRouteOptions,\n IndependentRideRouteOptions,\n SelectIndependentRouteOptions,\n StartNaviWithIndependentPathOptions,\n ClearIndependentRouteOptions,\n MotorcycleRouteOptions,\n IndependentMotorcycleRouteOptions,\n BuildAnchorWaypointsOptions,\n FollowWebPlannedRouteOptions,\n FollowWebPlannedRouteResult,\n FollowWebPlannedRouteCandidate,\n WebPlannedRoute,\n NaviInfoUpdateEvent,\n NaviLaneInfoEvent,\n NaviTrafficStatusesEvent,\n NaviVisualStateEvent,\n ExpoGaodeMapNaviViewProps,\n } from './types';\n\nfunction parsePolyline(polyline?: string): NaviPoint[] {\n if (!polyline?.trim()) {\n return [];\n }\n\n return polyline\n .split(';')\n .map((segment) => segment.trim())\n .filter(Boolean)\n .map((segment) => {\n const [longitude, latitude] = segment.split(',').map((value) => Number(value.trim()));\n if (!Number.isFinite(longitude) || !Number.isFinite(latitude)) {\n return null;\n }\n\n return {\n latitude,\n longitude,\n };\n })\n .filter((point): point is NaviPoint => point !== null);\n}\n\nfunction dedupeAdjacentPoints(points: NaviPoint[]): NaviPoint[] {\n return points.filter((point, index) => {\n if (index === 0) {\n return true;\n }\n\n const previous = points[index - 1];\n return (\n previous.latitude !== point.latitude ||\n previous.longitude !== point.longitude\n );\n });\n}\n\nfunction haversineDistance(pointA: NaviPoint, pointB: NaviPoint): number {\n const toRadians = (degrees: number) => (degrees * Math.PI) / 180;\n const earthRadiusMeters = 6371000;\n const latitudeDelta = toRadians(pointB.latitude - pointA.latitude);\n const longitudeDelta = toRadians(pointB.longitude - pointA.longitude);\n const latitudeA = toRadians(pointA.latitude);\n const latitudeB = toRadians(pointB.latitude);\n\n const a =\n Math.sin(latitudeDelta / 2) ** 2 +\n Math.cos(latitudeA) * Math.cos(latitudeB) * Math.sin(longitudeDelta / 2) ** 2;\n\n return 2 * earthRadiusMeters * Math.asin(Math.sqrt(a));\n}\n\nfunction distanceBetweenCoordinatesSafe(pointA: NaviPoint, pointB: NaviPoint): number {\n try {\n return ExpoGaodeMapModule.distanceBetweenCoordinates(pointA, pointB);\n } catch {\n return haversineDistance(pointA, pointB);\n }\n}\n\nfunction calculatePathLengthSafe(points: NaviPoint[]): number {\n try {\n return ExpoGaodeMapModule.calculatePathLength(points);\n } catch {\n let total = 0;\n for (let index = 1; index < points.length; index += 1) {\n total += distanceBetweenCoordinatesSafe(points[index - 1], points[index]);\n }\n return total;\n }\n}\n\nfunction simplifyPolylineSafe(points: NaviPoint[], tolerance: number): NaviPoint[] {\n if (points.length <= 2) {\n return points;\n }\n\n try {\n const simplified = ExpoGaodeMapModule.simplifyPolyline(points, tolerance);\n return simplified.length >= 2 ? simplified : points;\n } catch {\n return points;\n }\n}\n\nfunction getDistanceToPathSafe(path: NaviPoint[], target: NaviPoint): number {\n if (path.length === 0) {\n return Number.POSITIVE_INFINITY;\n }\n\n try {\n const nearest = ExpoGaodeMapModule.getNearestPointOnPath(path, target);\n if (nearest) {\n return nearest.distanceMeters;\n }\n } catch {\n // ignore and fallback to point-to-point scan\n }\n\n return path.reduce((minimum, point) => {\n const distance = distanceBetweenCoordinatesSafe(point, target);\n return distance < minimum ? distance : minimum;\n }, Number.POSITIVE_INFINITY);\n}\n\nfunction samplePolyline(points: NaviPoint[], targetSamples = 36): NaviPoint[] {\n if (points.length <= targetSamples) {\n return points;\n }\n\n const step = Math.max(1, Math.floor(points.length / targetSamples));\n const samples = points.filter((_, index) => index % step === 0);\n const lastPoint = points[points.length - 1];\n const lastSample = samples[samples.length - 1];\n if (\n !lastSample ||\n lastSample.latitude !== lastPoint.latitude ||\n lastSample.longitude !== lastPoint.longitude\n ) {\n samples.push(lastPoint);\n }\n return samples;\n}\n\nfunction selectEvenlySpacedPoints(points: NaviPoint[], count: number): NaviPoint[] {\n if (count <= 0 || points.length <= count) {\n return points;\n }\n\n return Array.from({ length: count }, (_, index) => {\n const rawIndex = Math.round(((index + 1) * (points.length + 1)) / (count + 1)) - 1;\n const boundedIndex = Math.min(points.length - 1, Math.max(0, rawIndex));\n return points[boundedIndex];\n });\n}\n\nfunction normalizeWebRoutePolyline(webRoute: WebPlannedRoute): NaviPoint[] {\n const directPolyline = dedupeAdjacentPoints(webRoute.polyline ?? []);\n if (directPolyline.length > 1) {\n return directPolyline;\n }\n\n const stepPolyline = dedupeAdjacentPoints(\n (webRoute.steps ?? []).flatMap((step) => step.polyline ?? [])\n );\n return stepPolyline;\n}\n\nexport function buildAnchorWaypointsFromWebRoute(\n options: BuildAnchorWaypointsOptions\n): NaviPoint[] {\n const {\n webRoute,\n maxViaPoints = 8,\n simplifyTolerance = 80,\n minSpacingMeters = 800,\n } = options;\n\n const polyline = normalizeWebRoutePolyline(webRoute);\n if (polyline.length <= 2) {\n return [];\n }\n\n const simplified = dedupeAdjacentPoints(\n simplifyPolylineSafe(polyline, simplifyTolerance)\n );\n const candidatePoints = simplified.length > 2 ? simplified : polyline;\n const interiorPoints = candidatePoints.slice(1, -1);\n\n const spacedPoints: NaviPoint[] = [];\n let previousPoint = polyline[0];\n\n for (const point of interiorPoints) {\n if (distanceBetweenCoordinatesSafe(previousPoint, point) < minSpacingMeters) {\n continue;\n }\n spacedPoints.push(point);\n previousPoint = point;\n }\n\n const waypoints = spacedPoints.length > 0\n ? spacedPoints\n : candidatePoints.length > 2\n ? [candidatePoints[Math.floor(candidatePoints.length / 2)]]\n : [];\n\n return dedupeAdjacentPoints(selectEvenlySpacedPoints(waypoints, maxViaPoints));\n}\n\nasync function loadWebApiFallback(feature: '公交路径规划' | '规避路线预览') {\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const webApi = require('expo-gaode-map-web-api');\n if (typeof webApi?.GaodeWebAPI !== 'function') {\n throw new Error('expo-gaode-map-web-api 未导出 GaodeWebAPI');\n }\n return webApi;\n } catch {\n throw new Error(\n `${feature}依赖 expo-gaode-map-web-api。请安装该包,并在 ExpoGaodeMapModule.initSDK 中提供 webKey。`\n );\n }\n}\n\nfunction normalizeAvoidPolygons(polygons?: DriveRouteOptions['avoidPolygons']): string | undefined {\n if (!polygons?.length) {\n return undefined;\n }\n\n const normalized = polygons\n .map((polygon) =>\n polygon\n .map((point) => `${point.longitude},${point.latitude}`)\n .join(';')\n )\n .filter(Boolean)\n .join('|');\n\n return normalized || undefined;\n}\n\nfunction normalizeDrivingStrategy(\n strategy?: DriveStrategy\n): number | undefined {\n // 导航 SDK 与 Web API 的策略枚举不完全一致。\n // 这里做“尽量等价”的映射,主要用于带规避参数时的路线预览。\n switch (strategy) {\n case DriveStrategy.FASTEST:\n return 38;\n case DriveStrategy.FEE_FIRST:\n return 1;\n case DriveStrategy.SHORTEST:\n return 2;\n case DriveStrategy.NO_EXPRESSWAYS:\n return 37;\n case DriveStrategy.AVOID_CONGESTION:\n return 33;\n case DriveStrategy.NO_HIGHWAY:\n return 35;\n case DriveStrategy.NO_HIGHWAY_AVOID_CONGESTION:\n return 40;\n case DriveStrategy.AVOID_COST_CONGESTION:\n case DriveStrategy.AVOID_CONGESTION_COST:\n return 41;\n case DriveStrategy.NO_HIGHWAY_AVOID_COST_CONGESTION:\n return 43;\n default:\n return undefined;\n }\n}\n\nfunction normalizeDrivingRouteResult(\n options: DriveRouteOptions,\n result: any\n): DriveRouteResult {\n const paths = result?.route?.paths ?? [];\n const routes = paths.map((path: any, index: number) => {\n const segments = (path?.steps ?? []).map((step: any) => ({\n instruction: step?.instruction ?? '',\n orientation: step?.orientation,\n road: step?.road_name,\n distance: Number(step?.step_distance ?? 0),\n duration: Number(step?.cost?.duration ?? 0),\n polyline: parsePolyline(step?.polyline),\n assistantAction: step?.assistant_action,\n tollDistance: step?.cost?.toll_distance ? Number(step.cost.toll_distance) : undefined,\n tollCost: step?.cost?.tolls ? Number(step.cost.tolls) : undefined,\n }));\n\n const restrictionCode = path?.restriction != null ? Number(path.restriction) : undefined;\n\n return {\n id: index,\n start: options.from,\n end: options.to,\n distance: Number(path?.distance ?? 0),\n duration: Number(path?.cost?.duration ?? path?.duration ?? 0),\n segments,\n polyline: segments.flatMap((segment: { polyline: NaviPoint[] }) => segment.polyline),\n tollDistance: path?.cost?.toll_distance ? Number(path.cost.toll_distance) : undefined,\n tollCost: path?.cost?.tolls ? Number(path.cost.tolls) : undefined,\n trafficLightCount: path?.cost?.traffic_lights ? Number(path.cost.traffic_lights) : undefined,\n restrictionCode,\n restrictionInfo:\n restrictionCode === 0\n ? '限行已规避或未限行'\n : restrictionCode === 1\n ? '限行无法规避'\n : undefined,\n strategy: options.strategy,\n };\n });\n\n return {\n count: Number(result?.count ?? routes.length),\n mainPathIndex: 0,\n routeIds: routes.map((route: RouteResult) => route.id),\n routes,\n taxiCost: result?.route?.taxi_cost ? Number(result.route.taxi_cost) : undefined,\n };\n}\n\nfunction shouldUseAvoidPreviewFallback(options: DriveRouteOptions): boolean {\n return Boolean(options.avoidRoad?.trim() || options.avoidPolygons?.length);\n}\n\ntype RouteLike = RouteResult & {\n routeId?: number;\n steps?: Array<{ polyline?: NaviPoint[] }>;\n};\n\nfunction extractRoutePolyline(route: RouteLike): NaviPoint[] {\n if (Array.isArray(route.polyline) && route.polyline.length > 0) {\n return route.polyline;\n }\n\n const segments = Array.isArray(route.segments) ? route.segments : [];\n if (segments.length > 0) {\n return dedupeAdjacentPoints(\n segments.flatMap((segment) => segment.polyline ?? [])\n );\n }\n\n const steps = Array.isArray(route.steps) ? route.steps : [];\n if (steps.length > 0) {\n return dedupeAdjacentPoints(\n steps.flatMap((step) => step.polyline ?? [])\n );\n }\n\n return [];\n}\n\nfunction resolveIndependentRouteId(\n result: IndependentRouteResult,\n route: RouteLike,\n routeIndex: number\n): number | undefined {\n if (typeof route.id === 'number') {\n return route.id;\n }\n if (typeof route.routeId === 'number') {\n return route.routeId;\n }\n return result.routeIds?.[routeIndex];\n}\n\nfunction scoreIndependentRouteAgainstWebPolyline(\n result: IndependentRouteResult,\n route: RouteLike,\n routeIndex: number,\n webPolyline: NaviPoint[],\n anchorWaypoints: NaviPoint[],\n thresholdMeters: number\n): FollowWebPlannedRouteCandidate | null {\n const nativePolyline = extractRoutePolyline(route);\n if (nativePolyline.length === 0 || webPolyline.length === 0) {\n return null;\n }\n\n const sampledNativePoints = samplePolyline(nativePolyline);\n const pointDistances = sampledNativePoints.map((point) =>\n getDistanceToPathSafe(webPolyline, point)\n );\n const averageDeviationMeters =\n pointDistances.reduce((total, distance) => total + distance, 0) / pointDistances.length;\n const maxDeviationMeters = Math.max(...pointDistances);\n\n const missedAnchorCount = anchorWaypoints.reduce((count, point) => (\n getDistanceToPathSafe(nativePolyline, point) > thresholdMeters ? count + 1 : count\n ), 0);\n\n return {\n routeId: resolveIndependentRouteId(result, route, routeIndex),\n routeIndex,\n averageDeviationMeters,\n maxDeviationMeters,\n missedAnchorCount,\n score:\n averageDeviationMeters +\n maxDeviationMeters * 0.35 +\n missedAnchorCount * thresholdMeters * 0.5,\n };\n}\n\nfunction evaluateIndependentResultAgainstWebRoute(\n independentResult: IndependentRouteResult,\n webPolyline: NaviPoint[],\n anchorWaypoints: NaviPoint[],\n maxDeviationMeters: number\n) {\n const candidateMatches = independentResult.routes\n .map((route, routeIndex) =>\n scoreIndependentRouteAgainstWebPolyline(\n independentResult,\n route as RouteLike,\n routeIndex,\n webPolyline,\n anchorWaypoints,\n maxDeviationMeters\n )\n )\n .filter((candidate): candidate is FollowWebPlannedRouteCandidate => candidate !== null)\n .sort((routeA, routeB) => routeA.score - routeB.score);\n\n const bestMatch = candidateMatches[0];\n const selectedRoute = bestMatch\n ? independentResult.routes[bestMatch.routeIndex] as RouteLike\n : undefined;\n const nativePolyline = selectedRoute ? extractRoutePolyline(selectedRoute) : [];\n\n let mode: FollowWebPlannedRouteResult['mode'] = 'preview_only';\n let reason = '未找到足够接近 Web 规划线的原生路线';\n\n if (bestMatch) {\n if (\n bestMatch.averageDeviationMeters <= maxDeviationMeters / 2 &&\n bestMatch.maxDeviationMeters <= maxDeviationMeters &&\n bestMatch.missedAnchorCount === 0\n ) {\n mode = 'matched';\n reason = '原生路线与 Web 规划线高度接近,可直接按近似结果导航';\n } else if (\n bestMatch.averageDeviationMeters <= maxDeviationMeters &&\n bestMatch.maxDeviationMeters <= maxDeviationMeters * 2\n ) {\n mode = 'approximate';\n reason = '原生路线与 Web 规划线接近,但仍存在可见偏差';\n }\n }\n\n return {\n candidateMatches,\n bestMatch,\n selectedRoute,\n nativePolyline,\n mode,\n reason,\n };\n}\n\nexport async function followWebPlannedRoute(\n options: FollowWebPlannedRouteOptions\n): Promise<FollowWebPlannedRouteResult> {\n const {\n from,\n to,\n webRoute,\n strategy,\n carNumber,\n restriction,\n maxDeviationMeters = 120,\n startNavigation = false,\n naviType = 0,\n } = options;\n\n const webPolyline = normalizeWebRoutePolyline(webRoute);\n if (webPolyline.length < 2) {\n throw new Error('webRoute.polyline 至少需要 2 个点');\n }\n\n const anchorWaypoints = buildAnchorWaypointsFromWebRoute(options);\n const anchoredIndependentResult = await independentDriveRoute({\n from,\n to,\n strategy,\n carNumber,\n restriction,\n waypoints: anchorWaypoints,\n });\n\n let independentResult = anchoredIndependentResult;\n let evaluation = evaluateIndependentResultAgainstWebRoute(\n anchoredIndependentResult,\n webPolyline,\n anchorWaypoints,\n maxDeviationMeters\n );\n let navigationUsesAnchorWaypoints = anchorWaypoints.length > 0;\n\n if (evaluation.bestMatch && evaluation.mode !== 'preview_only' && anchorWaypoints.length > 0) {\n try {\n const directIndependentResult = await independentDriveRoute({\n from,\n to,\n strategy,\n carNumber,\n restriction,\n });\n\n const directEvaluation = evaluateIndependentResultAgainstWebRoute(\n directIndependentResult,\n webPolyline,\n [],\n maxDeviationMeters\n );\n const anchoredBest = evaluation.bestMatch;\n const directBest = directEvaluation.bestMatch;\n\n const canSwitchToDirectNavigation =\n Boolean(directBest) &&\n directEvaluation.mode !== 'preview_only' &&\n directBest!.averageDeviationMeters <= Math.max(\n anchoredBest.averageDeviationMeters + 45,\n anchoredBest.averageDeviationMeters * 1.45\n ) &&\n directBest!.maxDeviationMeters <= Math.max(\n anchoredBest.maxDeviationMeters + 90,\n anchoredBest.maxDeviationMeters * 1.45\n );\n\n if (canSwitchToDirectNavigation) {\n ExpoGaodeMapNavigationModule.clearIndependentRoute({\n token: anchoredIndependentResult.token,\n }).catch(() => {});\n independentResult = directIndependentResult;\n evaluation = directEvaluation;\n navigationUsesAnchorWaypoints = false;\n evaluation.reason =\n directEvaluation.mode === 'matched'\n ? '已切换为无途经点导航结果,且与 Web 规划线高度接近'\n : '已切换为无途经点导航结果,但与 Web 规划线仍存在轻微偏差';\n } else {\n ExpoGaodeMapNavigationModule.clearIndependentRoute({\n token: directIndependentResult.token,\n }).catch(() => {});\n evaluation.reason = `${evaluation.reason};最终导航仍需依赖锚点途经点逼近 Web 线路`;\n }\n } catch {\n evaluation.reason = `${evaluation.reason};无途经点重算失败,最终导航仍需依赖锚点途经点`;\n }\n }\n\n let navigationStarted = false;\n if (startNavigation && evaluation.bestMatch && evaluation.mode !== 'preview_only') {\n navigationStarted = await startNaviWithIndependentPath({\n token: independentResult.token,\n naviType,\n routeId: evaluation.bestMatch.routeId,\n routeIndex:\n evaluation.bestMatch.routeId == null ? evaluation.bestMatch.routeIndex : undefined,\n });\n }\n\n return {\n mode: evaluation.mode,\n token: independentResult.token,\n anchorWaypoints,\n webDistance: calculatePathLengthSafe(webPolyline),\n nativeDistance:\n evaluation.nativePolyline.length > 1\n ? calculatePathLengthSafe(evaluation.nativePolyline)\n : undefined,\n selectedRouteId: evaluation.bestMatch?.routeId,\n selectedRouteIndex: evaluation.bestMatch?.routeIndex,\n averageDeviationMeters: evaluation.bestMatch?.averageDeviationMeters,\n maxDeviationMeters: evaluation.bestMatch?.maxDeviationMeters,\n navigationStarted,\n navigationUsesAnchorWaypoints,\n independentResult,\n candidateMatches: evaluation.candidateMatches,\n reason: evaluation.reason,\n };\n}\n\nasync function calculateDriveRouteWithAvoidPreview(\n options: DriveRouteOptions\n): Promise<DriveRouteResult> {\n const { GaodeWebAPI } = await loadWebApiFallback('规避路线预览');\n const api = new GaodeWebAPI();\n const result = await api.route.driving(\n `${options.from.longitude},${options.from.latitude}`,\n `${options.to.longitude},${options.to.latitude}`,\n {\n strategy: normalizeDrivingStrategy(options.strategy),\n waypoints: options.waypoints?.map(\n (point) => `${point.longitude},${point.latitude}`\n ),\n avoidpolygons: normalizeAvoidPolygons(options.avoidPolygons),\n avoidroad: options.avoidRoad?.trim() || undefined,\n plate: options.carNumber,\n show_fields: 'cost,navi,polyline',\n }\n );\n\n return normalizeDrivingRouteResult(options, result);\n}\n\nfunction normalizeTransitRouteResult(\n options: TransitRouteOptions,\n result: any\n): DriveRouteResult {\n // 导航包内部仍保持独立实现;\n // 这里只是在“公交无法由导航 SDK 直算”时,把 Web API 结果映射成现有 RouteResult 形状。\n const routes = (result?.route?.transits ?? []).map((transit: any, index: number) => {\n const polyline = (transit?.segments ?? []).flatMap((segment: any) => [\n ...(segment.walking?.steps?.flatMap((step: any) => parsePolyline(step.polyline)) ?? []),\n ...(segment.bus?.buslines?.flatMap((line: any) => parsePolyline(line.polyline)) ?? []),\n ...(segment.railway?.buslines?.flatMap((line: any) => parsePolyline(line.polyline)) ?? []),\n ]);\n\n return {\n id: index,\n start: options.from,\n end: options.to,\n distance: Number(transit?.distance ?? 0),\n duration: Number(transit?.cost?.duration ?? 0),\n segments: [],\n polyline,\n tollDistance: 0,\n tollCost: Number(transit?.cost?.transit_fee ?? 0),\n strategy: options.strategy,\n };\n });\n\n return {\n count: routes.length,\n mainPathIndex: 0,\n routes,\n };\n}\n\nfunction hasStrategyOption(\n options: RouteOptions\n): options is WalkRouteOptions | RideRouteOptions {\n return 'strategy' in options;\n}\n\nfunction isMotorcycleRouteOptions(\n options: RouteOptions | MotorcycleRouteOptions\n): options is MotorcycleRouteOptions {\n return 'motorcycleCC' in options;\n}\n\n// 导出官方导航界面组件\nexport { \n ExpoGaodeMapNaviView, \n type ExpoGaodeMapNaviViewRef,\n // 兼容旧版本名称\n ExpoGaodeMapNaviView as NaviView,\n type ExpoGaodeMapNaviViewRef as NaviViewRef \n} from './ExpoGaodeMapNaviView';\n\n/**\n * 初始化导航模块(可选)\n */\nexport const initNavigation = () => ExpoGaodeMapNavigationModule.initNavigation();\n\n/**\n * 销毁所有路径计算器实例\n * 用于页面切换时释放资源,避免\"Another route calculation is in progress\"错误\n */\nexport const destroyAllCalculators = () => ExpoGaodeMapNavigationModule.destroyAllCalculators();\n\n/**\n * 路径规划(通用方法)\n */\nexport async function calculateRoute(\n options: RouteOptions\n): Promise<RouteResult | DriveRouteResult> {\n if ('type' in options && options.type === RouteType.TRANSIT) {\n return calculateTransitRoute(options as TransitRouteOptions);\n }\n\n // 1. 货车\n if ('size' in options) {\n return calculateTruckRoute(options as TruckRouteOptions);\n }\n \n // 2. 步行、骑行、电动车\n if ('multiple' in options || 'travelStrategy' in options) {\n if ('usePoi' in options) return calculateEBikeRoute(options as EBikeRouteOptions);\n \n // 策略判断:0 或 1 通常为骑行策略,其余默认步行\n const strategy = hasStrategyOption(options) ? options.strategy : undefined;\n if (strategy === 0 || strategy === 1) {\n return calculateRideRoute(options as RideRouteOptions);\n }\n return calculateWalkRoute(options as WalkRouteOptions);\n }\n\n // 3. 摩托车 (通过 carType 或 motorcycleCC 判断)\n if (isMotorcycleRouteOptions(options)) {\n return calculateMotorcycleRoute(options as MotorcycleRouteOptions);\n }\n\n // 4. 默认驾车\n return calculateDriveRoute(options as DriveRouteOptions);\n}\n\n/**\n * 驾车路径规划\n */\nexport async function calculateDriveRoute(\n options: DriveRouteOptions\n): Promise<DriveRouteResult> {\n if (shouldUseAvoidPreviewFallback(options)) {\n try {\n return await calculateDriveRouteWithAvoidPreview(options);\n } catch {\n // 若未安装 Web API 包,则保持现有原生逻辑不变。\n // 这样不会破坏当前依赖 Android 反射重载的项目。\n }\n }\n\n return ExpoGaodeMapNavigationModule.calculateDriveRoute(options);\n}\n\n/**\n * 步行路径规划\n */\nexport const calculateWalkRoute = (options: WalkRouteOptions) => \n ExpoGaodeMapNavigationModule.calculateWalkRoute(options);\n\n/**\n * 骑行路径规划\n */\nexport const calculateRideRoute = (options: RideRouteOptions) => \n ExpoGaodeMapNavigationModule.calculateRideRoute(options);\n\n/**\n * 骑行电动车路径规划\n */\nexport const calculateEBikeRoute = (options: EBikeRouteOptions) => \n ExpoGaodeMapNavigationModule.calculateEBikeRoute(options);\n\n/**\n * 货车路径规划\n */\nexport const calculateTruckRoute = (options: TruckRouteOptions) => \n ExpoGaodeMapNavigationModule.calculateTruckRoute(options);\n\n/**\n * 摩托车路径规划(车类型为 11,支持传入排量)\n */\nexport const calculateMotorcycleRoute = (options: MotorcycleRouteOptions) => \n ExpoGaodeMapNavigationModule.calculateMotorcycleRoute(options);\n\n/**\n * 公交换乘路径规划(运行时 fallback 到 Web API)\n */\nexport async function calculateTransitRoute(options: TransitRouteOptions): Promise<DriveRouteResult> {\n // 运行时按需加载,避免把 navigation 包和 web-api 包在构建期强绑定。\n const { GaodeWebAPI, TransitStrategy } = await loadWebApiFallback('公交路径规划');\n const api = new GaodeWebAPI();\n const result = await api.route.transit(\n `${options.from.longitude},${options.from.latitude}`,\n `${options.to.longitude},${options.to.latitude}`,\n options.city1,\n options.city2,\n {\n strategy: options.strategy ?? TransitStrategy.RECOMMENDED,\n AlternativeRoute: options.alternativeRoute,\n show_fields: 'cost,polyline',\n }\n );\n\n return normalizeTransitRouteResult(options, result);\n}\n\n/**\n * 独立驾车路径规划\n *\n * - 只负责生成独立路径组,不会自动开始导航\n * - 适合路线预览、行前选路、自定义路线选择页\n * - 后续可配合 selectIndependentRoute / startNaviWithIndependentPath 使用\n */\nexport const independentDriveRoute = (options: IndependentDriveRouteOptions) => \n ExpoGaodeMapNavigationModule.independentDriveRoute(options);\n/**\n * 独立货车路径规划\n *\n * - 只负责生成独立路径组,不会自动开始导航\n * - 适合路线预览、行前选路\n */\nexport const independentTruckRoute = (options: IndependentTruckRouteOptions) => \n ExpoGaodeMapNavigationModule.independentTruckRoute(options);\n/**\n * 独立步行路径规划\n *\n * - 只负责生成独立路径组,不会自动开始导航\n * - 适合路线预览、行前选路\n */\nexport const independentWalkRoute = (options: IndependentWalkRouteOptions) => \n ExpoGaodeMapNavigationModule.independentWalkRoute(options);\n\n/**\n * 独立骑行路径规划\n *\n * - 只负责生成独立路径组,不会自动开始导航\n * - 适合路线预览、行前选路\n */\nexport const independentRideRoute = (options: IndependentRideRouteOptions) => \n ExpoGaodeMapNavigationModule.independentRideRoute(options);\n\n/**\n * 独立摩托车路径规划\n *\n * - 只负责生成独立路径组,不会自动开始导航\n * - 适合路线预览、行前选路\n */\nexport const independentMotorcycleRoute = (options: IndependentMotorcycleRouteOptions) => \n ExpoGaodeMapNavigationModule.independentMotorcycleRoute(options);\n\n/**\n * 独立路径组:选主路线\n *\n * - 仅切换 token 对应路径组里的当前主路线\n * - 本身不会开始导航\n */\nexport const selectIndependentRoute = (options: SelectIndependentRouteOptions) => \n ExpoGaodeMapNavigationModule.selectIndependentRoute(options);\n\n/**\n * 独立路径组:使用指定路线启动导航\n *\n * - 这是模块级启动入口,不依赖 ExpoGaodeMapNaviView ref\n * - 适合工具函数、流程封装、非嵌入式页面场景\n * - 若你已经持有嵌入式导航视图 ref,更适合调用 ref.startNavigationWithIndependentPath(...)\n */\nexport const startNaviWithIndependentPath = (options: StartNaviWithIndependentPathOptions) => \n ExpoGaodeMapNavigationModule.startNaviWithIndependentPath(options);\n\n/**\n * 打开高德官方导航页(Android 原生 AmapNaviPage)\n */\nexport const openOfficialNaviPage = (options: OfficialNaviPageOptions) =>\n ExpoGaodeMapNavigationModule.openOfficialNaviPage(options);\n\n/**\n * 独立路径组:清理\n *\n * - 释放 independentXXXRoute 生成的 token 对应缓存\n * - 当页面只保留路线预览、不再需要后续选路/导航时,建议主动清理\n */\nexport const clearIndependentRoute = (options: ClearIndependentRouteOptions) => \n ExpoGaodeMapNavigationModule.clearIndependentRoute(options);\n\n// 导出导航相关类型与枚举(Coordinates 从 map 模块导出)\nexport type {\n NaviPoint,\n RouteOptions,\n DriveRouteOptions,\n WalkRouteOptions,\n RideRouteOptions,\n EBikeRouteOptions,\n TransitRouteOptionsType as TransitRouteOptions,\n TruckRouteOptions,\n RouteResult,\n DriveRouteResult,\n IndependentRouteResult,\n IndependentDriveRouteOptions,\n IndependentTruckRouteOptions,\n IndependentWalkRouteOptions,\n IndependentRideRouteOptions,\n SelectIndependentRouteOptions,\n StartNaviWithIndependentPathOptions,\n OfficialNaviPageOptions,\n ClearIndependentRouteOptions,\n MotorcycleRouteOptions,\n IndependentMotorcycleRouteOptions,\n BuildAnchorWaypointsOptions,\n FollowWebPlannedRouteOptions,\n FollowWebPlannedRouteResult,\n FollowWebPlannedRouteCandidate,\n WebPlannedRoute,\n NaviInfoUpdateEvent,\n NaviLaneInfoEvent,\n NaviTrafficStatusesEvent,\n NaviVisualStateEvent,\n ExpoGaodeMapNaviViewProps,\n};\n\nexport {\n RouteType,\n DriveStrategy,\n WalkStrategy,\n RideStrategy,\n TruckSize,\n TravelStrategy,\n};\n\n// 精简后的默认导出\nexport default {\n // 初始化\n initNavigation,\n destroyAllCalculators,\n\n // 路径规划\n calculateRoute,\n calculateDriveRoute,\n calculateWalkRoute,\n calculateRideRoute,\n calculateEBikeRoute,\n calculateTransitRoute,\n calculateTruckRoute,\n calculateMotorcycleRoute,\n buildAnchorWaypointsFromWebRoute,\n followWebPlannedRoute,\n\n // 独立路径规划\n independentDriveRoute,\n independentTruckRoute,\n independentWalkRoute,\n independentRideRoute,\n independentMotorcycleRoute,\n\n // 独立路径组操作\n selectIndependentRoute,\n startNaviWithIndependentPath,\n openOfficialNaviPage,\n clearIndependentRoute,\n};\n\nexport {\n ExpoGaodeMapNavigationModule,\n}\n"]}
|
|
@@ -227,6 +227,8 @@ export interface MotorcycleRouteOptions {
|
|
|
227
227
|
prioritiseHighway?: boolean;
|
|
228
228
|
/** 车牌号(可选) */
|
|
229
229
|
carNumber?: string;
|
|
230
|
+
/** 是否考虑限行 */
|
|
231
|
+
restriction?: boolean;
|
|
230
232
|
/** 摩托车排量(单位:cc,可选) */
|
|
231
233
|
motorcycleCC?: number;
|
|
232
234
|
}
|
|
@@ -270,6 +272,8 @@ export interface IndependentMotorcycleRouteOptions {
|
|
|
270
272
|
prioritiseHighway?: boolean;
|
|
271
273
|
/** 车牌号(可选) */
|
|
272
274
|
carNumber?: string;
|
|
275
|
+
/** 是否考虑限行 */
|
|
276
|
+
restriction?: boolean;
|
|
273
277
|
/** 摩托车排量(单位:cc,可选) */
|
|
274
278
|
motorcycleCC?: number;
|
|
275
279
|
}
|
|
@@ -277,7 +281,9 @@ export interface IndependentMotorcycleRouteOptions {
|
|
|
277
281
|
* 独立步行路径规划参数
|
|
278
282
|
*
|
|
279
283
|
* 说明:
|
|
284
|
+
* - 这是“独立算路”参数:只负责生成可预览/可选路的独立路径组,不会自动开始导航
|
|
280
285
|
* - 通过 travelStrategy 指定 SINGLE/MULTIPLE;或使用 multiple=true 开启多路线
|
|
286
|
+
* - 生成结果后,可继续调用模块级 startNaviWithIndependentPath,或在嵌入式导航视图 ref 上调用 startNavigationWithIndependentPath
|
|
281
287
|
*/
|
|
282
288
|
export interface IndependentWalkRouteOptions {
|
|
283
289
|
/** 起点坐标 */
|
|
@@ -294,7 +300,7 @@ export interface IndependentWalkRouteOptions {
|
|
|
294
300
|
name?: string;
|
|
295
301
|
poiId?: string;
|
|
296
302
|
};
|
|
297
|
-
/**
|
|
303
|
+
/** 途经点列表。算路结果支持传入;若后续进入嵌入式导航,iOS 骑步行场景当前不支持像驾车那样额外挂载自定义文案气泡。 */
|
|
298
304
|
waypoints?: Array<{
|
|
299
305
|
latitude: number;
|
|
300
306
|
longitude: number;
|
|
@@ -310,7 +316,9 @@ export interface IndependentWalkRouteOptions {
|
|
|
310
316
|
* 独立骑行路径规划参数
|
|
311
317
|
*
|
|
312
318
|
* 说明:
|
|
319
|
+
* - 这是“独立算路”参数:只负责生成可预览/可选路的独立路径组,不会自动开始导航
|
|
313
320
|
* - 通过 travelStrategy 指定 SINGLE/MULTIPLE;或使用 multiple=true 开启多路线
|
|
321
|
+
* - 生成结果后,可继续调用模块级 startNaviWithIndependentPath,或在嵌入式导航视图 ref 上调用 startNavigationWithIndependentPath
|
|
314
322
|
*/
|
|
315
323
|
export interface IndependentRideRouteOptions {
|
|
316
324
|
/** 起点坐标 */
|
|
@@ -327,7 +335,7 @@ export interface IndependentRideRouteOptions {
|
|
|
327
335
|
name?: string;
|
|
328
336
|
poiId?: string;
|
|
329
337
|
};
|
|
330
|
-
/**
|
|
338
|
+
/** 途经点列表。算路结果支持传入;若后续进入嵌入式导航,iOS 骑步行场景当前不支持像驾车那样额外挂载自定义文案气泡。 */
|
|
331
339
|
waypoints?: Array<{
|
|
332
340
|
latitude: number;
|
|
333
341
|
longitude: number;
|
|
@@ -343,6 +351,7 @@ export interface IndependentRideRouteOptions {
|
|
|
343
351
|
* 选择独立路径组中的主路线参数
|
|
344
352
|
* - token: 独立算路返回的 token
|
|
345
353
|
* - routeId/routeIndex: 选路(优先使用 routeId;未提供则保持当前主路线)
|
|
354
|
+
* - 仅切换独立路径组里的“当前主路线”,本身不会开始导航
|
|
346
355
|
*/
|
|
347
356
|
export interface SelectIndependentRouteOptions {
|
|
348
357
|
token: number;
|
|
@@ -350,10 +359,14 @@ export interface SelectIndependentRouteOptions {
|
|
|
350
359
|
routeIndex?: number;
|
|
351
360
|
}
|
|
352
361
|
/**
|
|
353
|
-
*
|
|
362
|
+
* 使用独立路径组启动导航参数(模块级 API)
|
|
354
363
|
* - token: 独立算路返回的 token
|
|
355
364
|
* - naviType: 0=GPS; 1=EMULATOR(默认 0)
|
|
356
365
|
* - routeId/routeIndex: 启动前可选路
|
|
366
|
+
*
|
|
367
|
+
* 说明:
|
|
368
|
+
* - 这是模块级启动入口,不依赖某个 ExpoGaodeMapNaviView 实例
|
|
369
|
+
* - 若你已经持有嵌入式导航视图 ref,更适合调用 ref.startNavigationWithIndependentPath(...)
|
|
357
370
|
*/
|
|
358
371
|
export interface StartNaviWithIndependentPathOptions {
|
|
359
372
|
token: number;
|
|
@@ -363,6 +376,8 @@ export interface StartNaviWithIndependentPathOptions {
|
|
|
363
376
|
}
|
|
364
377
|
/**
|
|
365
378
|
* 清理独立路径组
|
|
379
|
+
* - token: 独立算路返回的 token
|
|
380
|
+
* - 当页面只需要预览、不再需要后续选路/导航时,建议主动清理
|
|
366
381
|
*/
|
|
367
382
|
export interface ClearIndependentRouteOptions {
|
|
368
383
|
token: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"independent.types.d.ts","sourceRoot":"","sources":["../../src/types/independent.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,iBAAiB;IACjB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,mBAAmB;IACnB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa;IACb,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa;IACb,QAAQ,EAAE,eAAe,CAAC;IAC1B,qBAAqB;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,4BAA6B,SAAQ,2BAA2B;IAC/E,SAAS;IACT,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS;IACT,EAAE,EAAE,WAAW,CAAC;IAChB,WAAW;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU;IACV,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC;IAChC,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,8BAA8B;IAC7C,iBAAiB;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc;IACd,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW;IACX,IAAI,EAAE,SAAS,GAAG,aAAa,GAAG,cAAc,CAAC;IACjD,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa;IACb,eAAe,EAAE,WAAW,EAAE,CAAC;IAC/B,eAAe;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa;IACb,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe;IACf,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,eAAe;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc;IACd,iBAAiB,EAAE,OAAO,CAAC;IAC3B,0BAA0B;IAC1B,6BAA6B,EAAE,OAAO,CAAC;IACvC,eAAe;IACf,iBAAiB,EAAE,sBAAsB,CAAC;IAC1C,eAAe;IACf,gBAAgB,EAAE,8BAA8B,EAAE,CAAC;IACnD,SAAS;IACT,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,4BAA4B;IAC3C,iCAAiC;IACjC,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,WAAW;IACX,EAAE,EAAE;QACF,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,YAAY;IACZ,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,WAAW;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW;IACX,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW;IACX,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW;IACX,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU;IACV,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,4BAA4B;IAC3C,WAAW;IACX,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,WAAW;IACX,EAAE,EAAE;QACF,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,YAAY;IACZ,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,WAAW;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW;IACX,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW;IACX,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW;IACX,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU;IACV,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,WAAW;IACX,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,WAAW;IACX,EAAE,EAAE;QACF,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,YAAY;IACZ,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,WAAW;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW;IACX,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW;IACX,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW;IACX,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,iCAAiC;IAChD,WAAW;IACX,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,WAAW;IACX,EAAE,EAAE;QACF,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,YAAY;IACZ,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,WAAW;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW;IACX,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW;IACX,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW;IACX,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED
|
|
1
|
+
{"version":3,"file":"independent.types.d.ts","sourceRoot":"","sources":["../../src/types/independent.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"independent.types.js","sourceRoot":"","sources":["../../src/types/independent.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Coordinates } from './coordinates.types';\nimport type { RouteResult } from './route.types';\n\n/**\n * 独立路径规划返回结构(不会影响当前导航状态)\n *\n * - routes: 可直接用于路线预览(与普通算路的 RouteResult 结构一致)\n * - mainPathIndex: 主路线索引(调用 startNaviWithPath 前可选路)\n */\nexport interface IndependentRouteResult {\n independent: true;\n token: number;\n count: number;\n mainPathIndex: number;\n routeIds: number[];\n routes: RouteResult[];\n}\n\nexport interface WebPlannedRouteStep {\n /** Web 路线分段点集 */\n polyline?: Coordinates[];\n /** 主动作(可选) */\n action?: string;\n /** 辅助动作(可选) */\n assistantAction?: string;\n}\n\nexport interface WebPlannedRoute {\n /** Web 规划出的完整折线 */\n polyline: Coordinates[];\n /** 可选步骤信息 */\n steps?: WebPlannedRouteStep[];\n}\n\nexport interface BuildAnchorWaypointsOptions {\n /** Web 路线 */\n webRoute: WebPlannedRoute;\n /** 最大途经点数量(不含起终点) */\n maxViaPoints?: number;\n /** 抽稀容差(米) */\n simplifyTolerance?: number;\n /** 相邻锚点的最小间距(米) */\n minSpacingMeters?: number;\n}\n\nexport interface FollowWebPlannedRouteOptions extends BuildAnchorWaypointsOptions {\n /** 起点 */\n from: Coordinates;\n /** 终点 */\n to: Coordinates;\n /** 驾车策略 */\n strategy?: number;\n /** 车牌号 */\n carNumber?: string;\n /** 是否考虑限行 */\n restriction?: boolean;\n /** 避让区域元信息(可选)。当前 followWebPlannedRoute 的原生匹配阶段不会再次直接透传该参数。 */\n avoidPolygons?: Coordinates[][];\n /** 避让道路元信息(可选)。当前 followWebPlannedRoute 的原生匹配阶段不会再次直接透传该参数。 */\n avoidRoad?: string;\n /** 判定“最大允许偏差”的阈值(米) */\n maxDeviationMeters?: number;\n /** 是否在匹配成功后直接启动导航 */\n startNavigation?: boolean;\n /** 导航类型:0 GPS / 1 模拟 */\n naviType?: number;\n}\n\nexport interface FollowWebPlannedRouteCandidate {\n /** 路线 ID(若可用) */\n routeId?: number;\n /** 路线索引 */\n routeIndex: number;\n /** 平均偏差(米) */\n averageDeviationMeters: number;\n /** 最大偏差(米) */\n maxDeviationMeters: number;\n /** 未命中的锚点数量 */\n missedAnchorCount: number;\n /** 综合评分,越小越接近 */\n score: number;\n}\n\nexport interface FollowWebPlannedRouteResult {\n /** 匹配模式 */\n mode: 'matched' | 'approximate' | 'preview_only';\n /** 独立算路 token */\n token: number;\n /** 提炼出的锚点 */\n anchorWaypoints: Coordinates[];\n /** Web 路线长度 */\n webDistance: number;\n /** 选中原生路线长度 */\n nativeDistance?: number;\n /** 选中路线 ID */\n selectedRouteId?: number;\n /** 选中路线索引 */\n selectedRouteIndex?: number;\n /** 选中路线平均偏差 */\n averageDeviationMeters?: number;\n /** 选中路线最大偏差 */\n maxDeviationMeters?: number;\n /** 是否已启动导航 */\n navigationStarted: boolean;\n /** 最终用于导航的路线是否仍依赖锚点途经点 */\n navigationUsesAnchorWaypoints: boolean;\n /** 原生独立算路结果 */\n independentResult: IndependentRouteResult;\n /** 候选路线匹配结果 */\n candidateMatches: FollowWebPlannedRouteCandidate[];\n /** 说明 */\n reason?: string;\n}\n\n/**\n * 独立驾车路径规划参数\n *\n * 说明:\n * - strategy 仍使用 DriveStrategy 即可;也可改用布尔组合标志(下方四个),原生会在未传 strategy 时走 strategyConvert\n * - restriction:是否考虑限行(与 carNumber 搭配)\n */\nexport interface IndependentDriveRouteOptions {\n /** 起点坐标(可选;不传时由原生 SDK 使用当前位置) */\n from?: {\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n };\n /** 终点坐标 */\n to: {\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n };\n /** 途经点列表 */\n waypoints?: Array<{\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n }>;\n /** 驾车策略 */\n strategy?: number;\n /** 避免拥堵 */\n avoidCongestion?: boolean;\n /** 避免高速 */\n avoidHighway?: boolean;\n /** 避免收费 */\n avoidCost?: boolean;\n /** 优先高速 */\n prioritiseHighway?: boolean;\n /** 车牌号 */\n carNumber?: string;\n /** 是否考虑限行 */\n restriction?: boolean;\n}\n\n/**\n * 独立货车路径规划参数\n *\n * 说明:\n * - 默认 carType=1,支持 carNumber / restriction;可在原生侧扩展轴数/长宽高/载重等\n * - 同样支持布尔组合标志以计算策略\n */\nexport interface IndependentTruckRouteOptions {\n /** 起点坐标 */\n from: {\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n };\n /** 终点坐标 */\n to: {\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n };\n /** 途经点列表 */\n waypoints?: Array<{\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n }>;\n /** 驾车策略 */\n strategy?: number;\n /** 避免拥堵 */\n avoidCongestion?: boolean;\n /** 避免高速 */\n avoidHighway?: boolean;\n /** 避免收费 */\n avoidCost?: boolean;\n /** 优先高速 */\n prioritiseHighway?: boolean;\n /** 车牌号 */\n carNumber?: string;\n /** 是否考虑限行 */\n restriction?: boolean;\n}\n\n/**\n * 摩托车路径规划参数\n *\n * 说明:\n * - 与驾车算路一致,但需在原生侧设置 AMapCarInfo.carType=11,并可传 motorcycleCC(排量)\n * - carNumber 可用于限行策略参考\n */\nexport interface MotorcycleRouteOptions {\n /** 起点坐标 */\n from: {\n latitude: number;\n longitude: number;\n };\n /** 终点坐标 */\n to: {\n latitude: number;\n longitude: number;\n };\n /** 途经点列表 */\n waypoints?: Array<{\n latitude: number;\n longitude: number;\n }>;\n /** 驾车策略 */\n strategy?: number;\n /** 避免拥堵 */\n avoidCongestion?: boolean;\n /** 避免高速 */\n avoidHighway?: boolean;\n /** 避免收费 */\n avoidCost?: boolean;\n /** 优先高速 */\n prioritiseHighway?: boolean;\n /** 车牌号(可选) */\n carNumber?: string;\n /** 摩托车排量(单位:cc,可选) */\n motorcycleCC?: number;\n}\n\n/**\n * 独立摩托车路径规划参数\n *\n * 说明:\n * - 与独立驾车一致,但需在原生侧设置 carType=11,并可传 motorcycleCC\n */\nexport interface IndependentMotorcycleRouteOptions {\n /** 起点坐标 */\n from: {\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n };\n /** 终点坐标 */\n to: {\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n };\n /** 途经点列表 */\n waypoints?: Array<{\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n }>;\n /** 驾车策略 */\n strategy?: number;\n /** 避免拥堵 */\n avoidCongestion?: boolean;\n /** 避免高速 */\n avoidHighway?: boolean;\n /** 避免收费 */\n avoidCost?: boolean;\n /** 优先高速 */\n prioritiseHighway?: boolean;\n /** 车牌号(可选) */\n carNumber?: string;\n /** 摩托车排量(单位:cc,可选) */\n motorcycleCC?: number;\n}\n\n/**\n * 独立步行路径规划参数\n *\n * 说明:\n * - 通过 travelStrategy 指定 SINGLE/MULTIPLE;或使用 multiple=true 开启多路线\n */\nexport interface IndependentWalkRouteOptions {\n /** 起点坐标 */\n from: {\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n };\n /** 终点坐标 */\n to: {\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n };\n /**
|
|
1
|
+
{"version":3,"file":"independent.types.js","sourceRoot":"","sources":["../../src/types/independent.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Coordinates } from './coordinates.types';\nimport type { RouteResult } from './route.types';\n\n/**\n * 独立路径规划返回结构(不会影响当前导航状态)\n *\n * - routes: 可直接用于路线预览(与普通算路的 RouteResult 结构一致)\n * - mainPathIndex: 主路线索引(调用 startNaviWithPath 前可选路)\n */\nexport interface IndependentRouteResult {\n independent: true;\n token: number;\n count: number;\n mainPathIndex: number;\n routeIds: number[];\n routes: RouteResult[];\n}\n\nexport interface WebPlannedRouteStep {\n /** Web 路线分段点集 */\n polyline?: Coordinates[];\n /** 主动作(可选) */\n action?: string;\n /** 辅助动作(可选) */\n assistantAction?: string;\n}\n\nexport interface WebPlannedRoute {\n /** Web 规划出的完整折线 */\n polyline: Coordinates[];\n /** 可选步骤信息 */\n steps?: WebPlannedRouteStep[];\n}\n\nexport interface BuildAnchorWaypointsOptions {\n /** Web 路线 */\n webRoute: WebPlannedRoute;\n /** 最大途经点数量(不含起终点) */\n maxViaPoints?: number;\n /** 抽稀容差(米) */\n simplifyTolerance?: number;\n /** 相邻锚点的最小间距(米) */\n minSpacingMeters?: number;\n}\n\nexport interface FollowWebPlannedRouteOptions extends BuildAnchorWaypointsOptions {\n /** 起点 */\n from: Coordinates;\n /** 终点 */\n to: Coordinates;\n /** 驾车策略 */\n strategy?: number;\n /** 车牌号 */\n carNumber?: string;\n /** 是否考虑限行 */\n restriction?: boolean;\n /** 避让区域元信息(可选)。当前 followWebPlannedRoute 的原生匹配阶段不会再次直接透传该参数。 */\n avoidPolygons?: Coordinates[][];\n /** 避让道路元信息(可选)。当前 followWebPlannedRoute 的原生匹配阶段不会再次直接透传该参数。 */\n avoidRoad?: string;\n /** 判定“最大允许偏差”的阈值(米) */\n maxDeviationMeters?: number;\n /** 是否在匹配成功后直接启动导航 */\n startNavigation?: boolean;\n /** 导航类型:0 GPS / 1 模拟 */\n naviType?: number;\n}\n\nexport interface FollowWebPlannedRouteCandidate {\n /** 路线 ID(若可用) */\n routeId?: number;\n /** 路线索引 */\n routeIndex: number;\n /** 平均偏差(米) */\n averageDeviationMeters: number;\n /** 最大偏差(米) */\n maxDeviationMeters: number;\n /** 未命中的锚点数量 */\n missedAnchorCount: number;\n /** 综合评分,越小越接近 */\n score: number;\n}\n\nexport interface FollowWebPlannedRouteResult {\n /** 匹配模式 */\n mode: 'matched' | 'approximate' | 'preview_only';\n /** 独立算路 token */\n token: number;\n /** 提炼出的锚点 */\n anchorWaypoints: Coordinates[];\n /** Web 路线长度 */\n webDistance: number;\n /** 选中原生路线长度 */\n nativeDistance?: number;\n /** 选中路线 ID */\n selectedRouteId?: number;\n /** 选中路线索引 */\n selectedRouteIndex?: number;\n /** 选中路线平均偏差 */\n averageDeviationMeters?: number;\n /** 选中路线最大偏差 */\n maxDeviationMeters?: number;\n /** 是否已启动导航 */\n navigationStarted: boolean;\n /** 最终用于导航的路线是否仍依赖锚点途经点 */\n navigationUsesAnchorWaypoints: boolean;\n /** 原生独立算路结果 */\n independentResult: IndependentRouteResult;\n /** 候选路线匹配结果 */\n candidateMatches: FollowWebPlannedRouteCandidate[];\n /** 说明 */\n reason?: string;\n}\n\n/**\n * 独立驾车路径规划参数\n *\n * 说明:\n * - strategy 仍使用 DriveStrategy 即可;也可改用布尔组合标志(下方四个),原生会在未传 strategy 时走 strategyConvert\n * - restriction:是否考虑限行(与 carNumber 搭配)\n */\nexport interface IndependentDriveRouteOptions {\n /** 起点坐标(可选;不传时由原生 SDK 使用当前位置) */\n from?: {\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n };\n /** 终点坐标 */\n to: {\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n };\n /** 途经点列表 */\n waypoints?: Array<{\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n }>;\n /** 驾车策略 */\n strategy?: number;\n /** 避免拥堵 */\n avoidCongestion?: boolean;\n /** 避免高速 */\n avoidHighway?: boolean;\n /** 避免收费 */\n avoidCost?: boolean;\n /** 优先高速 */\n prioritiseHighway?: boolean;\n /** 车牌号 */\n carNumber?: string;\n /** 是否考虑限行 */\n restriction?: boolean;\n}\n\n/**\n * 独立货车路径规划参数\n *\n * 说明:\n * - 默认 carType=1,支持 carNumber / restriction;可在原生侧扩展轴数/长宽高/载重等\n * - 同样支持布尔组合标志以计算策略\n */\nexport interface IndependentTruckRouteOptions {\n /** 起点坐标 */\n from: {\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n };\n /** 终点坐标 */\n to: {\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n };\n /** 途经点列表 */\n waypoints?: Array<{\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n }>;\n /** 驾车策略 */\n strategy?: number;\n /** 避免拥堵 */\n avoidCongestion?: boolean;\n /** 避免高速 */\n avoidHighway?: boolean;\n /** 避免收费 */\n avoidCost?: boolean;\n /** 优先高速 */\n prioritiseHighway?: boolean;\n /** 车牌号 */\n carNumber?: string;\n /** 是否考虑限行 */\n restriction?: boolean;\n}\n\n/**\n * 摩托车路径规划参数\n *\n * 说明:\n * - 与驾车算路一致,但需在原生侧设置 AMapCarInfo.carType=11,并可传 motorcycleCC(排量)\n * - carNumber 可用于限行策略参考\n */\nexport interface MotorcycleRouteOptions {\n /** 起点坐标 */\n from: {\n latitude: number;\n longitude: number;\n };\n /** 终点坐标 */\n to: {\n latitude: number;\n longitude: number;\n };\n /** 途经点列表 */\n waypoints?: Array<{\n latitude: number;\n longitude: number;\n }>;\n /** 驾车策略 */\n strategy?: number;\n /** 避免拥堵 */\n avoidCongestion?: boolean;\n /** 避免高速 */\n avoidHighway?: boolean;\n /** 避免收费 */\n avoidCost?: boolean;\n /** 优先高速 */\n prioritiseHighway?: boolean;\n /** 车牌号(可选) */\n carNumber?: string;\n /** 是否考虑限行 */\n restriction?: boolean;\n /** 摩托车排量(单位:cc,可选) */\n motorcycleCC?: number;\n}\n\n/**\n * 独立摩托车路径规划参数\n *\n * 说明:\n * - 与独立驾车一致,但需在原生侧设置 carType=11,并可传 motorcycleCC\n */\nexport interface IndependentMotorcycleRouteOptions {\n /** 起点坐标 */\n from: {\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n };\n /** 终点坐标 */\n to: {\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n };\n /** 途经点列表 */\n waypoints?: Array<{\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n }>;\n /** 驾车策略 */\n strategy?: number;\n /** 避免拥堵 */\n avoidCongestion?: boolean;\n /** 避免高速 */\n avoidHighway?: boolean;\n /** 避免收费 */\n avoidCost?: boolean;\n /** 优先高速 */\n prioritiseHighway?: boolean;\n /** 车牌号(可选) */\n carNumber?: string;\n /** 是否考虑限行 */\n restriction?: boolean;\n /** 摩托车排量(单位:cc,可选) */\n motorcycleCC?: number;\n}\n\n/**\n * 独立步行路径规划参数\n *\n * 说明:\n * - 这是“独立算路”参数:只负责生成可预览/可选路的独立路径组,不会自动开始导航\n * - 通过 travelStrategy 指定 SINGLE/MULTIPLE;或使用 multiple=true 开启多路线\n * - 生成结果后,可继续调用模块级 startNaviWithIndependentPath,或在嵌入式导航视图 ref 上调用 startNavigationWithIndependentPath\n */\nexport interface IndependentWalkRouteOptions {\n /** 起点坐标 */\n from: {\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n };\n /** 终点坐标 */\n to: {\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n };\n /** 途经点列表。算路结果支持传入;若后续进入嵌入式导航,iOS 骑步行场景当前不支持像驾车那样额外挂载自定义文案气泡。 */\n waypoints?: Array<{\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n }>;\n /** 出行策略(单路线/多路线),对齐原生 TravelStrategy:1000/1001 */\n travelStrategy?: number;\n /** 是否返回多路线(等价于 travelStrategy=TravelStrategy.MULTIPLE) */\n multiple?: boolean;\n}\n\n/**\n * 独立骑行路径规划参数\n *\n * 说明:\n * - 这是“独立算路”参数:只负责生成可预览/可选路的独立路径组,不会自动开始导航\n * - 通过 travelStrategy 指定 SINGLE/MULTIPLE;或使用 multiple=true 开启多路线\n * - 生成结果后,可继续调用模块级 startNaviWithIndependentPath,或在嵌入式导航视图 ref 上调用 startNavigationWithIndependentPath\n */\nexport interface IndependentRideRouteOptions {\n /** 起点坐标 */\n from: {\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n };\n /** 终点坐标 */\n to: {\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n };\n /** 途经点列表。算路结果支持传入;若后续进入嵌入式导航,iOS 骑步行场景当前不支持像驾车那样额外挂载自定义文案气泡。 */\n waypoints?: Array<{\n latitude: number;\n longitude: number;\n name?: string;\n poiId?: string;\n }>;\n /** 出行策略(单路线/多路线),对齐原生 TravelStrategy:1000/1001 */\n travelStrategy?: number;\n /** 是否返回多路线(等价于 travelStrategy=TravelStrategy.MULTIPLE) */\n multiple?: boolean;\n}\n\n/**\n * 选择独立路径组中的主路线参数\n * - token: 独立算路返回的 token\n * - routeId/routeIndex: 选路(优先使用 routeId;未提供则保持当前主路线)\n * - 仅切换独立路径组里的“当前主路线”,本身不会开始导航\n */\nexport interface SelectIndependentRouteOptions {\n token: number;\n routeId?: number;\n routeIndex?: number;\n}\n\n/**\n * 使用独立路径组启动导航参数(模块级 API)\n * - token: 独立算路返回的 token\n * - naviType: 0=GPS; 1=EMULATOR(默认 0)\n * - routeId/routeIndex: 启动前可选路\n *\n * 说明:\n * - 这是模块级启动入口,不依赖某个 ExpoGaodeMapNaviView 实例\n * - 若你已经持有嵌入式导航视图 ref,更适合调用 ref.startNavigationWithIndependentPath(...)\n */\nexport interface StartNaviWithIndependentPathOptions {\n token: number;\n naviType?: number;\n routeId?: number;\n routeIndex?: number;\n}\n\n/**\n * 清理独立路径组\n * - token: 独立算路返回的 token\n * - 当页面只需要预览、不再需要后续选路/导航时,建议主动清理\n */\nexport interface ClearIndependentRouteOptions {\n token: number;\n}\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ViewProps, NativeSyntheticEvent, ImageSourcePropType } from "react-native";
|
|
2
2
|
export type NaviColorValue = string | number;
|
|
3
3
|
export type NaviImageSource = string | ImageSourcePropType;
|
|
4
|
+
export type NaviMapViewModeType = 0 | 1 | 2 | 3;
|
|
4
5
|
export interface NaviRect {
|
|
5
6
|
x?: number;
|
|
6
7
|
y?: number;
|
|
@@ -29,7 +30,7 @@ export interface NaviInfoUpdateEvent {
|
|
|
29
30
|
nextIconType?: number;
|
|
30
31
|
/** 当前导航动作的原生转向图标 URI,优先级高于 iconType */
|
|
31
32
|
turnIconImage?: string;
|
|
32
|
-
/** 下一导航动作的原生转向图标 URI
|
|
33
|
+
/** 下一导航动作的原生转向图标 URI;当前主要由 iOS 驾车场景提供,Android 与 iOS 骑步行场景通常为空 */
|
|
33
34
|
nextTurnIconImage?: string;
|
|
34
35
|
iconDirection?: number;
|
|
35
36
|
currentSegmentIndex?: number;
|
|
@@ -107,6 +108,16 @@ export interface NaviAnchorPoint {
|
|
|
107
108
|
x?: number;
|
|
108
109
|
y?: number;
|
|
109
110
|
}
|
|
111
|
+
export interface NaviImageSize {
|
|
112
|
+
width?: number;
|
|
113
|
+
height?: number;
|
|
114
|
+
}
|
|
115
|
+
export interface NaviCustomWaypointMarker {
|
|
116
|
+
latitude: number;
|
|
117
|
+
longitude: number;
|
|
118
|
+
/** 气泡文案;iOS 当前仅驾车场景支持真正的自定义气泡视图,骑步行场景会回退为 SDK 默认途经点表现 */
|
|
119
|
+
title?: string;
|
|
120
|
+
}
|
|
110
121
|
export interface RouteRecalculateEvent {
|
|
111
122
|
reason: string;
|
|
112
123
|
}
|
|
@@ -168,6 +179,9 @@ export interface ExpoGaodeMapNaviViewProps extends ViewProps {
|
|
|
168
179
|
showMode?: number;
|
|
169
180
|
/**
|
|
170
181
|
* 是否开启夜间模式
|
|
182
|
+
* @deprecated 建议改用 `mapViewModeType`,跨平台表达力更完整
|
|
183
|
+
* 说明:Android 映射 `setNaviNight`(并关闭 `setAutoNaviViewNightMode`),
|
|
184
|
+
* iOS 映射 `mapViewModeType = Night/Day`;若同时传 `mapViewModeType`,以后者为准
|
|
171
185
|
* @default false
|
|
172
186
|
*/
|
|
173
187
|
isNightMode?: boolean;
|
|
@@ -184,6 +198,12 @@ export interface ExpoGaodeMapNaviViewProps extends ViewProps {
|
|
|
184
198
|
* 说明:iOS 对应 `setCarImage`,Android 对应 `AMapNaviViewOptions.setCarBitmap`
|
|
185
199
|
*/
|
|
186
200
|
carImage?: NaviImageSource;
|
|
201
|
+
/**
|
|
202
|
+
* 自定义导航车标尺寸
|
|
203
|
+
* @platform android ios
|
|
204
|
+
* 说明:单位为 RN 逻辑像素(dp/pt),需同时传 `width` 与 `height` 才会生效
|
|
205
|
+
*/
|
|
206
|
+
carImageSize?: NaviImageSize;
|
|
187
207
|
/**
|
|
188
208
|
* 自定义车标四角朝向图
|
|
189
209
|
* @platform android
|
|
@@ -208,6 +228,13 @@ export interface ExpoGaodeMapNaviViewProps extends ViewProps {
|
|
|
208
228
|
* 说明:iOS 对应 `setWayPointImage`,Android 对应 `setWayPointBitmap`
|
|
209
229
|
*/
|
|
210
230
|
wayPointImage?: NaviImageSource;
|
|
231
|
+
/**
|
|
232
|
+
* 导航态自定义途经点气泡
|
|
233
|
+
* @platform android ios
|
|
234
|
+
* 说明:会额外挂载在导航地图上,而不是替换 SDK 默认途经点 icon。
|
|
235
|
+
* Android 当前可用于驾车/骑行/步行;iOS 当前仅驾车场景支持真正的自定义气泡,骑步行场景会忽略该气泡并保留默认途经点表现。
|
|
236
|
+
*/
|
|
237
|
+
customWaypointMarkers?: NaviCustomWaypointMarker[];
|
|
211
238
|
/**
|
|
212
239
|
* 自定义终点标注图片
|
|
213
240
|
* @platform android ios
|
|
@@ -277,12 +304,14 @@ export interface ExpoGaodeMapNaviViewProps extends ViewProps {
|
|
|
277
304
|
backupOverlayVisible?: boolean;
|
|
278
305
|
/**
|
|
279
306
|
* 是否显示拥堵气泡
|
|
307
|
+
* 说明:当前主要用于驾车导航场景
|
|
280
308
|
* @default true
|
|
281
309
|
* @since Android 10.0.5 / iOS 10.0.900
|
|
282
310
|
*/
|
|
283
311
|
showDriveCongestion?: boolean;
|
|
284
312
|
/**
|
|
285
313
|
* 是否显示红绿灯倒计时气泡
|
|
314
|
+
* 说明:当前主要用于驾车导航场景
|
|
286
315
|
* @default true
|
|
287
316
|
* 提示:iOS 需开通红绿灯倒计时服务
|
|
288
317
|
* @since Android 10.0.5 / iOS 10.0.900
|
|
@@ -332,6 +361,22 @@ export interface ExpoGaodeMapNaviViewProps extends ViewProps {
|
|
|
332
361
|
* @default false
|
|
333
362
|
*/
|
|
334
363
|
hideNativeTopInfoLayout?: boolean;
|
|
364
|
+
/**
|
|
365
|
+
* 是否在 Android 应用进入后台后显示导航常驻通知
|
|
366
|
+
* @platform android
|
|
367
|
+
* 说明:默认关闭;开启后会在后台通过前台服务持续更新导航进度通知。
|
|
368
|
+
* Android 13+ 下封装会自动检查并请求 `POST_NOTIFICATIONS`,避免业务侧遗漏运行时权限申请。
|
|
369
|
+
* @default false
|
|
370
|
+
*/
|
|
371
|
+
androidBackgroundNavigationNotificationEnabled?: boolean;
|
|
372
|
+
/**
|
|
373
|
+
* 是否启用 iOS 导航 Live Activity(锁屏/灵动岛)
|
|
374
|
+
* @platform ios
|
|
375
|
+
* 说明:开启后会在导航信息更新时自动请求/更新 Live Activity;需同时在 Info.plist 开启 `NSSupportsLiveActivities`
|
|
376
|
+
* 说明:驾车场景可直接使用 SDK 回调的转向图;骑步行场景当前回退为根据 `iconType` 生成的图标,不保证能拿到与驾车完全一致的原生素材
|
|
377
|
+
* @default false
|
|
378
|
+
*/
|
|
379
|
+
iosLiveActivityEnabled?: boolean;
|
|
335
380
|
/**
|
|
336
381
|
* 是否隐藏 iOS 原生车道信息条
|
|
337
382
|
* @platform ios
|
|
@@ -402,6 +447,7 @@ export interface ExpoGaodeMapNaviViewProps extends ViewProps {
|
|
|
402
447
|
/**
|
|
403
448
|
* 设置是否为骑步行视图
|
|
404
449
|
* @platform android
|
|
450
|
+
* 说明:对应高德 Android 文档里的 `setIsNaviTravelView(true)` 兼容开关;驾车传 `false`,骑行/步行传 `true`
|
|
405
451
|
* @default false
|
|
406
452
|
*/
|
|
407
453
|
isNaviTravelView?: boolean;
|
|
@@ -421,10 +467,10 @@ export interface ExpoGaodeMapNaviViewProps extends ViewProps {
|
|
|
421
467
|
* - 1: 黑夜模式 (night)
|
|
422
468
|
* - 2: 根据日出日落自动切换 (dayNightAuto)
|
|
423
469
|
* - 3: 自定义地图样式 (custom)
|
|
424
|
-
*
|
|
470
|
+
* 说明:Android 对应 `setNaviNight` / `setAutoNaviViewNightMode`;当前 Android 的 `3`(custom)需要额外样式路径支持,未配置时会降级为 day
|
|
425
471
|
* @default 0
|
|
426
472
|
*/
|
|
427
|
-
mapViewModeType?:
|
|
473
|
+
mapViewModeType?: NaviMapViewModeType;
|
|
428
474
|
/**
|
|
429
475
|
* 路线polyline的宽度,设置0恢复默认宽度
|
|
430
476
|
* @platform ios
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"naviview.types.d.ts","sourceRoot":"","sources":["../../src/types/naviview.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEpF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAC7C,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"naviview.types.d.ts","sourceRoot":"","sources":["../../src/types/naviview.types.ts"],"names":[],"mappings":"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"}
|