全部服务产品
开发者频道
服务升级
登录
导航UI实时数据
下载开发文档
添加/移除导航UI实时数据监听者

完成订阅后,就可以收到各种导航UI实时数据

[[BNaviModel getInstance] addNaviModelListener:self];

不需要监听数据时,移除监听

- (void)removeNaviModelListener:(id<BNaviModelDelegate>)listener;
导航UI实时数据

1. 诱导面板

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

/**
* 诱导面板UI数据
*
*/
- (void)onHandleNewSimpleGuideUIInfo:(BNGuideViewCombinationModel *)data;
@interface BNGuideViewCombinationModel : NSObject
@property (nonatomic, strong) BNGuideViewMainModel *mainModel;
@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;
@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

下面分别介绍这两个类下的诱导面板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. 放大图

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

- (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:随后转向的图片名称
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 类型。用来做占位图用。
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

UI样式和字段说明如下:

UI样式字段说明
剩余距离(15.9公里): remainDist;
剩余时间(23分钟) :remainTime
到达时间(11:38到达):arrivalTime
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

上一篇

导航地图多实例

下一篇

基于Swift的应用开发

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