导航
10.1 驾车控制器调用顺序
类:cn.sukha.mapsdk.navi.services.NavigationClient。
- 创建客户端,设置
NavigationClient.Listener,调用initialize()。 - 收到
onReady(datasetVersion)后,调用startLocation(),等待有效位置。 - 调用
calculateDriveRoute(destination),或显式传起终点;等待onCalculateRouteSuccess。 - 宿主开始按钮调用
startNavi();onNaviInfoUpdate更新自定义导航界面。 - 结束时
stopNavi(),会话销毁时close()/onDestroy()。
| 方法 / 回调 | 参数或结果 | 说明 |
|---|---|---|
| calculateDriveRoute(start, destination, heading) | SukhaLatLng、可空 Float | 公开坐标模式;heading 为方向角 |
| calculateDriveRoute(destination) | SukhaLatLng | 使用最近有效定位 |
| startNavi() | 无 | 真导航需要 10 秒内、accuracy ≤50 米的位置 |
| startNavi(mode) | GPSNaviMode / EmulatorNaviMode | 模拟仅用于开发验证 |
| setEmulatorNaviSpeed(kph) | 1–120 | 停止导航后配置 |
| setVoiceEnabled(enabled) | boolean | 控制导航录音播放 |
| onCalculateRouteFailure(message) | String | 算路失败 |
| onError(code, message) | String、String | 初始化/定位等错误 |
| onArriveDestination(side) | 目的地侧向信息 | 到达事件 |
不要在开始导航时用常量坐标、过期位置或虚构精度绕过质量检查。NavigationClient 管理连续定位和导航,不自动等同于一个可长期后台运行的 Activity;后台使用前台导航服务或完整导航页的对应接入方式。
10.2 步行导航
类:cn.sukha.mapsdk.navi.services.WalkingNavi,构造 WalkingNavi(context, client)。设置 Listener 后依次 calculateWalkRoute(start,end) → 成功回调 → startNavi()。宿主在有效定位回调里调用 updateLocation(android.location.Location),传原始 WGS84。结束 stopNavi(),最终 close()。步行不提供骑行行为替代。
10.3 多语言与语音
Android 服务初始化可传 zh-CN、en-US、my-MM;完整 SukhaMapConfig.Builder.language 控制显示语言,voiceLanguage 控制完整导航流程的语音语言。宿主应显式匹配系统或用户选择,不假设所有入口都自动读取系统语言。
当前 Android 完整导航流程已具备中文、英文和缅文预录音资源及对应语言入口。NavigationForegroundService 可设置显示与语音语言;低层 NavigationClient 没有同名语言配置方法,不能混用入口。资源随对应构建交付,不将旧 AAR 的版本号视为语音更新证明。动态地名是否有译名取决于后台数据。原始 instruction 可能为中文,完整 SDK UI 使用显示翻译;自定义 UI 可用 cn.sukha.mapsdk.i18n.SdkLanguage.instruction(language, raw)。