Navigation SDK 提供了多种将导航体验集成到应用中的不同方法。本页介绍了自定义导航体验的含义,以及它与 Navigation SDK 中提供的其他导航体验的区别。
什么是自定义导航体验?
实现 Navigation SDK 的主要方式是使用 Google 导航体验,借助该体验,您可以嵌入使用 Google 提供的界面元素和视觉效果的精细导航体验,类似于 Google 地图应用中的导航体验。如果您需要的灵活性超出了 Google 导航体验所提供的范围,则可以实现自定义导航体验。自定义导航体验是指从完全消除转弯引导并仅将导航作为后台进程运行,到将高度自定义的引导体验投影到与运行导航的设备分开的屏幕,这两者之间的任何内容。借助自定义导航体验,您的应用会调用 Navigation SDK 来请求精细导航 Feed,然后您提供并管理用户在导航体验中看到的界面元素和视觉效果。虽然使用 Google 导航体验通常更易于实现,但自行构建自定义导航体验可以实现更多自定义。
创建自定义导航体验时,您的应用会调用 Navigation SDK 以使用以下流程启动、运行和停止导航:
开始导航。与 Google 导航体验一样,自定义导航体验仍涉及创建导航实例和设置目的地。不过,如果您要实现自定义导航体验,则需要先使用
GMSNavigationService.createNavigationSession
建立导航会话,GMSNavigationService.createNavigationSession
是一个具有状态的非界面对象,既可以与视图控制器一起操作,也可以单独操作。如需了解详情,请参阅精细导航数据 Feed 的详细信息。
查看演示:Navigation SDK 下载内容包含一个演示,您可以运行该演示来查看一个导航体验示例,该示例在通过标准导航提供精细导航信息与仅显示沿道路多段线移动的设备位置的导航体验之间切换。
有效导航。下面是 Google 提供的导航体验与自定义导航体验之间的另一个关键区别。您可以通过实现
GMSNavigatorListener
协议为详细的导航设置监听器,而不是将导航交给 Navigation SDK 的内置事件管理器,然后实现事件处理程序。这样,您的体验便可响应监听导航事件中所述的事件。结束导航。与 Google 导航体验一样,自定义导航也要求您以最适合应用体验的方式终止导航。
您何时可以使用自定义导航体验?
下表介绍了一些自定义导航场景。
示例场景 |
概要步骤 |
---|---|
您需要为小型设备(例如两轮车)提供纯文本驾驶指南。 |
创建导航器并将精细导航设置为小屏幕设备的数据 Feed,同时导航器在驾驶员视线范围之外的手机上运行。 |
您希望将应用作为车载服务提供给使用 Apple CarPlay 的驾驶员 |
如需了解详情,请参阅为 CarPlay 启用导航 |
使用您应用的司机希望在行程的大部分时间内查看概览地图,仅在城市街道上显示少量精细导航信息。 |
您的应用应允许司机根据需要进入和退出 Google 导航体验,而无需切换导航器的目的地和行程模式设置。 |