开发 iOS 导航SDK 开发指南 专业导航 导航实时数据获取

导航实时数据获取 最后更新时间: 2021年01月22日

基本介绍

在实际驾车导航中,导航SDK会通过<AMapNaviDriveDataRepresentable>协议实时的透出导航数据,可帮助您进行UI的定制化开发,是HUD和智能硬件的解决方案。骑行请参考<AMapNaviRideDataRepresentable>协议,步行请参考<AMapNaviWalkDataRepresentable>协议。

使用说明 

[[AMapNaviDriveManager sharedInstance] addDataRepresentative:self];
[[AMapNaviDriveManager sharedInstance] calculateDriveRouteWithStartPOIInfo:self.startPOIInfo 
                                                                endPOIInfo:self.endPOIInfo 
                                                               wayPOIInfos:nil 
                                                           drivingStrategy:AMapNaviDrivingStrategyMultipleDefault];
AMapNaviDriveManager.sharedInstance().addDataRepresentative(self)
AMapNaviDriveManager.sharedInstance().calculateDriveRoute(withStart:startPOIInfo, 
                                                                end:endPOIInfo, 
                                                        wayPOIInfos:nil, 
                                                    drivingStrategy:AMapNaviDrivingStrategyMultipleDefault)

主要导航数据

NaviInfo信息

NaviInfo主要指的是导航信息,比如当前道路名称、距离终点的时间和距离、没有避开的设施信息等。AMapNaviDriveView顶部诱导面板的信息就是主要从该回调获取的。 

/**
 * @brief 导航信息更新回调
 * @param driveManager 驾车导航管理类
 * @param naviInfo 导航信息,参考 AMapNaviInfo 类
 */
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateNaviInfo:(nullable AMapNaviInfo *)naviInfo;

路口放大图

路口放大图包含了显示和隐藏两个回调,如下: 

/**
 * @brief 需要显示路口放大图时的回调
 * @param driveManager 驾车导航管理类
 * @param crossImage 路口放大图Image(宽:高 = 25:16)
 */
- (void)driveManager:(AMapNaviDriveManager *)driveManager showCrossImage:(UIImage *)crossImage;

/**
 * @brief 需要隐藏路口放大图时的回调
 * @param driveManager 驾车导航管理类
 */
- (void)driveManagerHideCrossImage:(AMapNaviDriveManager *)driveManager;

 

车道线

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

/**
 * @brief 需要显示车道信息时的回调.可通过 UIImage *CreateLaneInfoImageWithLaneInfo(NSString *laneBackInfo, NSString *laneSelectInfo); 方法创建车道信息图片
 * 0-直行; 1-左转; 2-直行和左转; 3-右转;
 * 4-直行和右转; 5-左转掉头; 6-左转和右转; 7-直行和左转和右转;
 * 8-右转掉头; 9-直行和左转掉头; 10-直行和右转掉头; 11-左转和左转掉头;
 * 12-右转和右转掉头; 13-直行左侧道路变宽; 14-左转和左转掉头左侧变宽; 16-直行和左转和左掉头;
 * 17-右转和左掉头; 18-左转和左掉头和右转; 19-直行和右转和左掉头; 20-左转和右掉头; 21-公交车道; 23-可变车道;
 * 255-只会出现在laneSelectInfo,表示目前规划的路径,不可以走这个车道
 *
 * @param driveManager 驾车导航管理类
 * @param laneBackInfo 车道背景信息,例如:@"1|0|0|4",表示当前道路有4个车道,分别为"左转|直行|直行|右转+直行"
 * @param laneSelectInfo 车道前景信息,其个数一定和车道背景信息一样,例如:@"255|0|0|0",表示选择了当前道路的第2、3、4三个直行车道。
 */
- (void)driveManager:(AMapNaviDriveManager *)driveManager showLaneBackInfo:(NSString *)laneBackInfo laneSelectInfo:(NSString *)laneSelectInfo;

/**
 * @brief 需要隐藏车道信息时的回调
 * @param driveManager 驾车导航管理类
 */
- (void)driveManagerHideLaneInfo:(AMapNaviDriveManager *)driveManager;

转向图标

导航SDK从v6.2.0开始,透出了单独的转向图标回调,图标带有路网信息,更加直观。  

/**
 * @brief 导航中的转向图标更新回调 since 6.2.0
 * @param driveManager 驾车导航管理类
 * @param turnIconImage 导航段转向图标, 默认大小为(255,255)
 * @param turnIconType 导航段转向图标类型,参考 AMapNaviIconType 类
 */
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateTurnIconImage:(nullable UIImage *)turnIconImage turnIconType:(AMapNaviIconType)turnIconType;

路况信息

路况信息返回的是当前引导路线的路况,可用来绘制光柱图。 

/**
 * @brief 路况光柱信息更新回调
 * @param driveManager 驾车导航管理类
 * @param trafficStatus 路况光柱信息数组,参考 AMapNaviTrafficStatus 类
 */
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateTrafficStatus:(nullable NSArray<AMapNaviTrafficStatus *> *)trafficStatus;

拥堵区域信息

导航SDK从v7.5.0开始,透出了前方拥堵区域信息。 

/**
 * @brief 前方拥堵区域信息的更新回调. since 7.5.0
 * @param driveManager 驾车导航管理类
 * @param congestionInfo 拥堵区域信息, 参考 AMapNaviCongestionInfo 类,如果已通过该拥堵区域或者其不再拥堵时,congestionInfo会返回nil
 */
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateCongestionInfo:(nullable AMapNaviCongestionInfo *)congestionInfo;

电子眼信息

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

/**
 * @brief 电子眼信息更新回调 since 5.0.0
 * @param driveManager 驾车导航管理类
 * @param cameraInfos 电子眼信息,参考 AMapNaviCameraInfo 类
 */
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateCameraInfos:(nullable NSArray<AMapNaviCameraInfo *> *)cameraInfos;

区间测速电子眼信息

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

/**
 * @brief 区间电子眼信息更新回调 since 6.0.0
 * @param driveManager 驾车导航管理类
 * @param state 自车位置和区间测速电子眼路段的位置关系,参考 AMapNaviIntervalCameraPositionState 类
 * @param startInfo 电子眼信息,参考 AMapNaviCameraInfo 类
 * @param endInfo 电子眼信息,参考 AMapNaviCameraInfo 类
 */
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateIntervalCameraWithPositionState:(AMapNaviIntervalCameraPositionState)state startInfo:(nullable AMapNaviCameraInfo *)startInfo endInfo:(nullable AMapNaviCameraInfo *)endInfo;

服务区和收费站信息

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

/**
 * @brief 服务区和收费站信息更新回调 since 5.0.0
 * @param driveManager 驾车导航管理类
 * @param serviceAreaInfos 服务区信息,参考 AMapNaviServiceAreaInfo 类
 */
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateServiceAreaInfos:(nullable NSArray<AMapNaviServiceAreaInfo *> *)serviceAreaInfos;
返回顶部 示例中心 常见问题 智能客服 公众号
二维码