用途:在 React Native 应用中绘制地图行车/步行等路线(trajeto),而非屏幕导航。屏幕导航请用 react-native-expo-navigation,Directions HTTP 用 google-maps-apis,绘制用 google-maps-sdk。
主要能力与流程:origin + destination(可含 waypoints)→ 调用 Directions API(mode、alternatives)→ 选择路线(默认或用户选择)→ 解码 overview_polyline → 用 <Polyline coordinates={...} /> 渲染 → fitToCoordinates(padding) → 显示 ETA/距离。
关键规则:密钥为机密或调用量大时应在后端调用 Directions,移动端仅在项目允许时使用受限密钥;按 Google Encoded Polyline Algorithm 精度 5 正确解码;仅在明显偏离或目的地变更时更新路线,不要每个 GPS tick 都重算;需处理加载、错误、零结果、路线激活等状态;切换备选路线前先列出时长/距离。
模式:driving 为默认交通方式,walking/bicycling/transit 视产品是否提供;避免用错模式导致 ETA 失真。
Polyline 渲染:使用 accent 色、与交通状况无关,线宽约 4–6 pt;z-index 高于底图、必要时低于车辆标记;点数超过 1–2k 影响 FPS 时简化几何;fitToCoordinates 需留出 header/bottom sheet 的 padding。
ETA 与重规划:在可用且允许时显示 duration/duration_in_traffic;偏离 polyline 超过阈值(如 50–100 m)持续 N 秒后重规划;对重请求做节流(最小间隔)以控制成本与稳定性;打车场景中司机→乘客、乘客→目的地分两阶段。
Waypoints 与多站点:仅当 API 支持 optimize:true 且产品允许时优化顺序;waypoints 数量受 Google 配额限制;UI 需清晰展示停靠顺序。
反模式:每次 watchPosition 回调都重绘 Directions;生产环境使用硬编码演示 polyline;忽略 status != OK;fit bounds 不留 padding 导致 UI 遮挡路线;把字符串地址当坐标而未先 geocode。
完成标准:A→B 路线绘制并显示 ETA/距离;覆盖加载与错误;iOS/Android 上解码与 fit bounds 正确;偏离流程中带节流的重规划(若在范围内);与 MapView 集成干净、不重挂载。
限制:资料未提供具体价格、配额数值、平台差异细节或完整代码示例,相关事实暂未提供。