提供控制导航方法的单例。
除了必须在界面线程上调用的 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> |
fetchRouteInfo(Waypoint 航点、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 | |
abstract void void |
setAudioGuidance(整数指南)
设置启用哪些类型的音频导航(包括振动)。
|
abstract ListenableResultFuture<Navigator.RouteStatus> |
setDestination(Waypoint 目的地、RoutingOptions路由选项、DisplayOptions displayOptions)
设置单个导航目的地,覆盖之前设置的所有目的地。
|
abstract ListenableResultFuture<Navigator.RouteStatus> | |
abstract ListenableResultFuture<Navigator.RouteStatus> | |
abstract ListenableResultFuture<Navigator.RouteStatus> | |
abstract ListenableResultFuture<Navigator.RouteStatus> |
setDestinations(List<Waypoint> 目的地、RoutingOptions路由选项,DisplayOptions displayOptions)
设置多个目的地以用于导航,并覆盖之前设置的任何目的地。
|
abstract ListenableResultFuture<Navigator.RouteStatus> | |
abstract void void |
setHeadsUpNotificationEnabled(已启用布尔值)
设置是否应显示浮动通知。
|
abstract void void |
setLicensePlateRestrictionInfo(int rawLicensePlateLastDigit, String licensesPlateCountryCode)
设置有关当前驾驶员的车牌信息。
|
abstract void void |
setRemainingTimeOrDistanceChangedListener(int timeChangeThresholdSeconds, intdistanceChangeThresholdMeters, Navigator.RemainingTimeOrDistanceChangedListener 监听器)
在到达目的地的剩余时间或距离变化幅度超过指定阈值时注册监听器。
|
abstract void void | |
abstract void void | |
abstract void void |
startGuidance(IntentResumeIntent)
与
startGuidance() 相同,但需要指定一个可用于从导航器的状态栏通知恢复应用的 intent。 |
abstract void void |
startGuidance()
如果您已设置目的地并为该目的地计算了路线,则会为该路线启动精细导航指导。
|
abstract void void |
stopGuidance()
停止精细导航指导。
|
公共方法
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 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 ()
停止精细导航指导。