导航实时数据获取

您所在的位置:网站首页 路口位置高程怎么做 导航实时数据获取

导航实时数据获取

2024-07-14 21:36| 来源: 网络整理| 查看: 265

基本介绍

在实际驾车导航中,导航SDK会通过AMapNaviListener、ParallelRoadListener、AimlessModeListener这些监听器实时的透出导航信息与数据,可帮助您进行UI的定制化开发,是HUD和智能硬件的解决方案。骑行、步行与驾车一致,同样可以通过AMapNaviListener来获取导航事件与数据。

注册一般导航事件与数据监听(驾车、骑行、步行通用):Java AMapNavi mAMapNavi = AMapNavi.getInstance(mContext); // 1.注册一般导航事件与数据监听 mAMapNavi.addAMapNaviListener(new AMapNaviListener() { // 导航管理类初始化成功回调 @Override public void onInitNaviSuccess() { } // 开始导航回调 @Override public void onStartNavi(int type) { } ... });注册平行路数据监听(驾车): JavaAMapNavi mAMapNavi = AMapNavi.getInstance(mContext); // 注册平行路数据监听 mAMapNavi.addParallelRoadListener(new ParallelRoadListener() { // 平行路信息变化回调 @Override public void notifyParallelRoad(AMapNaviParallelRoadStatus roadStatus) { } });注册巡航模式数据监听(驾车): JavaAMapNavi mAMapNavi = AMapNavi.getInstance(mContext); // 注册巡航模式数据监听 mAMapNavi.addAimlessModeListener(new AimlessModeListener() { // 巡航道路设施信息更新回调 @Override public void onUpdateTrafficFacility(AMapNaviTrafficFacilityInfo[] infos) { } // 巡航电子眼信息更新回调 @Override public void onUpdateAimlessModeElecCameraInfo(AMapNaviTrafficFacilityInfo[] cameraInfo) { } // 巡航统计信息更新回调 @Override public void updateAimlessModeStatistics(AimLessModeStat aimLessModeStat) { } // 巡航拥堵信息更新回调 @Override public void updateAimlessModeCongestionInfo(AimLessModeCongestionInfo aimLessModeCongestionInfo) { } });NaviInfo信息

NaviInfo主要指的是导航信息,比如当前道路名称、距离终点的时间和距离、没有避开的设施信息等。可通过AMapNaviListener中的onNaviInfoUpdate 回调接口获取NaviInfo对象。自定义导航视图AMapNaviView,以及导航组件中导航页顶部诱导面板、底部面板的信息,就是主要从该回调获取的。 

Java/** * 导航引导信息回调。 * * @param naviInfo 导航信息类对象。 */ void onNaviInfoUpdate(NaviInfo naviInfo);路口放大图

路口放大图包含了显示和隐藏两个回调,又根据放大图类别为实景图还是模型图分为两套,一共4个回调,均位于AMapNaviListener中,仅对驾车有效,如下: 

Java/** * 显示路口放大图回调(实景图)。 * * @param aMapNaviCross 路口放大图类,可以获得此路口放大图bitmap * @since 1.5.0 */ void showCross(AMapNaviCross aMapNaviCross); /** * 关闭路口放大图回调(实景图)。 * * @since 1.5.0 */ void hideCross(); /** * 显示路口放大图回调(模型图)。 * * @param modelCross 模型图数据类,可以获取绘制模型图需要的矢量数据 * @since 5.0.0 */ void showModeCross(AMapModelCross modelCross); /** * 关闭路口放大图回调(模型图)。 * * @since 5.0.0 */ void hideModeCross();车道线

车道线包含了显示和隐藏两个回调,位于AMapNaviListener中,如下: 

Java/** * 显示车道信息回调 * * @param laneInfo 车道信息,可获得当前道路信息,可用于用户使用自己的素材完全自定义显示。 * @since 6.0.0 */ void showLaneInfo(AMapLaneInfo laneInfo); /** * 隐藏车道信息回调 * * @since 1.5.0 */ void hideLaneInfo();转向图标

导航过程中路口的转向图标信息,可从NaviInfo中获取,NaviInfo的获取上面已经介绍不再赘述,NaviInfo中转向图标相关的接口有2个,一个是直接获取转向图标的bitmap,另一个是获取转向图标类型的枚举值,可用于自定义转向图标的绘制。图标bitmap带有路网信息,更加直观。

NaviInfo中的接口: 

Java/** * 获取转向图标bitmap,可能返回为空,返回空的情况,请使用getIconType来填充。 * * @return 转向图标bitmap * @since 6.4.0 */ public Bitmap getIconBitmap(); /** * 获取导航转向图标类型枚举 * * @return 转向图标枚举。含义参见{@link com.amap.api.navi.enums.IconType} */ public int getIconType();路况信息

路况信息涉及的接口一共有2个,一个主动接口,位于路线类AMapNaviPath中的getTrafficStatuses ,返回的是当前路线的即时路况信息,可用来绘制光柱图。另一个为被动回调,为AMapNaviListener中的onTrafficStatusUpdate,当路线上的路况发生变化时会触发回调。

AMapNaviPath中的主动接口: 

Java/** * 获取当前路线的路况信息 * * @return 交通状态对象集合 */ public List getTrafficStatuses();

 AMapNaviListener中的被动接口:

Java /** * 当路线的路况信息有更新时的回调。 */ void onTrafficStatusUpdate();

注意:为了获取更加实时准确的路况信息,建议设置AMapNaviListener监听,在收到onTrafficStatusUpdate回调后,通过AMapNavi的getNaviPath或getNaviPaths接口拿到最新的路线对象,然后通过路线对象的getTrafficStatuses接口获取实时的路况。  

电子眼信息

电子眼信息包含电子眼的类型、是否限速、经纬度坐标、当前自车位置到电子眼的距离等信息。位于AMapNaviListener中。 

Java/** * 导航过程中的摄像头信息回调函数 * * @param infoArray 摄像头对象数组 * @since 5.0.0 */ void updateCameraInfo(AMapNaviCameraInfo[] infoArray);区间测速电子眼信息

导航SDK从v6.0.0开始,透出了区间测速电子眼信息,包含了自车位置和区间测速路段的位置关系、一些实时更新的动态信息等。 

Java /** * 导航过程中的区间测速信息回调函数 * * @param startCameraInfo 区间测速起点信息 * @param endCameraInfo 区间测速终点信息 * @param status 具体类型可参考{@link com.amap.api.navi.enums.CarEnterCameraStatus} * @since 6.0.0 */ void updateIntervalCameraInfo(AMapNaviCameraInfo startCameraInfo, AMapNaviCameraInfo endCameraInfo, int status);服务区和收费站信息

导航SDK从v5.0.0开始,透出了服务区和收费站信息,包含了服务区的类型、名称、经纬度坐标、自车位置到服务区的距离,可用于一些自定义的信息展示。 

Java/** * 服务区信息回调函数 * * @param infoArray 服务区对象数组,参考 AMapServiceAreaInfo 类 * @since 5.0.0 */ void onServiceAreaUpdate(AMapServiceAreaInfo[] infoArray);交通事件

导航SDK从v6.2.0开始,提供了路线上交通事件信息的透出能力,包含了拥堵区域、限行区域、禁行区域、道路封闭等情况的躲避通知。还提供了GPS信号变弱的通知。可从AMapNaviRouteNotifyData中的getNotifyType方法来获取事件通知类型。 

Java/** * 导航过程中道路信息通知 * *

* 导航过程中针对拥堵区域、限行区域、禁行区域、道路封闭等情况的躲避通知。 * 通知和避让信息结果可以通过{@link com.amap.api.navi.model.AMapNaviRouteNotifyData}获取 *

* @param notifyData 通知和避让信息,详细信息请参考{@link com.amap.api.navi.model.AMapNaviRouteNotifyData} * @since 6.2.0 */ void onNaviRouteNotify(AMapNaviRouteNotifyData notifyData);


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3