导航器

公共接口 Navigator

提供控制导航方法的单例。

除了必须在界面线程上调用的 setAudioGuidance 和 setHeadsUpNotificationEnabled 以外,所有方法都保证是线程安全的。

嵌套类摘要

接口 Navigator.ArrivalListener 定义在驾驶员到达航点时调用的方法的签名。
@interface Navigator.AudioGuidance AudioGuidance 是一组标志,用于指定在导航期间使用的音频提醒和导航类型。
接口 Navigator.RemainingTimeOrDistanceChangedListener 定义在与下一个目的地的剩余时间或距离发生变化时调用的方法的签名。
接口 Navigator.RouteChangedListener 定义在路线发生变化时调用的方法的签名。
枚举 Navigator.RouteStatus RouteStatus 是表示路线计算结果的状态代码,通过 setDestination(Waypoint) 返回的 Future 进行访问。 

公共方法摘要

abstract void void
cleanup()
清理导航器的内部状态。
abstract void void
clearDestinations()
清除之前设置的所有目的地,并从地图中移除所有计算出的路线。
abstract void void
clearLicensePlateRestrictionInfo()
清除当前驾驶员的车牌信息。
abstract void void
clearRemainingTimeOrDistanceChangedListener()
清除剩余时间或距离变化的监听器。
抽象 Waypoint
continueToNextDestination()
移除当前目的地。
ListenableResultFuture<RouteInfo>
fetchRouteInfoWaypoint 航点、RoutingOptions routeOptions)
根据 RoutingOptions.RoutingStrategy 的每个值返回路线的路线信息。
abstract RouteSegment
getCurrentRouteSegment()
返回行程的当前路程。
TimeAndDistance
getCurrentTimeAndDistance()
返回从当前位置到当前目的地的估算时间和距离。
abstract List<RouteSegment>
getRouteSegments()
返回路线路段列表。
abstract 模拟器
getSimulator()
返回一个 Simulator 对象,以供测试期间使用。
abstract 列表<TimeAndDistance>
getTimeAndDistanceList()
返回与当前路线中每个目的地对应的时间和距离列表,表示从当前位置到每个目的地的估算时间和距离。
abstract List<LatLng>
getTraveledRoute()
返回在此向导会话期间(自上次调用 startGuidance() 以来)到目前为止的路线。
abstract 布尔值
isGuidanceRunning()
如果指导当前正在运行,则返回 true
abstract void void
setArrivalListenerNavigator.ArrivalListener 监听器)
为到达事件注册监听器。
abstract void void
setAudioGuidance(整数指南)
设置启用哪些类型的音频导航(包括振动)。
abstract ListenableResultFuture<Navigator.RouteStatus>
setDestination(Waypoint 目的地、RoutingOptions路由选项、DisplayOptions displayOptions)
设置单个导航目的地,覆盖之前设置的所有目的地。
abstract ListenableResultFuture<Navigator.RouteStatus>
setDestinationWaypoint 目的地、RoutingOptions选项)
设置单个导航目的地,覆盖之前设置的所有目的地。
abstract ListenableResultFuture<Navigator.RouteStatus>
setDestination(Waypoint 目的地)
设置单个导航目的地,覆盖之前设置的所有目的地。
abstract ListenableResultFuture<Navigator.RouteStatus>
setDestinations(List<Waypoint> 目的地、RoutingOptions 选项)
设置多个目的地以用于导航,并覆盖之前设置的任何目的地。
abstract ListenableResultFuture<Navigator.RouteStatus>
setDestinations(List<Waypoint> 目的地、RoutingOptions路由选项,DisplayOptions displayOptions)
设置多个目的地以用于导航,并覆盖之前设置的任何目的地。
abstract ListenableResultFuture<Navigator.RouteStatus>
setDestinations(List<Waypoint> 目的地)
设置多个目的地以用于导航,并覆盖之前设置的任何目的地。
abstract void void
setHeadsUpNotificationEnabled(已启用布尔值)
设置是否应显示浮动通知。
abstract void void
setLicensePlateRestrictionInfo(int rawLicensePlateLastDigit, String licensesPlateCountryCode)
设置有关当前驾驶员的车牌信息。
abstract void void
setRemainingTimeOrDistanceChangedListener(int timeChangeThresholdSeconds, intdistanceChangeThresholdMeters, Navigator.RemainingTimeOrDistanceChangedListener 监听器)
在到达目的地的剩余时间或距离变化幅度超过指定阈值时注册监听器。
abstract void void
setRouteChangedListenerNavigator.RouteChangedListener 监听器)
为路由已更改事件注册监听器。
abstract void void
setSpeedingListener(SpeedingListener speedingListener)
针对超出驾驶员当前驾车速度限制的百分比注册 SpeedingListener
abstract void void
startGuidance(IntentResumeIntent)
startGuidance() 相同,但需要指定一个可用于从导航器的状态栏通知恢复应用的 intent。
abstract void void
startGuidance()
如果您已设置目的地并为该目的地计算了路线,则会为该路线启动精细导航指导。
abstract void void
stopGuidance()
停止精细导航指导。

公共方法

public abstract void cleanup ()

清理导航器的内部状态。

注意:调用此方法会取消对 setDestinations(List) 的所有待处理请求。

public abstract void clearDestinations ()

清除之前设置的所有目的地,并从地图中移除所有计算出的路线。如果导航正在运行,这会自动停止导航。

public abstract void clearLicensePlateRestrictionInfo ()

清除当前驾驶员的车牌信息。这仅适用于在设置此值后进行的 setDestination 调用。

public abstract void clearRemainingTimeOrDistanceChangedListener ()

清除剩余时间或距离变化的监听器。

public abstract Waypoint continueToNextDestination ()

移除当前目的地。之后,系统将提供前往下一个目的地的指导,但关于旧目的地的信息不可用。

返回
  • 航点指导现在将前往,如果不再有航点,则为 null

public abstract ListenableResultFuture<RouteInfo> fetchRouteInfo (Waypoint 航点, RoutingOptions routeOptions)

根据 RoutingOptions.RoutingStrategy 的每个值返回路线的路线信息。RoutingOptions.RoutingStrategy 会被忽略,因为此方法会返回所有路由策略的路由信息。

注意:每次调用时都会重新计算此值,并且可能与导航当前使用的路线不一致,因为路况和其他因素可能已在此期间更新。

参数
途经点 路线的目的地航点
routingOptions 用于获取路线信息的选项
返回
  • 返回的 Future

public abstract RouteSegment getCurrentRouteSegment ()

返回行程的当前路程。该 RouteSegment 的起始位置即为设备最近的已知(道路贴靠)位置。

返回
  • 路线段对象;如果当前没有路线,则为 null

public abstract TimeAndDistance getCurrentTimeAndDistance ()

返回从当前位置到当前目的地的估算时间和距离。

返回
  • 时间和距离对象,如果当前没有路线,则为 null

public abstract List<RouteSegment> getRouteSegments ()

返回路线路段列表。每个返回的片段的目的地将与由 setDestination(s) 设置的目的地相对应。

public abstract 模拟器 getSimulator ()

返回一个 Simulator 对象,以供测试期间使用。

public abstract List<TimeAndDistance> getTimeAndDistanceList ()

返回与当前路线中每个目的地对应的时间和距离列表,表示从当前位置到每个目的地的估算时间和距离。

public abstract List<LatLng> getTraveledRoute ()

返回此向导会话期间(自上次调用 startGuidance() 以来)到目前为止的路线。记录的路线包含道路贴靠位置(由 RoadSnappedLocationProvider 返回),并且经过简化以移除冗余点,例如将连续的共线点转换为单个线段。

public abstract 布尔值 isGuidanceRunning ()

如果指导当前正在运行,则返回 true。请注意,只有在计算完前往目的地的路线并调用 startGuidance() 后,系统才会运行导航。

public abstract void setArrivalListener (Navigator.ArrivalListener 监听器)

为到达事件注册监听器。覆盖之前注册的所有监听器。

注意:为了避免内存泄漏,当不再需要监听器时,应调用 setNavArrivalListener(null)

参数
监听器 要注册的监听器。可设置为 null 以清除先前注册的监听器。

public abstract void setAudioGuidance (整数指南)

设置启用哪些类型的音频导航(包括振动)。默认情况下,振动、语音和蓝牙语音通话(如果可用)处于启用状态。

必须在界面线程上调用此方法。

参数
向导 Navigator.AudioGuidance 标志的组合,用于指定应启用哪些类型的音频指导

public abstract ListenableResultFuture<Navigator.RouteStatus> setDestination (Waypoint destination, RoutingOptions routeOptions, DisplayOptions displayOptions)

设置单个导航目的地,覆盖之前设置的所有目的地。如果找到了从用户所在位置到给定目的地的路线,返回的 future 将被设置为 OK

参数
目标账号 要设置的新目的地
routingOptions 将用于生成路线的选项
displayOptions 用于显示路线的选项
返回
  • 返回的将来
抛出
NullPointerException 如果给定目的地为 null

public abstract ListenableResultFuture<Navigator.RouteStatus> setDestination Waypoint destination, RoutingOptions options)

设置单个导航目的地,覆盖之前设置的所有目的地。如果找到了从用户所在位置到给定目的地的路线,返回的 future 将被设置为 OK。默认的 DisplayOptions 将用于显示路线。

参数
目标账号 要设置的新目的地
选项 将用于生成路线的选项
返回
  • 返回的将来
抛出
NullPointerException 如果给定目的地为 null

public abstract ListenableResultFuture<Navigator.RouteStatus> setDestination Waypoint 目的地)

设置单个导航目的地,覆盖之前设置的所有目的地。如果找到了从用户所在位置到给定目的地的路线,返回的 future 将被设置为 OK。系统将使用默认的 RoutingOptions 查找路线,并使用默认的 DisplayOptions 显示路线。

参数
目标账号 要设置的新目的地
返回
  • 返回的将来
抛出
NullPointerException 如果给定目的地为 null

public abstract ListenableResultFuture<Navigator.RouteStatus> setDestinations (List<Waypoint> 目的地,RoutingOptions选项)

设置多个目的地以用于导航,并覆盖之前设置的任何目的地。如果找到了从用户所在位置到给定目的地的路线,返回的 future 将被设置为 OK。默认的 DisplayOptions 将用于显示路线。

参数
目标网页 要设置的新目的地列表
选项 将用于生成路线的选项
返回
  • 返回的 Future

public abstract ListenableResultFuture<Navigator.RouteStatus> setDestinations (List<Waypoint> 目的地, RoutingOptions routesOptions, DisplayOptions displayOptions)

设置多个目的地以用于导航,并覆盖之前设置的任何目的地。如果找到了从用户所在位置到给定目的地的路线,返回的 future 将被设置为 OK

参数
目标网页 要设置的新目的地列表
routingOptions 将用于生成路线的选项
displayOptions 用于显示路线的选项
返回
  • 返回的 Future

public abstract ListenableResultFuture<Navigator.RouteStatus> setDestinations (List<Waypoint> 目的地)

设置多个目的地以用于导航,并覆盖之前设置的任何目的地。如果找到了从用户所在位置到给定目的地的路线,返回的 future 将被设置为 OK。系统将使用默认的 RoutingOptions 查找路线,并使用默认的 DisplayOptions 显示路线。

参数
目标网页 要设置的新目的地列表
返回
  • 返回的 Future

public abstract void setHeadsUpNotificationEnabled (boolean enabled)

设置是否应显示浮动通知。默认情况下,通知处于启用状态。浮动事件是指在地图不显示时显示的指导事件,例如转弯等。

必须在界面线程上调用此方法。

参数
已启用 用于指示是否应启用浮动通知的标记

public abstract void setLicensePlateRestrictionInfo (int rawLicensePlateLastDigit, String licensesPlateCountryCode)

设置有关当前驾驶员的车牌信息。这样一来,我们就能避开基于车牌号的特定类型的道路限制情况。这仅适用于在设置此值后进行的 setDestination 调用。理想情况下,您应在获得导航器后立即调用此方法。

参数
rawLicensePlateLastDigit 车牌的最后一位数(必须介于 0 到 9 之间)。
licensePlateCountryCode 目前,我们支持印度尼西亚 (ID) 和巴西 (BZ),未来可能会支持其他国家或地区,您可以随时主动提供这些信息。

public abstract void setRemainingTimeOrDistanceChangedListener (int timeChangeThresholdSeconds, intdistanceChangeThresholdMeters, Navigator.RemainingTimeOrDistanceChangedListener 监听器)

在到达目的地的剩余时间或距离变化幅度超过指定阈值时注册监听器。覆盖之前注册的所有监听器。

监听器可因以下原因而被调用:例如,用户移动、路况信息变化、路线变更、目的地变更,或首次获知剩余时间和距离信息时。

注意:为了避免内存泄漏,当不再需要监听器时,应调用 clearNavProgressionListener()

参数
timeChangeThresholdSeconds 如果剩余时间的绝对变化(以秒为单位)大于或等于此值,就会调用监听器。此阈值不得为负数。
distanceChangeThresholdMeters 如果剩余距离的绝对变化(以米为单位)大于或等于此值,则调用监听器。此阈值不得为负数。
监听器 要注册的监听器。不得为 null

public abstract void setRouteChangedListener (Navigator.RouteChangedListener 监听器)

为路由已更改事件注册监听器。覆盖之前注册的所有监听器。

注意:为了避免内存泄漏,当不再需要监听器时,应调用 setNavRouteChangeListener(null)

参数
监听器 要注册的监听器。可设置为 null 以清除先前注册的监听器。

public abstract void setSpeedingListener (SpeedingListener speedingListener)

针对超出驾驶员当前驾车速度限制的百分比注册 SpeedingListener

如果设置 null SpeedingListener 或不设置任何值,您不会收到任何超速 Feed 数据。

参数
speedingListener

public abstract void startGuidance (Intent restartIntent)

startGuidance() 相同,但需要指定一个可用于从导航器的状态栏通知恢复应用的 intent。如果没有此 intent,无法从状态栏恢复应用。

参数
resumeIntent 来恢复应用的意图在大多数情况下,android.app.Activity#getIntent() 返回的值合适。

public abstract void startGuidance ()

如果您已设置目的地并为该目的地计算了路线,则会为该路线启动精细导航指导。如果路线尚未计算,便会在计算完成后启动精细导航。

您必须显式调用 stopGuidance() 来停止导航服务。导航服务不会在车辆抵达时自动停止。如果您希望在导航服务到达时停止,则需要在 NavArrivalListener 中调用 stopGuidance()。

注意:此方法不会更改 Camera 的位置。

public abstract void stopGuidance ()

停止精细导航指导。