自定义导航体验

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

什么是自定义导航体验?

实现 Navigation SDK 的主要方式是使用 Google 导航体验,这样您就可以嵌入使用 Google 提供的界面元素和视觉效果的精细导航体验,类似于 Google 地图应用中的导航体验。如果您需要比 Google 导航体验更灵活的体验,可以实现自定义导航体验。自定义导航体验涵盖各种形式,从完全不提供转向引导、仅将导航作为后台进程运行,到将高度自定义的引导体验投射到与运行导航的设备不同的屏幕上。在自定义导航体验中,您的应用会调用 Navigation SDK 来请求精细导航 Feed,然后您提供并管理用户在导航体验中看到的界面元素和视觉效果。虽然使用 Google 导航体验通常更容易实现,但构建自己的自定义导航体验可以实现更多自定义。

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

  1. 开始导航。如需开始自定义导航体验,请创建导航实例并设置目的地。使用 GMSNavigationService.createNavigationSession 建立导航会话。无论是否有视图控制器,此有状态非界面对象都可以运行。

    如需了解详情,请参阅有关精细导航数据 Feed 的详细信息。

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

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

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

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

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

示例场景

简要步骤

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

创建导航器,并将精细导航设置为向小屏幕设备提供的数据 Feed,而导航器在驾驶员的手机上运行,不在其直接视野范围内。

您希望为使用 Apple CarPlay 的驾驶员提供车载服务。

  1. 设置汽车服务。
  2. 设置 Navigation SDK 项目。
  3. 如果您还没有指定导航员,请指定一个。
  4. 为精细导航设置监听器。
  5. 在汽车应用界面上绘制地图,并根据您配置的数据 Feed 填充字段。

如需了解详情,请参阅为 CarPlay 启用导航功能

使用您应用的司机希望在大部分行程中看到总览图,仅在城市街道上看到最少的精细导航。

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