SSukha 地图开发者文档

导航

内置导航页与 Sukha 自有地图共用导航布局、转向图标和版权组件。通过当前 Activity 调用 SukhaNaviPage.createIntent(...) 或 showRouteActivity(...),页面跟随宿主实际主题:未适配夜间的宿主保持浅色,适配 DayNight 的宿主按其当前设置显示;不按时间或 GPS 切换。已移除内置导航参数中的独立 theme(...) 设置。嵌入式地图仍支持 DAY / NIGHT / AUTO。

导航地图左下角保留版权并避让底部卡片:中文 © 苏哈出行、英文 © Sukha Go、缅文 © သုခ,跟随界面语言,在横竖屏及深浅主题下均显示。

10.1 驾车控制器调用顺序

类:cn.sukha.mapsdk.navi.services.NavigationClient。

  1. 创建客户端,设置 NavigationClient.Listener,调用 initialize()。
  2. 收到 onReady(datasetVersion) 后,调用 startLocation(),等待有效位置。
  3. 调用 calculateDriveRoute(destination),或显式传起终点;等待 onCalculateRouteSuccess。
  4. 宿主开始按钮调用 startNavi();onNaviInfoUpdate 更新自定义导航界面。
  5. 结束时 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)。