常见问题解答
产品详情
- Navigation SDK 条款应如何 是否显示服务通知?
- 语音导航支持哪些语言?
- 当用户退出导航模式时,航向是否会保持不变?
- 开始后是否可以使用多段线 还是更改路线?
- 应用用户是否需要安装 Google 地图移动版?
- Navigation SDK 能否识别餐厅和其他目的地附近的停车场?
- Navigation SDK 在接近转弯点时是否会显示车道的车流方向?
- Navigation SDK 会运行哪些版本的 JDK 支持人员?
网络和连接
数据
- 我能否检索 在行程中的经停点/目的地是什么?
- 提供精细路线导航 ?
- 预计到达时间如何 (预计推出时间)是否传达给应用用户?
- 如果导航应用不在前台运行,能否使用
RoadSnappedLocationProvider
获取用户的当前贴靠位置? - Navigation SDK 是否支持地理围栏?
- 我可以在以下情况下停用通知: Navigation 应用在后台运行?
- 如何查看 Google 保留的事务日志?
界面自定义
路由
模拟器
Workflows
- <ph type="x-smartling-placeholder"></ph> 如何在关闭包含 导航 fragment?(仅限 Android)
Mobility 服务
- 移动出行服务客户使用 Navigation SDK 的方式有何不同?
- 如何判断我是否为移动出行服务客户?
- 对于移动服务客户,Navigation SDK 是如何结算的?
- 哪个 Navigation SDK 只有移动服务客户才能使用 API?
- 如果我是 Mobility Services 客户,还可以使用 Navigation SDK 的非 Mobility Services 实现吗?
产品详情
-
您的应用必须使用 Navigation SDK 实现对话框
每位用户必须接受的服务条款通知。此对话框提供了
同意服务条款的机会。Navigation SDK 随附了包含这些条款的文本文件。
使用
NavigationApi.showTermsAndConditionsDialog
方法显示包含条款的对话框。 - Google 地图移动版支持的任何语言都自动适用于 Navigation SDK。设备设置了默认系统语言,并且应用无法更改该设置;不过, 该应用支持 70 多种语言。
-
可以。启动后,
LocationListener
会持续 在后台运行您的应用会继续沿道路对位置进行贴靠,并保持航向。 -
可以。创建或更改路线时,
RouteChangeListener
会提供多段线。 - 否,Navigation SDK 不需要 Google Maps Mobile 要安装在设备上。
- 否,Navigation SDK 目前不提供此功能。
- 是的。默认情况下,系统会显示交通方向。
- Navigation SDK 支持哪些版本的 JDK?
- Navigation SDK 支持 Oracle 积极支持的 LTS 版本的 Java SE。Oracle Java SE 支持路线图中将这些版本列为提供 Premier 支持。
网络和连接
- Navigation SDK 如何处理网络连接不佳?
- Navigation SDK 会为每个行程预缓存路线。 预缓存的信息包括 15-20 分钟的路线信息,以及在用户偏离路线时可供选择的替代路线。通过 Navigation SDK 使用设备 GPS 和 传感器。
- Navigation SDK 如何处理 GPS 信号不佳或丢失的情况?
-
在导航开始且 Navigation SDK 收到 至少显示一次 GPS 信号,屏幕会显示“正在搜索 GPS...”消息 以下情况:
- 如果自上次收到 GPS 信号以来已超过 10 秒。
- 如果自上次收到 GPS 信号以来,路线位置已移动超过 500 米。
如果 SDK 长时间未收到 GPS 信号,沿路线的进度(在应用中由箭头的位置表示)可能会放慢,直到完全停止。在这种情况下,地图上的 V 形将保持在上次 GPS 信号指示的位置。SDK 不会因未收到 GPS 信号而自动退出导航模式。不过,在重新收到信号之前,它可能无法提供导航。
- 是否支持离线模式?
- 否,Navigation SDK 目前不提供离线模式;不过,该 SDK 确实会提供行程的预缓存信息。
数据
- 我可以在开始路线之前检索行程中的所有经停点/目的地吗?
-
可以。要检索路线的路线,请调用
Navigator.getRouteSegments()
。 - 路线起点是否提供精细的路线指引?
- 可以。Navigation SDK 提供了路线片段列表。此外,用户可以滑动标题中的路线卡片,查看每项操作。
- 如何向应用用户传达预计到达时间?
-
如需向应用用户提供预计到达时间信息,请按以下步骤操作:
- 使用
Navigator.getTimeAndDistanceList()
检索所有航点的时间和距离。 - 将此信息转发给客户端应用,就像为司机预计到达时间所做的那样。
- 使用
-
RoadSnappedLocationProvider
是否可以用于获取用户的 当前捕获的位置(如果导航不在前台运行)? -
可以。
RoadSnappedLocationProvider
在 默认设置为背景颜色 - Navigation SDK 是否支持地理围栏?
-
否。就导航而言,
remainingTimeOrdistanceChangeListener
比地理围栏有优势地理围栏可能不会考虑 并且可能没有像地图绘制的 用户正在导航。您可以使用
remainingTimeOrdistanceChangeListener
。- 设置阈值以确定回调的频率。
- 查看到目的地的剩余距离。
例如,如果您将阈值设为 1 亿, 当到目的地的距离发生变化时,您会收到回调 大约 1 亿随着距离的减少,您可以将此阈值更新为较小的 值,从而更频繁地收到回调。然后,检查剩余距离,确定您是否已靠近上车点/下车点。
- 我可以在导航应用在后台运行时停用通知吗?
-
可以。使用
Navigator.setHeadsUpNotificationEnabled
来控制通知此方法有一个布尔值参数。FALSE
停用通知;TRUE
可启用通知功能。 -
交易记录器会使用唯一 ID 跟踪上车和下车数据,Google 会记录这些数据以进行产品分析。如果您是 Mobility Services 客户,Google 建议您实现
NavigationTransactionRecorder
以记录交易记录。
界面自定义
- 我可以为最佳路线选项设置颜色代码吗?
- 不可以。目前不支持对特定路线选项进行颜色标注。
- Navigation SDK 能否显示最终目的地的预计到达时间?
-
可以。请使用以下方法:
- 使用
Navigator.getTimeAndDistanceList()
。 - 使用
NavigationFragment.setEtaCardEnabled(false)
隐藏当前航点的预计到达时间。 - 渲染最终到达目的地的预计到达时间。
- 使用
- 如何隐藏预计到达时间更新?
-
您可以通过调用
navigationView.setEtaCardEnabled(false)
停用预计到达时间卡片。 -
使用
StylingOptions
设置背景 颜色样式设置。如需隐藏或显示标题和页脚,请使用NavigationFragment
的setHeaderEnabled
和setFooterEnabled
成员函数。
路由
- 我可以提供具体路线吗 或移除备选路线?
- 否。默认情况下,系统会提供多条路由,并且最快路线具有优先级。 您可以通过添加偏好设置(如“避免 高速公路和收费站”。添加航点也会影响路线。
- 我可以向应用用户显示与默认目的地位置不同的目的地标签吗?
-
可以。创建一个
Marker
,其中包含 目的地和纬度/经度的自定义标题。Navigation SDK 会在NavigationMap
上显示自定义标题和坐标。 - 我可以使用 Navigation SDK 跟踪与指定路径的偏差吗?
-
可以。使用
Navigator.setRouteChangedListener
在路线发生变化或系统建议新路线时接收通知:- 注册一个监听器,用于检查设备沿路线的位置
使用
Navigator.setRouteChangedListener
方法。 - 将代码添加到回调事件处理脚本
onRouteChanged
:- 向应用用户发送消息,提供更新后的预计到达时间和距离信息。
- 跟踪设备的位置。
- [可选] 添加应用在用户偏离规定路线时需要处理的其他功能。
- 注册一个监听器,用于检查设备沿路线的位置
使用
-
可以。调用
Navigator.stopGuidance()
方法以停止导航。
模拟器
- 模拟器是否支持路线更改?
-
可以。致电
simulateLocationsAlongNewRoute
模拟包含路线变更的行程。simulateLocationsAlongExistingRoute
方法会忽略对现有路线所做的更改。
Workflows
- 如何在关闭包含 导航 fragment?
-
在导航过程中,当 activity 关闭时,导航通知仍会显示。当车辆到达目的地时,导航会停止,并且通知会消失。
如需处理通知点击,请使用
Navigator.startGuidance(intent resumeIntent)
。resume intent
会在应用用户点击通知时触发。 通常,Navigator.startguidance(getIntent())
是从主 activity 调用的,该 activity 会在应用用户点击通知时重新调用。
Mobility 服务
Google Maps Platform 出行服务提供了一系列 API 和 SDK,可帮助满足交通运输和物流企业的企业需求。对于移动服务客户,Navigation SDK 通常与相关服务结合使用,以实现路线优化、调度、任务跟踪、车队分析等。对于移动出行服务客户,Navigation SDK 的结算方式也不同。如需了解详情,请参阅移动服务文档。
移动产品目前仅面向部分客户提供。如需了解详情,请与您的销售代表联系。
ReportBillableEvent
调用。只有移动服务客户才应调用 ReportBillableEvent
方法。
Navigation SDK 中有一些 API 仅供移动出行服务客户使用,Google 会按交易向这些客户收费。如果您不是移动服务客户,则以下方法不可使用:
是的,移动服务客户可以使用导航 SDK 的移动服务实现和非移动服务实现。但是,一个应用中一次只能使用一种实现类型。您还需要创建一个新的 Google Cloud 项目、结算账号和 API 密钥,这些项目、账号和密钥应与您在移动出行服务实现中使用的项目、账号和密钥分开。如需了解详情,请参阅 Navigation SDK 设置概览。
如需详细了解如何使用 Navigation SDK 的非 Mobility Services 实现(包括将应用从一种实现类型迁移到另一种实现类型),请与您的 Google 客户代表联系。
注意:如果您目前不是 Mobility Services 客户,但有兴趣详细了解 Mobility Services 集合中的 API 和 SDK,请与 Google Maps Platform 销售团队联系。