自定义导航体验

Navigation SDK 提供了将导航体验集成到应用中的不同方法。本页介绍了什么是自定义导航体验,以及它与 Navigation SDK 中提供的其他导航体验的区别。

什么是自定义导航体验?

实现 Navigation SDK 的主要方法是使用 Google 导航体验,让您可以使用 Google 提供的界面元素和视觉元素嵌入精细导航体验,类似于 Google 地图应用中的导航体验。如果您需要的灵活性超出了 Google 导航体验所提供的灵活性,可以实现自定义导航体验。自定义导航体验是指完全消除转弯提示并仅作为后台进程运行导航,或将高度个性化的导航体验投射到独立于运行导航的设备的屏幕上。借助自定义导航体验,您的应用会调用 Navigation SDK 来请求精细导航 Feed,然后您可以提供和管理用户在导航体验中看到的界面元素和视觉元素。虽然使用 Google 导航体验通常更易于实现,但构建您自己的自定义导航体验可让您进行更多自定义设置。

当您创建自定义导航体验时,您的应用会按照以下流程调用 Navigation SDK 来启动、运行和停止导航:

  1. 开始导航。与 Google 导航体验一样,自定义导航体验仍然涉及创建导航实例和设置目的地。不过,借助自定义导航体验,您可以首先使用 GMSNavigationService.createNavigationSession 建立导航会话,后者是一个带状态的非界面对象,可通过视图控制器运行,也可不使用视图控制器来操作。

    如需了解详情,请参阅启用精细导航数据 Feed

    查看演示:您可以运行 Navigation SDK 的演示,查看导航体验示例,该示例在通过标准导航进行精细导航切换到仅显示沿道路多段线移动的设备位置的导航体验。

  2. 主动导航。这是 Google 提供的导航体验与自定义导航体验之间的另一个主要区别。您可以启用精细导航 Feed 并实现事件处理程序,而不是将指南传递给 Navigation SDK 的内置事件管理器。这样,您的体验就可以响应监听导航事件中所述的事件。

  3. 结束导航。与 Google 导航体验一样,自定义导航还要求您以最适合应用体验的方式终止导航。

您在什么情况下可能会使用自定义导航体验?

下表介绍了一些自定义导航场景。

示例场景

简要步骤

您需要为小型设备(例如双轮机动车)提供纯文字的驾驶指南。

创建导航器,并将精细导航设置为以数据 Feed 的形式传送给小屏幕设备,当导航器在驾驶员的直接视线范围之外运行手机时,

您希望将您的应用作为汽车服务提供给使用 Android Auto 的驾驶员

  1. 设置汽车服务。
  2. 设置您的 Navigation SDK 项目。
  3. 创建导航器(如果尚未创建)。
  4. 启用精细导航 Feed。
  5. 在 Auto 应用 surface 上绘制地图,并填充您配置的数据 Feed 中的字段。

如需了解详情,请参阅为 Android Auto 启用导航

使用您应用的司机在大部分行程中都希望获得概览地图,只有最少的城市街道精细导航指南。

您的应用应允许驾驶员根据需要进入和退出 Google 导航体验,而不改变导航器的目的地和行程模式设置。