Files
OrderScheduling/Pods/AMapNavi-NO-IDFA/AMapNaviKit.framework/Headers/AMapNaviDriveDataRepresentable.h
DDIsFriend f0e8a1709d initial
2023-08-18 17:28:57 +08:00

197 lines
9.7 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// AMapNaviDriveDataRepresentable.h
// AMapNaviKit
//
// Created by 刘博 on 16/1/13.
// Copyright © 2016年 Amap. All rights reserved.
//
#import "AMapNaviCommonObj.h"
NS_ASSUME_NONNULL_BEGIN
@class AMapNaviInfo;
@class AMapNaviRoute;
@class AMapNaviLocation;
@class AMapNaviStatisticsInfo;
@class AMapNaviDriveManager;
/**
* @brief AMapNaviDriveDataRepresentable协议.实例对象可以通过实现该协议,并将其通过 AMapNaviDriveManager 的addDataRepresentative:方法进行注册,便可获取导航过程中的导航数据更新.
* 可以根据不同需求,选取使用特定的数据进行导航界面自定义.
* AMapNaviDriveView 即通过该协议实现导航过程展示.也可以依据导航数据的更新进行其他的逻辑处理.
*/
@protocol AMapNaviDriveDataRepresentable <NSObject>
@optional
/**
* @brief 导航模式更新回调. 从5.3.0版本起,算路失败后导航SDK只对外通知算路失败,SDK内部不再执行停止导航的相关逻辑.因此,当算路失败后,不会收到 driveManager:updateNaviMode: 回调; AMapNaviDriveManager.naviMode 不会切换到 AMapNaviModeNone 状态, 而是会保持在 AMapNaviModeGPS or AMapNaviModeEmulator 状态.
* @param driveManager 驾车导航管理类
* @param naviMode 导航模式,参考 AMapNaviMode 值
*/
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateNaviMode:(AMapNaviMode)naviMode;
/**
* @brief 路径ID更新回调. 注意:请不要在此回调中调用 -selectNaviRouteWithRouteID: 接口,否则会出现死循环调用.
* @param driveManager 驾车导航管理类
* @param naviRouteID 导航路径ID
*/
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateNaviRouteID:(NSInteger)naviRouteID;
/**
* @brief 路径信息更新回调. 注意:请不要在此回调中调用 -selectNaviRouteWithRouteID: 接口,否则会出现死循环调用.
* @param driveManager 驾车导航管理类
* @param naviRoute 路径信息,参考 AMapNaviRoute 类
*/
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateNaviRoute:(nullable AMapNaviRoute *)naviRoute;
/**
* @brief 导航信息更新回调
* @param driveManager 驾车导航管理类
* @param naviInfo 导航信息,参考 AMapNaviInfo 类
*/
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateNaviInfo:(nullable AMapNaviInfo *)naviInfo;
/**
* @brief 自车位置更新回调 (since 5.0.0,模拟导航和实时导航的自车位置更新都会走此回调)
* @param driveManager 驾车导航管理类
* @param naviLocation 自车位置信息,参考 AMapNaviLocation 类
*/
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateNaviLocation:(nullable AMapNaviLocation *)naviLocation;
/**
* @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;
/**
* @brief 路况光柱信息更新回调
* @param driveManager 驾车导航管理类
* @param trafficStatus 路况光柱信息数组,参考 AMapNaviTrafficStatus 类
*/
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateTrafficStatus:(nullable NSArray<AMapNaviTrafficStatus *> *)trafficStatus;
/**
* @brief 电子眼信息更新回调 since 5.0.0
* @param driveManager 驾车导航管理类
* @param cameraInfos 电子眼信息,参考 AMapNaviCameraInfo 类
*/
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateCameraInfos:(nullable NSArray<AMapNaviCameraInfo *> *)cameraInfos;
/**
* @brief 服务区和收费站信息更新回调 since 5.0.0
* @param driveManager 驾车导航管理类
* @param serviceAreaInfos 服务区信息,参考 AMapNaviServiceAreaInfo 类
*/
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateServiceAreaInfos:(nullable NSArray<AMapNaviServiceAreaInfo *> *)serviceAreaInfos;
/**
* @brief 通知当前是否可以进行平行道路切换,包括主路、辅路以及高架桥上、高架桥下. since 5.3.0
* @param driveManager 驾车导航管理类
* @param parallelRoadStatus 平行道路信息,参考 AMapNaviParallelRoadStatus 类
*/
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateParallelRoadStatus:(nullable AMapNaviParallelRoadStatus *)parallelRoadStatus;
/**
* @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;
/**
* @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 导航中相对于当前转向图标,下一个转向图标更新回调 since 6.9.0
* @param driveManager 驾车导航管理类
* @param turnIconImage 导航段下一个路口转向图标, 默认大小为255,255
* @param turnIconType 导航段下一个转向图标类型,参考 AMapNaviIconType 类
*/
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateNextTurnIconImage:(nullable UIImage *)turnIconImage nextTurnIconType:(AMapNaviIconType)turnIconType;
/**
* @brief 多路线导航模式下的备选路线更新回调, 注意:此函数只有在 driveManager 设置了多路线导航模式才会回调. since 6.3.0
* @param driveManager 驾车导航管理类
* @param backupRoutes 备选路线信息数组, 参考 AMapNaviRoute 类
*/
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateBackupRoute:(nullable NSArray<AMapNaviRoute *> *)backupRoutes;
/**
* @brief 前方拥堵区域信息的更新回调. since 7.5.0
* @param driveManager 驾车导航管理类
* @param congestionInfo 拥堵区域信息, 参考 AMapNaviCongestionInfo 类如果已通过该拥堵区域或者其不再拥堵时congestionInfo会返回nil
*/
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateCongestionInfo:(nullable AMapNaviCongestionInfo *)congestionInfo;
#pragma mark - 智能巡航
/**
* @brief 巡航道路设施信息更新回调.该更新回调只有在detectedMode开启后有效
* @param driveManager 驾车导航管理类
* @param trafficFacilities 道路设施信息数组,参考 AMapNaviTrafficFacilityInfo 类
*/
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateTrafficFacilities:(nullable NSArray<AMapNaviTrafficFacilityInfo *> *)trafficFacilities;
/**
* @brief 巡航时自车前方电子眼信息.该更新回调只有在detectedMode开启后有效 since 6.7.0
* @param driveManager 驾车导航管理类
* @param cameraInfos 电子眼信息数组,参考 AMapNaviTrafficFacilityInfo 类
*/
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateCruiseElecCameraInfos:(NSArray<AMapNaviTrafficFacilityInfo *> *)cameraInfos;
/**
* @brief 巡航信息更新回调.该更新回调只有在detectedMode开启后有效
* @param driveManager 驾车导航管理类
* @param cruiseInfo 巡航信息,参考 AMapNaviCruiseInfo 类
*/
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateCruiseInfo:(nullable AMapNaviCruiseInfo *)cruiseInfo;
/**
* @brief 巡航状态下的拥堵区域信息. 该更新回调只有在detectedMode开启后有效 since 6.7.0
* @param driveManager 驾车导航管理类
* @param congestionInfo 巡航拥堵信息, 参考 AMapNaviCruiseCongestionInfo 类, 当前方无拥堵信息时, congestionInfo 的值为 nil .
*/
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateCruiseCongestionInfo:(AMapNaviCruiseCongestionInfo *)congestionInfo;
@end
NS_ASSUME_NONNULL_END