全部服务产品
开发者频道
定价
登录
导航实时数据获取
下载开发文档

专业导航中,通过BNaviModelDelegate中的接口实时透出导航中各种数据。

1 使用方式

添加监听BNaviModelListener后,即可收到导航中各种实时数据的回调。

/**
* 添加BNaviModel监听
* @param listener 监听者
*/
- (void)addNaviModelListener:(id<BNaviModelDelegate>)listener;
[[BNaviModel getInstance] addNaviModelListener:self];
2 导航UI数据回调

2.1 诱导面板

诱导面板数据更新回调如下:

/**
* 诱导面板UI数据
*
*/
- (void)onHandleNewSimpleGuideUIInfo:(BNGuideViewCombinationModel *)data;
@interface BNGuideViewCombinationModel : NSObject
/// 主诱导面板
@property (nonatomic, strong) BNGuideViewMainModel *mainModel;
/// 辅助面板
@property (nonatomic, strong) BNGuideViewAssistModel *assistModel;
@end

其中BNGuideViewMainModel是父类,回调中回传的是BNGuideViewDefaultMainModel和BNGuideViewExitMainModel,涉及的诱导面板model类如下:

/// 默认诱导主面板状态
typedef NS_ENUM(NSInteger, BNGuideDefaultViewState) {
BNGuideDefaultViewStateNormal, // 普通机动点
BNGuideDefaultViewStateHighway, // 高速模式
BNGuideDefaultViewStateFuzzy // 起点命中模糊诱导
};
// 道路类型
typedef NS_ENUM(NSUInteger, BNGuideViewRoadType) {
BNGuideViewRoadNormalType = 0,
BNGuideViewRoadStraightType,
BNGuideViewRoadVDRType
};
#pragma mark - 主诱导面板
/**
主诱导面板Model
*/
@interface BNGuideViewMainModel : NSObject
/// 绑定的主诱导面板类型
@property (nonatomic, copy) NSString *mainViewClass;
/**
6种模版
1. icon+XXX公里+进入+XXX路
2. icon+现在+进入+XXX路
3. icon+XXX公里+出口+驶往+XXX方向
4. icon+XXX公里+出口+进入+XXX路
5. icon+沿+XXX路+XXX公里
6. icon+XXX公里+出口+驶出+XXX主路
*/
/// 转向标icon
@property (nonatomic, copy) NSString *turnIconStr;
/// 机动点剩余距离(XXX、现在)
@property (nonatomic, copy) NSString *remainDistNumStr;
/// 剩余距离单位(公里、米)
@property (nonatomic, copy) NSString *remainDistUnitStr;
/// 衔接词(进入、驶往、驶出)
@property (nonatomic, copy) NSString *cohesiveWord;
/// 出口(出口+id)
@property (nonatomic, copy) NSString *exitInfo;
/// 填充词(XXX方向、XXX路、XXX主路)
@property (nonatomic, copy) NSString *supplementWord;
/// 辅助词(方向、主路)
@property (nonatomic, copy) NSString *assistWord;
/// 机动点剩余距离(XXX)单位是 米。 原始的诱导距离数据。
@property (nonatomic, assign) NSInteger remainDistNum;
/// 诱导转向类型
@property (nonatomic, assign) BNaviManeuver_Kind_Enum curTurnKind;
/// 机动点剩余距离 转化后 单位是 公里
@property (nonatomic, assign) CGFloat kmValue;
/// 机动点剩余距离 转化后 单位是 米
@property (nonatomic, assign) CGFloat mValue;
///距离 整体描述
@property (nonatomic, copy) NSString *distDescription;
@end
#pragma mark 无出口的诱导面板
/**
不带出口的主面板Model基类
*/
@interface BNGuideViewWithoutExitMainModel : BNGuideViewMainModel
/// 状态
@property (nonatomic, assign) BNGuideDefaultViewState state;
/// 是否是车标自由态
@property (nonatomic, assign) BOOL isCarFree;
/// 是否需要loading
@property (nonatomic, assign) BOOL isLoading;
/// loading文案
@property (nonatomic, copy) NSString *loadingText;
/// 道路类型
@property (nonatomic, assign) BNGuideViewRoadType roadType;
/// fuzzy文案
@property (nonatomic, copy) NSString *fuzzyText;
@end
/**
默认诱导主面板Model
*/
@interface BNGuideViewDefaultMainModel : BNGuideViewWithoutExitMainModel
@end
#pragma mark 有出口的诱导面板
/**
有出口的诱导主面板Model
*/
@interface BNGuideViewExitMainModel : BNGuideViewMainModel
@end
#pragma mark - 辅助面板
/**
辅助面板Model
*/
@interface BNGuideViewAssistModel : NSObject
@end
/**
随后辅助面板Model
*/
@interface BNGuideViewNextTurnAssistModel : BNGuideViewAssistModel
/// 是否是高快速出口,是的话要变绿色,不是则为黑色
@property (nonatomic, assign) BOOL highFastExitMode;
@property (nonatomic, strong) BNGuideViewNextTurnContentAssistModel *contentAssistModel;
@end
/**
None辅助面板
*/
@interface BNGuideViewNoneAssistModel : BNGuideViewAssistModel
@end
#pragma mark - 随后面板内容Model
/**
随后Style内容
*/
@interface BNGuideViewNextTurnContentAssistModel : NSObject
/**
随后有6种模版
1. 随后+icon+驶往+XXX方向
2. 随后+icon+进入+XXX路
3. 随后+icon+到达+目的地
4. 驶往+XXX+方向
5. 进入+XXX
6. 到达+目的地
首先判断是否有方向数据,有方向则为第一种
没有方向数据,则判断icon是否是到达目的地icon,是的话,则为第三种
否则为第二种,第二种可能没有icon
*/
/// 写死的“随后”
@property (nonatomic, copy) NSString *nextTurnStr;
/// icon
@property (nonatomic, copy) NSString *nextTurnIconStr;
/// 衔接词(驶往、进入、到达)
@property (nonatomic, copy) NSString *cohesiveWord;
/// 填充词(XXX方向、XXX路、目的地)
@property (nonatomic, copy) NSString *supplementWord;
/// 辅助词(方向、主路)
@property (nonatomic, copy) NSString *assistWord;
///诱导转向类型
@property (nonatomic, assign) BNaviManeuver_Kind_Enum curTurnKind;
@end

下面分别介绍这两个类下的诱导面板UI样式。

(1)BNGuideViewDefaultMainModel

诱导面板的UI主要是由面板状态(state)、道路类型(roadType)、是否车标自由(isCarFree)、是否加载中(isLoading)这几个字段的影响。具体如下:

UI样式面板状态 state道路类型 roadType是否车标自由 isCarFree是否加载中 isLoading字段说明
NormalVDRTypeNONO转向标:turnIconStr
衔接词(往):cohesiveWord
填充路名(海斯路):supplementWord
NormalNormalTypeNONO转向标:turnIconStr
距离(394 、现在):remainDistNumStr
距离单位(米):remainDistUnitStr
衔接词(进入):cohesiveWord
填充路名(科苑南路、海斯路):supplementWord
HighwayNormalTypeNONO转向标:turnIconStr
距离:remainDistNumStr
距离单位:remainDistUnitStr
衔接词(去往):cohesiveWord
出口标签(出口758):exitInfo
路名(肇庆s4001):supplementWord
HighwayStraightTypeNONO转向标:turnIconStr
距离:remainDistNumStr
距离单位:remainDistUnitStr
衔接词(进入):cohesiveWord
路名(广昆高速):supplementWord
Fuzzy/NONO转向标:turnIconStr
模糊诱导文案:fuzzyText
//NOYES转向标:turnIconStr
文案:loadingText
//YESNO文案: carFreeText

(2)BNGuideViewExitMainModel

UI样式面板状态 state道路类型 roadType字段说明
//转向标:turnIconStr
距离:remainDistNumStr
距离单位:remainDistUnitStr
衔接词(出往):cohesiveWord
出口标签(出口770):exitInfo
路名(梧州市区 G207):supplementWord

2.2 放大图

放大图数据更新回调如下:

- (void)onHandleExpandMap:(UIView *)rasterExpandMap guideModel:(BNaviExpandGuideModel *)model;

其中rasterExpandMap为放大图视图,model为放大图诱导面板model。如果rasterExpandMap有值就表示需要展示放大图,没有就代表不需要展示。
BNaviExpandGuideModel包含以下字段:

@interface BNaviExpandGuideModel : NSObject
///当前进度
@property (nonatomic, assign) CGFloat progress;
///剩余距离
@property (nonatomic, strong) NSString *remainDist;
/// 当前路口转向
@property (nonatomic, strong) UIImage *midTurnImage;
/// 当前路图片名称
@property (nonatomic, copy) NSString *midTurnImageStr;
//// 高速出口
@property (nonatomic, copy) NSString *exitRoad;
/// 往 xx路
@property (nonatomic, copy) NSString *roadName;
//随后
@property (nonatomic, copy) NSString *nextTurnStr;
/// 随后转向标
@property (nonatomic, strong) UIImage *nextTurnImage;
/// 随后转向标名称
@property (nonatomic, copy) NSString *nextTurnImageStr;
@end

放大图的诱导面板UI有以下三种形式,UI和各个字段说明如下:

UI样式字段说明
rasterExpandMap:放大图图片。当rasterExpandMap未空的时候 需要隐藏放大图。放大图表示是在顶部进度条下面部分。不包含放大图上车信。
progress:放大图顶部进度条进度。
remainDist:剩余距离。
midTurnImage:转向Image
midTurnImageStr:转向的图片名称
exitRoad:出口标签
roadName: 往 xxx路
nextTurnStr:随后
nextTurnImage:随后UIImage
nextTurnImageStr:随后转向的图片名称

2.3 车道线

车道线更新的回调如下:

- (void)onHandleNaviLaneInfoChanged:(BNaviLaneInfo *)param withLanesIcons:(NSArray<BNaviLanesIconModel*> *)array;

其中BNaviLaneInfo和BNaviLanesIconModel包含以下字段:

typedef enum _BNaviMessage_Action_Enum
{
BNaviMessage_Action_Invalid, // 无效值 - Invalid
BNaviMessage_Action_Show, // 显示 - Show action
BNaviMessage_Action_Update, // 更新 - Update action
BNaviMessage_Action_Hide, // 隐藏 - Hide action
}BNaviMessage_Action_Enum;
/// 车道线信息
@interface BNaviLaneInfo : BNNaviMsgBase
@property (nonatomic, assign) BNaviMessage_Action_Enum eAction;
@end
@interface BNaviLanesIconModel : NSObject
//可能是string,也可能是image
// 当icontype是1、2 的时候icon是NSString类型。
// iconType是3代表是高亮中间的间隔线,是空白的占位图UIImage类型。
@property (nonatomic, strong) id icon;
// 1:车道,2:车道间隔虚线,3:高亮车道间隔线;
@property (nonatomic) NSInteger iconType;
@end

UI样式和字段说明如下:

UI样式字段说明
param:用来判断是否要展示和隐藏。
array:数组里面存放的是BNaviLanesIconModel。
BNaviLanesIconModel:使用前需要判断iconType。
iconType为1 或者2 的时候。icon 的取值是String。图片的名称;
iconType 为3:icon为UIImage 类型。用来做占位图用。

2.4 全程剩余时间、距离

全程剩余时间、距离更新回调如下:

/**
* 剩余信息 + 到达
* - Parameter remainInfo: eta数据
*/
- (void)onHandleRemainUIInfo:(BNaviEtaRemainUIInfo *)remainInfo;

BNaviEtaRemainUIInfo定义如下:

@interface BNaviEtaRemainUIInfo : NSObject
@property(nonatomic,copy)NSString *remainDist; // 剩余距离 - remain distance
@property(nonatomic,copy)NSString *remainTime; // 剩余时间 - remain time
@property(nonatomic,copy)NSString *arrivalTime; ///到达时间
@end

全程剩余时间、距离、到达时间更新如下:

/**
* 处理剩余信息
*
* @param remainInfo 剩余信息
*/
- (void)onHandleRemainInfo:(BNaviRemainInfo*)remainInfo;

BNaviRemainInfo 定义如下:

/// 转化后 距离 model
@interface BNaviDistanceDescriptionModel : NSObject
/// 单位是千米 1.1 表示 1.1km
@property (nonatomic, assign) CGFloat kmValue;
/// 单位是米 889 表示 889m
@property (nonatomic, assign) CGFloat mValue;
///距离 整体描述
@property (nonatomic, copy) NSString *distanceDescription;
@end
/// 转化后 时间Model
@interface BNaviTimeDescriptionModel : NSObject
/// 小时
@property (nonatomic, assign) int hour;
/// 分钟
@property (nonatomic, assign) int minute;
///天的 类型
@property (nonatomic, assign) BNaviDayType dayType;
///时间整体描述
@property (nonatomic, copy) NSString *timeDescription;
@end
/// 剩余信息(距离、时间)
@interface BNaviRemainInfo : BNNaviMsgBase
@property(nonatomic,assign)BNaviMessage_Action_Enum eAction; // 动作类型 - action type
@property(nonatomic,assign)NSInteger remainDist; // 剩余距离 - remain distance
@property(nonatomic,assign)NSInteger remainTime; // 剩余时间 - remain time
/// 转化后 全程剩余时间
@property (nonatomic, strong) BNaviTimeDescriptionModel *remainingTimeModel;
/// 转化后 到达时间
@property (nonatomic, strong) BNaviTimeDescriptionModel *estimatedArrivalTimeModel;
/// 转化后 剩余距离
@property (nonatomic, strong) BNaviDistanceDescriptionModel *etaRemainingDistanceModel;
@end

UI样式和字段说明如下:

UI样式字段说明
剩余距离(15.9公里): remainDist;
剩余时间(23分钟) :remainTime
到达时间(11:38到达):arrivalTime

2.5 剩余红绿灯

剩余红绿灯数回调如下:

-(void)onHandleRemainTrafficlightsInfo:(BNaviRemainTrafficlightsInfo*)remainTrafficlightsInfo;

BNaviRemainTrafficlightsInfo定义如下:

/// 剩余红绿灯(目的地、途经点)
@interface BNaviRemainTrafficlightsInfo : BNNaviMsgBase
@property(nonatomic,assign)NSInteger remainTrafficights; // 离目的地剩余红绿灯
@property(nonatomic,assign)NSInteger viaRemainTrafficights; // 离下个途经点剩余红绿灯
@end

UI样式和字段说明如下:

UI样式字段说明
离目的地的剩余红绿灯(4): remainTrafficights
离下个途经点剩余红绿灯(5):viaRemainTrafficights

2.6 定位信号

导航信号数据回调:

/**
* 导航GPS信号内容展示
*
*/
- (void)onHandleSignalStatusChange:(BNaviSignalModel *)model;

BNaviSignalModel 定义如下:

///信号展示状态类型
typedef NS_ENUM(NSUInteger, BNaviSignalModelState) {
BNaviSignalModelState_Tunnel, // 在隧道
BNaviSignalModelState_Underground, // 在地库
BNaviSignalModelState_Weak, // 信号弱
BNaviSignalModelState_Medium, // 信号中
BNaviSignalModelState_Strong, // 信号强
BNaviSignalModelState_BDNotHighPrecision, // 北斗非高精定位
BNaviSignalModelState_BDHighPrecision, // 北斗高精定位
};
@interface BNaviSignalModel : NSObject
@property (nonatomic, copy) NSString *siginalText;
@property (nonatomic, copy) NSString *siginalImgName;
@property (nonatomic, assign) BNaviSignalModelState state;
@end

UI样式和字段说明如下:

UI样式字段说明
定位信号弱 :siginalText
图片icon名称: siginalImgName
定位样式类型: state

2.7 路名

路名回调:

/**
* 处理当前路名变化接口
*
* @param curRoadName 当前路名信息
*/
- (void)onHandleCurrentRoadName:(BNaviCurrentRoadName*)curRoadName;

BNaviCurrentRoadName 定义如下:

/// 当前路名信息
@interface BNaviCurrentRoadName : BNNaviMsgBase
@property(nonatomic,copy)NSString* curRoadName; // 当前路名, current road name
@end

UI样式和字段说明如下:

UI样式字段说明
海斯路:curRoadName

2.8 车速

车速回调接口:

/**
* GPS速度变化回调
* @param speed 当前速度 -1 代表 需要展示 -- 单位:km/h
* @param speedLimit 单位:km/h 在无限速的情况下是0
*/
- (void)onHandleGPSSpeedChange:(BNKMNaviSpeed *)speed speedLimit:(int)speedLimit;

BNKMNaviSpeed 定义如下:

/// 车速信息
@interface BNKMNaviSpeed : NSObject
@property (nonatomic, assign) int speed; // 单位km/h
@end

UI样式和字段说明如下:

UI样式字段说明
speed (0:)当前速度 -1 代表 需要展示 -- 单位:km/h
speedLimit:speed 超过 speedLimit 会出现码表变红。

2.9 区间测速

区间测速接口:

/**
* 区间测速
* @param infoModel 区间测速model
*/
- (void)onHandleIntervalSpeedChange:(BNIntervalSpeedModel *)infoModel;

BNIntervalSpeedModel 定义如下:

///区间速度状态
typedef NS_ENUM(NSUInteger, BNIntervalSpeedModelState) {
BNIntervalSpeedModelStateShow,
BNIntervalSpeedModelStateUpdate,
BNIntervalSpeedModelStateHide,
};
@interface BNIntervalSpeedModel : NSObject
/// 限速区域长度 单位:m
@property (nonatomic, assign) NSInteger intervalLength;
/// 当前区域 限速 单位:km/h
@property (nonatomic, assign) NSInteger limitSpeed;
/// 限速区域平均速度 单位:km/h
@property (nonatomic, assign) NSInteger limitAverageSpeed;
///限速区域剩余距离 单位 m
@property (nonatomic, assign) NSInteger limitAreaRemainDist;
//区间测速 状态
@property (nonatomic, assign) BNIntervalSpeedModelState state;
@end

UI样式和字段说明如下:

UI样式字段说明
整个限速区域长度: intervalLength
当前限速值(100): limitSpeed
平均车速(67):limitAverageSpeed
剩余公里:(6.7)limitAreaRemainDist
区间测速的状态: state

2.10 实时路况

实时路况数据接口:

/**
* 路况更新
*
*/
- (void)onHandleRoadConditionChange:(BNaviRoadConditionModel *)model;

BNaviRoadConditionModel 定义如下:

@interface BNaviRoadConditionItem : NSObject
@property(nonatomic,assign)int endIndex;
@property(nonatomic,assign)BNaviRoadCondition_Type_Enum eRoadConditionType;
@end
///导航中路况数据
@interface BNaviRoadConditionModel : NSObject
///每个元素是BNaviRoadConditionItem类型
@property (nonatomic, copy) NSArray<BNaviRoadConditionItem *> *roadConditionArray;
@end

UI样式和字段说明如下:

UI样式字段说明
roadConditionArray数组内部是每一段路况的数据。
数组内部每一个 BNaviRoadConditionItem 元素代表一段路况。
eRoadConditionType:代表这一段路的路况。
endIndex:代表这段路的最后一个坐标的点。注意endIndex 是第二段的起点。
例如:
当前有3段路况。分别为[BNaviRoadConditionItem,BNaviRoadConditionItem,BNaviRoadConditionItem]。
第一个路况是畅通,第二段拥堵,第三段严重拥堵。
代码示例:
NSMutableArray* barCharViewData = [[NSMutableArray alloc] init];
if ([self.roadConditionArr count] >0) {
int lastIndex = 0;
int curlength = 0;
for (int i = 0; i < [self.roadConditionArr count]; i++) {
BNaviRoadConditionItem *item = self.roadConditionArr[i];
curlength = item.endIndex - lastIndex;
lastIndex = item.endIndex;
if (curlength >0) {
UIColor *color = [self colorForRoadConditionType:item.eRoadConditionType];
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@(curlength),
@"value", color, @"color", @(item.eRoadConditionType), @"type", nil];
[barCharViewData addObject:dic];
}
}
}

2.11 高速面板

高速面板数据回调如下:

/**
* 高速面板数据
* BNaviHighwayPanelModel
*/
- (void)onHandleHighwayPanelChange:(BNaviHighwayPanelModel *)model;

其中BNaviHighwayPanelModel含以下字段:

///高速面板类型
typedef NS_ENUM(NSUInteger, BNaviHighwayInfoType) {
BNaviHighwayInfoInvalid = 0, /**< 无效*/
BNaviHighwayInfoTollStation, /**< 收费站 */
BNaviHighwayInfoEntrance, /**< 高速入口 */
BNaviHighwayInfoExit, /**< 高速出口 */
BNaviHighwayInfoServiceArea, /**< 高速服务区 */
BNaviHighwayInfoFastwayExit, /**< 快速出口 */
BNaviHighwayInfoChargeStation, /**< 充电站*/
BNaviHighwayInfoSAWithCS, /**< 带充电站的服务区*/
BNaviHighwayInfoDirection /**< 方向面板*/
};
///服务区 提供的服务类型
typedef NS_ENUM(NSUInteger, BNaviHighwayInfoDetailType) {
BNaviHighwayInfoDetailTypeAll = 0,
BNaviHighwayInfoDetailTypePark = 1, /**< 停车 */
BNaviHighwayInfoDetailTypePetrol, /**< 加油 */
BNaviHighwayInfoDetailTypeCharge, /**< 充电 */
BNaviHighwayInfoDetailTypeFood, /**< 餐饮 */
BNaviHighwayInfoDetailTypeToilet, /**< 厕所 */
BNaviHighwayInfoDetailTypeMarket, /**< 超市 */
BNaviHighwayInfoDetailTypeFix, /**< 汽修 */
BNaviHighwayInfoDetailTypeEntertainment, /**< 休闲 */
BNaviHighwayInfoDetailTypeGas /**< 加气 */
};
/**
* 定义导航消息的动作类型:显示、更新、隐藏
* --------------------------
* Action type of navigation message
*/
typedef enum _BNaviMessage_Action_Enum
{
BNaviMessage_Action_Invalid, // 无效值 - Invalid
BNaviMessage_Action_Show, // 显示 - Show action
BNaviMessage_Action_Update, // 更新 - Update action
BNaviMessage_Action_Hide, // 隐藏 - Hide action
}BNaviMessage_Action_Enum;
/**
* 高速面板内容
*/
@interface BNaviHighwayContentModel : NSObject
///高速面板类型
@property (nonatomic, assign) BNaviHighwayInfoType highwayInfoType;
///服务区名称
@property (nonatomic, copy) NSString *name;
///距离 单位 m
@property (nonatomic, assign) NSUInteger remainDist;
///服务区 icon 类型 BNaviHighwayInfoDetailType
@property (nonatomic, copy) NSArray<NSNumber *> *typeArray;
///icon 图片名称
@property (nonatomic, copy) NSArray<NSString *> *typeIconStrArray;
/// 距离 转化 Model
@property (nonatomic, strong) BNaviDistanceDescriptionModel *disModel;
@end
/**
* 高速面板
*/
@interface BNaviHighwayPanelModel : NSObject
@property (nonatomic, strong) BNaviHighwayContentModel *topModel;
@property (nonatomic, strong) BNaviHighwayContentModel *bottomModel;
@property (nonatomic, assign) BNaviMessage_Action_Enum eAction;
@end

UI样式和字段说明如下:

UI样式字段说明
(1)BNaviHighwayPanelModel各个字段:
topModel:顶部高速面板
bottomModel:底部高速面板
eAction:动作类型:显示、更新、隐藏
(2)BNaviHighwayContentModel各个字段:
highwayInfoType:面板类型
name:服务区名称,比如标红区域的【大坡】
remainDist:剩余距离,比如标红区域的【13.5km】原始数据是1350,单位是m
typeArray:服务区支持服务类型
typeIconStrArray:服务区服务类型图片名称
disModel:转换后的距离数据

2.12 主辅路高架桥上桥下

主辅路高架桥上桥下相关回调如下:

/*
* 高架桥,主辅路显示
*
* @param msg
*/
- (void)onHandleMainSlaveViaductChange:(BNaviMainSlaveViaductInfo *)changeInfo;
/**
* 高架桥,主辅路切换结果消息
*
* @param msg 高架桥主辅路切换消息
*/
- (void)onHandleMainSlaveViaductInfoResult:(BNaviMainSlaveViaductMsg *)msg;

切换到主辅路高架桥上桥下接口如下:

/**
* 主辅路切换(桥上桥下切换)
* @param type 切换类型,只能传入 BNRoadType_MainRoad、BNRoadType_SideRoad、BNRoadType_OnBridge、BNRoadType_UnderBridge
* @return 是否切换成功
*/
- (BOOL)mapMainSlaveViaductChangeTo:(BNRoadType)type;
3 其他导航实时数据回调

3.1 路线变化相关回调

/**
* 导航中开始偏航
*/
- (void)naviYawingDidStart:(BNaviModel *)model withStamp:(NSString *)yawingStamp;
/// 导航中主路变化回调
/// @param routeModel 路线数据model
- (void)onHandleDrivingRouteChange:(BNCarRouteModel *)routeModel;
/**
* 导航更新路线前回调
*/
- (void)onHandleNaviRouteWillChangedByType:(BNCalculateSourceType)type;
/**
* 导航中更新 途径点 终点 成功或者失败回调。error != nil 是成功
*/
/// type 算路当前算路的类型。删除途经点 添加途经点 更改终点 类型
/// @param node 途经点
/// @param index 途径点下标序号 从1 开始
/// @param error 失败错误
- (void)onHandleNaviRouteDidChangedByType:(BNCalculateSourceType)type node:(BNRoutePlanNode *)node index:(int)index error:(NSError *)error;
///开始刷新路线
- (void)onHandleNaviRouteWillRefresh;
///刷新路线返回刷新结果类型
- (void)onHandleNaviRouteDidRefreshWithType:(BNaviMessage_OtherRoute_Enum)type;
/**
* 导航中更改路线成功
*/
- (void)reCalculateNaviRouteDidFinished:(BNaviModel *)model sourceType:(BNCalculateSourceType)sourceType;
/**
* 导航中更改路线失败
*/
- (void)reCalculateNaviRouteDidFailed:(BNaviModel *)model sourceType:(BNCalculateSourceType)sourceType;
/**
* 导航中取消更改路线
*/
- (void)reCalculateNaviRouteDidCancel:(BNaviModel *)model sourceType:(BNCalculateSourceType)sourceType;

3.2 沿途搜相关回调

/**
* 沿途搜索结果
* @param code 沿途搜索结果
* @param poiArray 当code为BNaviSearch_ResultCode_Succeed时,poiArray返回搜索结果
*/
- (void)viaSearchResult:(BNaviSearch_ResultCode_ENUM)code poiArray:(NSArray *)poiArray;
/**
* 清空沿途搜索结果
*/
- (void)viaSearchClearResult;

3.3 货车标识相关回调

/// 货车限行标识(限高,限重等)显示
/// @param msgParam 货车限行消息结构体
- (void)onHandleTruckTrafficSignShow:(BNaviTruckTrafficSignInfo *)msgParam;
/// 货车限行标识(限高,限重等)更新
/// @param msgParam 货车限行消息结构体
- (void)onHandleTruckTrafficSignUpdate:(BNaviTruckTrafficSignInfo *)msgParam;
/// 货车限行标识(限高,限重等)隐藏
/// @param msgParam 货车限行消息结构体
- (void)onHandleTruckTrafficSignHide:(BNaviTruckTrafficSignInfo *)msgParam;

3.4 车道级相关回调

* 车道级路线自动 进入和 退出 消息
*/
- (void)onHandleNavigationMapLaneMsg:(BOOL)isEnter;
/**

3.5 其他回调

/**
* 处理导航状态变化接口
*
* @param naviStatusInfo 导航状态信息
*/
- (void)onHandleNaviStatusChange:(BNaviStatusInfo*)naviStatusInfo;
/**
* 处理地图刷新相关信息
*
* @param mapRefreshInfo 地图刷新消息
*/
- (void)onHandleMapRefresh:(BNaviMapRefreshInfo*)mapRefreshInfo;
/**
* 经过途经点/偏航时移除途经点消息
*
* @discussion 以下两种情况会回调该方法:
*
* 1.经过某个途经点时;
*
* 2.接近某个途经点并产生偏航,这是SDK会抛弃该途经点进行偏航算路并抛出该回调消息。
*
* 如何区分上面两种情况?
*
* passViaInfo参数的属性enType==1时表示经过某个途经点,enType==2时表示偏航时该途经点被自动删除
*
* @param passViaInfo 途经点消息
* @note passViaInfo参数的属性viaIndex表示正在经过/删除的是第几个途经点(编号从0开始)
*/
- (void)onHandlePassViaPoint:(BNaviPassViaPointInfo *)passViaInfo;
/**
* 回调规避提示
*
* @param tips 规避提示
*/
- (void)onHandleNaviLocalRouteTips:(NSString *)tips;
/**
* 车标位置进度变化
*/
- (void)onHandleCarProgressChange;

上一篇

多路线导航

下一篇

导航地图多实例

本篇文章对您是否有帮助?