自定义导航体验

Navigation SDK 提供了多种方式,可将导航体验集成到您的应用中。本页介绍了什么是自定义导航体验,以及它与 Navigation SDK 中提供的其他导航体验有何不同。

什么是自定义导航体验?

实现 Navigation SDK 的主要方式是使用 Google 导航 体验, 该体验可让您嵌入使用 Google 提供的界面元素和视觉效果的精细导航体验,类似于 Google 地图应用中的导航体验。如果您需要比 Google 导航体验提供的灵活性更高的体验,则可以实现自定义导航体验。 自定义导航体验是指从完全消除精细导航指引并仅将导航作为后台进程运行,到将高度自定义的指引体验投影到与运行导航的设备分开的屏幕上的任何体验。借助自定义导航体验,您的应用会调用 Navigation SDK 来请求精细导航信息流,然后您提供并管理用户在导航体验中看到的界面元素和视觉效果。虽然使用 Google 导航体验通常更容易实现,但构建自己的自定义导航体验可以实现更多自定义。

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

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

    如需了解详情,请参阅精细数据 信息流详情。

    观看演示: Navigation SDK 的下载内容包含一个演示,您可以运行该演示来查看导航体验的示例,该体验会在通过标准导航提供的精细导航指引与仅显示设备位置沿道路多段线移动的导航体验之间切换。

  2. 主动导航 。这是 Google 提供的导航体验与自定义导航体验之间的另一个主要区别。 您无需将指引交给 Navigation SDK 的内置事件管理器,而是通过实现 GMSNavigatorListener 协议来为详细的精细导航指引设置监听器,然后实现事件处理程序。 这样,您的体验就可以响应 监听导航 事件中所述的事件。

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

您可能在哪些情况下使用自定义导航体验?

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

示例场景

大致步骤

您需要为小型设备(例如两轮车)提供纯文本驾驶员指引。

创建导航器,并将精细导航指引设置为向小型屏幕设备提供的数据 Feed,同时导航器在驾驶员的手机上运行,且不在驾驶员的视线范围内。

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

  1. 设置汽车服务。
  2. 设置 Navigation SDK 项目。
  3. 建立导航器(如果尚未建立)。
  4. 为精细导航指引设置监听器。
  5. 在汽车应用界面上绘制地图,并使用您配置的数据 Feed 中的字段填充这些字段。

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

使用您的应用的驾驶员希望在大部分行程中使用总览图,仅在城市街道中使用最少的精细导航指引。

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