完成订阅后,就可以收到各种导航UI实时数据
[[BNaviModel getInstance] addNaviModelListener:self];
不需要监听数据时,移除监听
- (void)removeNaviModelListener:(id<BNaviModelDelegate>)listener;
诱导面板数据更新回调如下:
/*** 诱导面板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 | 字段说明 |
---|---|---|---|---|---|
Normal | VDRType | NO | NO | 转向标:turnIconStr 衔接词(往):cohesiveWord 填充路名(海斯路):supplementWord | |
Normal | NormalType | NO | NO | 转向标:turnIconStr 距离(394 、现在):remainDistNumStr 距离单位(米):remainDistUnitStr 衔接词(进入):cohesiveWord 填充路名(科苑南路、海斯路):supplementWord | |
Highway | NormalType | NO | NO | 转向标:turnIconStr 距离:remainDistNumStr 距离单位:remainDistUnitStr 衔接词(去往):cohesiveWord 出口标签(出口758):exitInfo 路名(肇庆s4001):supplementWord | |
Highway | StraightType | NO | NO | 转向标:turnIconStr 距离:remainDistNumStr 距离单位:remainDistUnitStr 衔接词(进入):cohesiveWord 路名(广昆高速):supplementWord | |
Fuzzy | / | NO | NO | 转向标:turnIconStr 模糊诱导文案:fuzzyText | |
/ | / | NO | YES | 转向标:turnIconStr 文案:loadingText | |
/ | / | YES | NO | 文案: carFreeText |
(2)BNGuideViewExitMainModel
UI样式 | 面板状态 state | 道路类型 roadType | 字段说明 |
---|---|---|---|
/ | / | 转向标:turnIconStr 距离:remainDistNumStr 距离单位:remainDistUnitStr 衔接词(出往):cohesiveWord 出口标签(出口770):exitInfo 路名(梧州市区 G207):supplementWord |
放大图数据更新回调如下:
- (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:随后转向的图片名称 |
车道线更新的回调如下:
- (void)onHandleNaviLaneInfoChanged:(BNaviLaneInfo *)param withLanesIcons:(NSArray<BNaviLanesIconModel*> *)array;
其中BNaviLaneInfo和BNaviLanesIconModel包含以下字段:
typedef enum _BNaviMessage_Action_Enum{BNaviMessage_Action_Invalid, // 无效值 - InvalidBNaviMessage_Action_Show, // 显示 - Show actionBNaviMessage_Action_Update, // 更新 - Update actionBNaviMessage_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 类型。用来做占位图用。 |
全程剩余时间、距离更新回调如下:
/*** 剩余信息 + 到达* - 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 |
剩余红绿灯数回调如下:
-(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 |
上一篇
下一篇
本篇文章对您是否有帮助?