public class

CarNaviView

extends NaviView
implements INaviView
java.lang.Object
   ↳ NaviView
     ↳ com.tencent.map.navi.car.CarNaviView

Class Overview

驾车导航view。 用于显示默认导航界面,包括地图和导航面板。

Summary

Constants
int BACKUP_ROUTE_MARKER_LEVEL
float ENLARGED_INTERSECTION_ASPECT_RATIO 路口放大图默认的宽高比: 340.0f / 291.0f
float ENLARGED_PROGRESS_PANEL_HEIGHT_DP 进度面板高度: 48dp, 其宽度自动适配,与放大图宽度保持一致。
Public Constructors
CarNaviView(Context context)
CarNaviView(Context context, AttributeSet attrs)
CarNaviView(Context context, AttributeSet attrs, int defStyle)
Public Methods
void clearAllRouteUI()
清除所有与路线相关的UI元素。包括导航路线、小车Marker、罗盘Marker、 起终点Marker、途经点Marker以及电子眼Marker.
void clearExtraPointsInVisibleRegion()
在剩余全览模式下调用此接口,清除需要额外包含在地图可视区域内的点。
void configEndPointMarkerpresentation(Bitmap toMarkerBitmap, Bitmap realToMarkerBitmap)
设置终点marker
void configStartPointMarkerpresentation(Bitmap fromMarkerBitmap, Bitmap realFromMarkerBitmap)
设置导航路线起点marker.
void configWayPointMarkerpresentation(ArrayList<Bitmap> wayMarkerBitmaps)
设置途经点marker.
float getEnlargedIntersectionAspectRatio()
获取当前放大图的宽高比。
TencentMap getMap()
获取地图操作类TencentMap,可用于添加标注、几何图形、事件监听等操作。
NaviMode getNaviMode()
获取当前导航模式 NaviMode
void hideBackupRoute(String routeId)
设置指定id的伴随路线隐藏
void hideNaviInfoPanel()
隐藏默认UI导航面板。
boolean isBounceEnabled()
拖动地图后能否回弹到之前的状态。
boolean isNightStatus()
判断当前是否夜间状态。
void notifyCongestionReminder(RouteExplainsDelegate delegate)
boolean onMarkerClick(Marker marker)
针对开发者外部设置监听TencentMap.OnMarkerClickListener, 而导致导航SDK内部监听变为无效的场景, 开发者需要将回调信息通过此方法直接传递给导航SDK.
void onPolylineClick(Polyline polyline, LatLng latLng)
针对开发者外部设置监听TencentMap.OnPolylineClickListener, 而导致导航SDK内部监听变为无效的场景, 开发者需要将回调信息通过此方法直接传递给导航SDK.
void onRouteDidChange(RouteData route, ArrayList<TrafficItem> trafficItems, RouteChangedReason reason)
当前导航路线切换的回调。
void onRouteRecommend(RecommendRouteInfo recommendRouteInfo)
动态路线推荐
void onShowEnlargedIntersectionUnion(IntersectionEnlarger.EnlargedImageUnion imageUnion)
void onShowGuidedLaneInfo(GuidedLaneInfo info)
车道线信息回调。
void removeEnlargedIntersection()
关闭当前正在展示的放大图。
void setAutoScaleEnabled(Boolean autoScaleEnabled)
设置导航地图是否开启自动缩放比例尺功能,默认关闭。

开启之后,3D车头朝上、2D地图朝北模式会在路口处自动调整地图zoomlevel和overlooking, 以提供最佳视野通过路口。

void setAutoScaleMinZoomLevel(float level)
设置自动比例尺最小缩放级别zoomLevel, 默认15.0。
void setBackupRouteBubbleConfig(BackupRouteBubbleConfig config)
设置伴随气泡的属性BackupRouteBubbleConfig
void setBackupRoutesHidden(boolean isHidden)
设置是否隐藏伴随路线,默认显示。
void setBounceEnabled(boolean bounceEnabled)
设置拖动地图后能否回弹到之前的状态。
void setBounceTime(int sec)
设置用户拖动地图进入回弹模式后,回弹到之前导航模式。
void setCarNavPanelMarginTop(int top)
设置面板距离顶部高度。
void setCarRouteConfig(CarRouteConfig config)
设置路线颜色配置类。
void setCompassMarkerVisible(boolean visible)
设置是否显示小车罗盘marker.
void setCustomizedIcons(CustomizedIcons customizedIcons)
为导航元素设置自定义的自车点图标。
void setDayNightMode(DayNightMode dayNightMode)
设置导航过程中使用的日夜模式。默认为自动切换模式。
void setDayNightModeChangeCallback(DayNightModeChangeCallback dayNightChangeCallback)
设置日夜状态改变回调.用于在日夜状态发生变化时,告知用户。
void setElectronicEyeMarkerVisible(boolean visible)
设置是否显示电子眼marker,一旦设置,将接管视图的默认电子眼行为
void setEnlargedIntersectionAspectRatio(float ratio)
设置放大图宽高比。

宽高比范围[1.0, 2.0]

void setEnlargedIntersectionListener(OnEnlargedIntersectionListener enlargedIntersectionListener)
设置路口放大图显示与移除的状态回调。
void setEnlargedIntersectionProgressVisible(boolean visible)
设置路口放大图上进度条显隐。默认true.
void setEnlargedIntersectionRegionMargin(int left, int top, int right)
设置路口放大图的显示位置。在导航开始前设置有效。

此方法仅在 setEnlargedIntersectionVisible(boolean)} true 时生效, 且路口放大图的宽高比例固定,位置和大小由 top、left、right 共同决定, bottom 无需设置。

void setEnlargedIntersectionVisible(boolean visible)
设置路口放大图的显隐。默认true.
void setGuidedLaneVisible(boolean visible)
设置车道线的显隐。默认true.
void setMapStyle(int styleType)
改变底图样式。注意,如果调用该方法,日夜间模式样式将不再发生变化
void setNavTtsMode(NavTtsMode navTtsMode)
void setNavTtsModeChangeListener(OnNavTtsModeChangeListener onNavTtsModeChangeListener)
监听语音模式变化。
void setNaviFixingProportion2D(float xratio, float yratio)
设置导航过程中2d模式下,自车点位于地图宽高的比例,默认x坐标为0.5 ,y坐标为0.75。
void setNaviFixingProportion3D(float xratio, float yratio)
设置导航过程中3d模式下,自车点位于地图宽高的比例,默认x坐标为0.5 ,y坐标为0.75。
void setNaviFollowLineColor(HashMap<Integer, Integer> colorMap)
This method is deprecated. 5.3.6
void setNaviLineArrowSpacing(int arrowSpacing)
设置方向箭头的间距。
void setNaviLineColor(HashMap<Integer, Integer> colorMap)
This method is deprecated. 5.3.6
void setNaviLineWidth(int width)
设置导航路线宽度。
void setNaviMapActionCallback(NaviMapActionCallback naviMapActionCallback)
设置地图事件回调,NaviMapActionCallback 包含点击伴随监听。
void setNaviMode(NaviMode naviMode)
设置导航模式。默认为3D车头向上模式。
void setNaviModeChangeCallback(NaviModeChangeCallback naviModeChangeCallback)
设置导航模式变化回调.用于在导航模式发生变化时,告知用户。
void setNaviPanelEnabled(boolean enabled)
This method is deprecated. No replacement.
void setNavigationPanelVisible(boolean visible)
设置导航面板的显隐。默认true.
void setODLineColor(int color)
设置当前位置到终点的牵引线的颜色
void setOnNaviPanelClickListener(OnNaviPanelClickListener onNaviPanelClickListener)
void setOnRecommendInfoClickListener(CarNaviInfoPanel.OnRecommendInfoClickListener onRecommendInfoClickListener)
boolean setOnTouchListener(View v, MotionEvent event)
针对开发者外部设置监听MapView#setOnTouchListener(OnTouchListener), 而导致导航SDK内部监听变为无效的场景, 开发者需要将回调信息通过此方法直接传递给导航SDK.
void setPonitInfoWindowEnable(boolean showInfoWindow)
设置是否显示起终点InfoWindow
void setRouteEraseType(int type)
设置路线擦除类型。默认为置灰效果。
void setShowODLine(boolean showODLine)
是否展示当前位置到终点的牵引线
static void setTencentMapOptions(TencentMapOptions tencentMapOptions)
设置地图 TencentMapOptions。
void setTrafficBubbleEnabled(boolean visible)
设置路况拥堵气泡的显示和隐藏。默认false。

在非全览模式下才会展示拥堵气泡。

void setTrafficEnabled(boolean enabled)
设置导航地图是否显示实时交通。
void setTurnArrowVisible(boolean visible)
设置是否显示地图路线上的白色转向箭头。
void setVisibleRegionMargin(int top, int right, int bottom, int left)
设置导航路线显示区域距离屏幕四周的边距。

若用户自定义了需要在CarNaviView上显示的元素, 可以调用该接口,以调整导航路线显示区域的范围, 从而避免可能出现的元素相互遮挡。

    // 当不存在默认导航面板时,路线区域距离顶部 top = 10px
    // 当存在面板时,top = 10px + (panelHeight + panelMarginTop)
    .setVisibleRegionMargin(10, 10, 10, 10);
 
void showBackupRoute(String routeId)
设置指定id的伴随路线展示
CarNaviInfoPanel showNaviInfoPanel()
使用默认导航 UI 面板。
void showServiceAreaInfo(boolean isShow)
是否显示高速休息区面板,默认NO
void updateExtraPointsInVisibleRegion(ArrayList<LatLng> extraPoints)
在剩余全览模式下调用此接口并传入坐标点,将会在调整地图视野时, 确保开发者传入的坐标点显示在可视区域内.
[Expand]
Inherited Methods
From class java.lang.Object
From interface com.tencent.map.navi.INaviView

Constants

public static final int BACKUP_ROUTE_MARKER_LEVEL

Constant Value: -110 (0xffffff92)

public static final float ENLARGED_INTERSECTION_ASPECT_RATIO

路口放大图默认的宽高比: 340.0f / 291.0f

Constant Value: 1.25

public static final float ENLARGED_PROGRESS_PANEL_HEIGHT_DP

进度面板高度: 48dp, 其宽度自动适配,与放大图宽度保持一致。

Constant Value: 60.0

Public Constructors

public CarNaviView (Context context)

public CarNaviView (Context context, AttributeSet attrs)

public CarNaviView (Context context, AttributeSet attrs, int defStyle)

Public Methods

public void clearAllRouteUI ()

清除所有与路线相关的UI元素。包括导航路线、小车Marker、罗盘Marker、 起终点Marker、途经点Marker以及电子眼Marker.

需在非导航态或在此 CarNaviView 已被 manager 移除后调用。

public void clearExtraPointsInVisibleRegion ()

在剩余全览模式下调用此接口,清除需要额外包含在地图可视区域内的点。

public void configEndPointMarkerpresentation (Bitmap toMarkerBitmap, Bitmap realToMarkerBitmap)

设置终点marker

Parameters
toMarkerBitmap 气泡样式marker
realToMarkerBitmap 气泡样式marker

public void configStartPointMarkerpresentation (Bitmap fromMarkerBitmap, Bitmap realFromMarkerBitmap)

设置导航路线起点marker.

Parameters
fromMarkerBitmap 圆盘样式marker
realFromMarkerBitmap 气泡样式marker

public void configWayPointMarkerpresentation (ArrayList<Bitmap> wayMarkerBitmaps)

设置途经点marker.

当 bitmap size > way pass size,多余的部分不使用。 当 bitmap size < way pass size,不够的部分使用assets内默认资源图片。

Parameters
wayMarkerBitmaps 气泡样式marker

public float getEnlargedIntersectionAspectRatio ()

获取当前放大图的宽高比。

Returns
  • 宽高比

public TencentMap getMap ()

获取地图操作类TencentMap,可用于添加标注、几何图形、事件监听等操作。

Returns
  • 地图操作类TencentMap

public NaviMode getNaviMode ()

获取当前导航模式 NaviMode

Returns
  • 当前导航模式

public void hideBackupRoute (String routeId)

设置指定id的伴随路线隐藏

public void hideNaviInfoPanel ()

隐藏默认UI导航面板。

public boolean isBounceEnabled ()

拖动地图后能否回弹到之前的状态。

Returns
  • 回弹状态

public boolean isNightStatus ()

判断当前是否夜间状态。

Returns
  • ture:当前为夜间状态 false:当前为日间状态

public void notifyCongestionReminder (RouteExplainsDelegate delegate)

public boolean onMarkerClick (Marker marker)

针对开发者外部设置监听TencentMap.OnMarkerClickListener, 而导致导航SDK内部监听变为无效的场景, 开发者需要将回调信息通过此方法直接传递给导航SDK.

Parameters
marker 待响应的maker
Returns
  • 如果响应了onMarkerClick事件,则返回true, 否则返回false

public void onPolylineClick (Polyline polyline, LatLng latLng)

针对开发者外部设置监听TencentMap.OnPolylineClickListener, 而导致导航SDK内部监听变为无效的场景, 开发者需要将回调信息通过此方法直接传递给导航SDK.

Parameters
polyline Polyline
latLng LatLng

public void onRouteDidChange (RouteData route, ArrayList<TrafficItem> trafficItems, RouteChangedReason reason)

当前导航路线切换的回调。

Parameters
route 切换到的导航路线数据
trafficItems 当前路线的路况数据
reason 切换原因

public void onRouteRecommend (RecommendRouteInfo recommendRouteInfo)

动态路线推荐

Parameters
recommendRouteInfo 推荐路线信息

public void onShowEnlargedIntersectionUnion (IntersectionEnlarger.EnlargedImageUnion imageUnion)

public void onShowGuidedLaneInfo (GuidedLaneInfo info)

车道线信息回调。

Parameters
info 车道线信息

public void removeEnlargedIntersection ()

关闭当前正在展示的放大图。

public void setAutoScaleEnabled (Boolean autoScaleEnabled)

设置导航地图是否开启自动缩放比例尺功能,默认关闭。

开启之后,3D车头朝上、2D地图朝北模式会在路口处自动调整地图zoomlevel和overlooking, 以提供最佳视野通过路口。

Parameters
autoScaleEnabled true: 开启自动缩放比例尺功能;false: 不开启缩放比例尺功能

public void setAutoScaleMinZoomLevel (float level)

设置自动比例尺最小缩放级别zoomLevel, 默认15.0。

Parameters
level 开启比例尺后,自动缩放的最小zoomLevel 取值范围[14, 17]

public void setBackupRouteBubbleConfig (BackupRouteBubbleConfig config)

设置伴随气泡的属性BackupRouteBubbleConfig

Parameters
config 配置信息

public void setBackupRoutesHidden (boolean isHidden)

设置是否隐藏伴随路线,默认显示。

Parameters
isHidden true: 隐藏伴随,false: 显示伴随

public void setBounceEnabled (boolean bounceEnabled)

设置拖动地图后能否回弹到之前的状态。

Parameters
bounceEnabled false:关闭回弹, true:拖动地图后 5s 回弹到之前导航模式

public void setBounceTime (int sec)

设置用户拖动地图进入回弹模式后,回弹到之前导航模式。

Parameters
sec 回弹时间 单位:秒,默认时间5s

public void setCarNavPanelMarginTop (int top)

设置面板距离顶部高度。

Parameters
top 高度值,单位px

public void setCarRouteConfig (CarRouteConfig config)

设置路线颜色配置类。

Parameters
config 路线颜色配置

public void setCompassMarkerVisible (boolean visible)

设置是否显示小车罗盘marker. 一旦设置,将接管视图的罗盘显隐行为

Parameters
visible true为显示,false为不显示

public void setCustomizedIcons (CustomizedIcons customizedIcons)

为导航元素设置自定义的自车点图标。

Parameters
customizedIcons 自定义图标

public void setDayNightMode (DayNightMode dayNightMode)

设置导航过程中使用的日夜模式。默认为自动切换模式。

Parameters
dayNightMode 日夜模式,参考DayNightMode

public void setDayNightModeChangeCallback (DayNightModeChangeCallback dayNightChangeCallback)

设置日夜状态改变回调.用于在日夜状态发生变化时,告知用户。

Parameters
dayNightChangeCallback 日夜状态改变回调

public void setElectronicEyeMarkerVisible (boolean visible)

设置是否显示电子眼marker,一旦设置,将接管视图的默认电子眼行为

Parameters
visible true为显示,false为不显示

public void setEnlargedIntersectionAspectRatio (float ratio)

设置放大图宽高比。

宽高比范围[1.0, 2.0]

public void setEnlargedIntersectionListener (OnEnlargedIntersectionListener enlargedIntersectionListener)

设置路口放大图显示与移除的状态回调。

Parameters
enlargedIntersectionListener 放大图回调

public void setEnlargedIntersectionProgressVisible (boolean visible)

设置路口放大图上进度条显隐。默认true.

NOTE: 当路口放大图正展示时,调用此方法不支持立即生效,会在下次展示生效。

Parameters
visible true:显示,false:隐藏

public void setEnlargedIntersectionRegionMargin (int left, int top, int right)

设置路口放大图的显示位置。在导航开始前设置有效。

此方法仅在 setEnlargedIntersectionVisible(boolean)} true 时生效, 且路口放大图的宽高比例固定,位置和大小由 top、left、right 共同决定, bottom 无需设置。

Parameters
left 左边距, 单位px
top 上边距, 单位px
right 右边距, 单位px

public void setEnlargedIntersectionVisible (boolean visible)

设置路口放大图的显隐。默认true.

NOTE : 只控制非全览模式下的显隐、全览模式下均不显示。

Parameters
visible true:显示,false:隐藏

public void setGuidedLaneVisible (boolean visible)

设置车道线的显隐。默认true.

NOTE : 只控制非全览模式下的显隐、全览模式下均不显示。

Parameters
visible true:显示,false:隐藏

public void setMapStyle (int styleType)

改变底图样式。注意,如果调用该方法,日夜间模式样式将不再发生变化

Parameters
styleType 在官网配置的自定义样式列表中的顺序, 从1开始

public void setNavTtsMode (NavTtsMode navTtsMode)

public void setNavTtsModeChangeListener (OnNavTtsModeChangeListener onNavTtsModeChangeListener)

监听语音模式变化。

public void setNaviFixingProportion2D (float xratio, float yratio)

设置导航过程中2d模式下,自车点位于地图宽高的比例,默认x坐标为0.5 ,y坐标为0.75。

Parameters
xratio x坐标位于地图宽度的比例,取值范围[0.25,0.75], 例如0.5表示位于x坐标值为地图宽度的一半
yratio y坐标位于地图高度的比例,取值范围[0.25,0.75], 例如0.5表示位于y坐标值为地图高度的一半

public void setNaviFixingProportion3D (float xratio, float yratio)

设置导航过程中3d模式下,自车点位于地图宽高的比例,默认x坐标为0.5 ,y坐标为0.75。

Parameters
xratio x坐标位于地图宽度的比例,取值范围[0.25,0.75], 例如0.5表示位于x坐标值为地图宽度的一半
yratio y坐标位于地图高度的比例,取值范围[0.25,0.75], 例如0.5表示位于y坐标值为地图高度的一半

public void setNaviFollowLineColor (HashMap<Integer, Integer> colorMap)

This method is deprecated.
5.3.6

设置伴随路线路况颜色。

Parameters
colorMap key:路况级别,value:颜色值(默认:浅色)
  • -1:已走过的颜色
  • 0:路况标签-畅通
  • 1:路况标签-缓慢
  • 2:路况标签-拥堵
  • 3:路况标签-无路况
  • 4:路况标签-特别拥堵

public void setNaviLineArrowSpacing (int arrowSpacing)

设置方向箭头的间距。

Parameters
arrowSpacing 间距,单位px,默认100px。

public void setNaviLineColor (HashMap<Integer, Integer> colorMap)

This method is deprecated.
5.3.6

设置路况颜色。在导航开始前设置有效。

Parameters
colorMap key:路况级别,value:颜色值
  • -1:已走过的颜色
  • 0:路况标签-畅通
  • 1:路况标签-缓慢
  • 2:路况标签-拥堵
  • 3:路况标签-无路况
  • 4:路况标签-特别拥堵

public void setNaviLineWidth (int width)

设置导航路线宽度。

Parameters
width 路线宽度,单位:px,目前限制最大宽度 128

public void setNaviMapActionCallback (NaviMapActionCallback naviMapActionCallback)

设置地图事件回调,NaviMapActionCallback 包含点击伴随监听。

Parameters
naviMapActionCallback 地图sdk的事件监听。

public void setNaviMode (NaviMode naviMode)

设置导航模式。默认为3D车头向上模式。

public void setNaviModeChangeCallback (NaviModeChangeCallback naviModeChangeCallback)

设置导航模式变化回调.用于在导航模式发生变化时,告知用户。

Parameters
naviModeChangeCallback 导航模式变化回调

public void setNaviPanelEnabled (boolean enabled)

This method is deprecated.
No replacement.

设置是否显示默认导航面板,包括导航面板,路口放大图以及车道线。

此方法已废弃,目前可通过 either setNavigationPanelVisible(boolean) or setEnlargedIntersectionVisible(boolean) or setGuidedLaneVisible(boolean) 分别控制面板、放大图、车道线的显隐状态

Parameters
enabled true:显示,false:不显示

public void setNavigationPanelVisible (boolean visible)

设置导航面板的显隐。默认true.

Parameters
visible true:显示,false:隐藏

public void setODLineColor (int color)

设置当前位置到终点的牵引线的颜色

Parameters
color 当使用ARGB线时为ARGB色值

public void setOnNaviPanelClickListener (OnNaviPanelClickListener onNaviPanelClickListener)

public void setOnRecommendInfoClickListener (CarNaviInfoPanel.OnRecommendInfoClickListener onRecommendInfoClickListener)

public boolean setOnTouchListener (View v, MotionEvent event)

针对开发者外部设置监听MapView#setOnTouchListener(OnTouchListener), 而导致导航SDK内部监听变为无效的场景, 开发者需要将回调信息通过此方法直接传递给导航SDK.

Parameters
v 待处理事件View
Returns
  • 内部不拦截,一直返回 false

public void setPonitInfoWindowEnable (boolean showInfoWindow)

设置是否显示起终点InfoWindow

public void setRouteEraseType (int type)

设置路线擦除类型。默认为置灰效果。

Parameters
type 0: 置灰已走路线 1: 擦除已走路线

public void setShowODLine (boolean showODLine)

是否展示当前位置到终点的牵引线

Parameters
showODLine true为显示,false为不显示

public static void setTencentMapOptions (TencentMapOptions tencentMapOptions)

设置地图 TencentMapOptions。

Parameters
tencentMapOptions 地图初始配置

public void setTrafficBubbleEnabled (boolean visible)

设置路况拥堵气泡的显示和隐藏。默认false。

在非全览模式下才会展示拥堵气泡。

Parameters
visible true:显示,false:隐藏

public void setTrafficEnabled (boolean enabled)

设置导航地图是否显示实时交通。

Parameters
enabled true:开启 ; false:关闭

public void setTurnArrowVisible (boolean visible)

设置是否显示地图路线上的白色转向箭头。

Parameters
visible true为显示,false为不显示

public void setVisibleRegionMargin (int top, int right, int bottom, int left)

设置导航路线显示区域距离屏幕四周的边距。

若用户自定义了需要在CarNaviView上显示的元素, 可以调用该接口,以调整导航路线显示区域的范围, 从而避免可能出现的元素相互遮挡。

    // 当不存在默认导航面板时,路线区域距离顶部 top = 10px
    // 当存在面板时,top = 10px + (panelHeight + panelMarginTop)
    .setVisibleRegionMargin(10, 10, 10, 10);
 

Parameters
top 上边距 单位:px
right 右边距 单位:px
bottom 下边距 单位:px
left 左边距 单位:px

public void showBackupRoute (String routeId)

设置指定id的伴随路线展示

public CarNaviInfoPanel showNaviInfoPanel ()

使用默认导航 UI 面板。

Returns
  • UI面板配置类

public void showServiceAreaInfo (boolean isShow)

是否显示高速休息区面板,默认NO

public void updateExtraPointsInVisibleRegion (ArrayList<LatLng> extraPoints)

在剩余全览模式下调用此接口并传入坐标点,将会在调整地图视野时, 确保开发者传入的坐标点显示在可视区域内.

NOTE: 其他导航模式传入无效.

Parameters
extraPoints 需要额外包含在地图可视区域内的点数据