全部服务产品
开发者频道
定价
登录
导航地图多实例
下载开发文档
鉴权

使用多实例导航地图的能力需要进行鉴权,鉴权接口如下:

NaviAK:使用导航鉴权AK,从地图开放平台上获取,必传参数。

deviceID: 车机设备ID,必传参数。

[BNaviService_Instance authorizeLicenseNaviAK:XXX deviceID:XXX completion:^(BOOL requestSuc, BOOL hasPermission) {
}];
导航地图多实例

1. 创建导航地图多实例

通过如下方法创建导航多实例地图。

/**
创建多实例
- Parameters:
- tag: 多实例标记. 不同MapView 需要使用不一样的tag
- frame: 创建的MapView的frame
*/
- (BNKMapView *)createNaviMapViewWithTag:(NSString *)tag withFrame:(CGRect)frame;
2. 接口和回调

(1)设置地图状态

支持设置地图为2d、3d和全览状态

/// 全览
/// - Parameter viewAll: 是否全缆
- (void)setViewAllMode:(BOOL)viewAll;
///设置地图为3d模式
- (void)set3DMode;
/// 设置地图为2d模式
- (void)set2DMode;

可以通过下面两个回调,设置2D、3D模式下车标的具体位置:

/// 配置地图2D模式车标的偏移量
/// 坐标原点为0,0。
/// x表示横坐标的偏移量,负数往左边移动,正数往右边移动
/// y表示纵坐标的偏移量,负数往下边移动,正数往上边移动
- (CGPoint)carOffsetFor2DMode;
/// 配置地图3D模式车标的偏移量
/// 坐标原点为0,0。
/// x表示横坐标的偏移量,负数往左边移动,正数往右边移动
/// y表示纵坐标的偏移量,负数往下边移动,正数往上边移动
- (CGPoint)carOffsetFor3DMode;

2D、3D、全览的效果如下:

  • 示例

    2D

  • 示例

    3D

  • 示例

    全览

(2)设置路线全览展示区域

接口如下

/// 添加自定义UI碰撞,添加后,路线全览时会路线的展示区域不显示在frame的范围内
/// - Parameter frame: 自定义碰撞的frame
- (void)addUIViewBound:(CGRect)frame;
/**
设置路线全览展示区域
- Parameter insets: 路线全览展示区域距离MapView四周的边距
*/
- (void)setRouteShowRect:(UIEdgeInsets)insets;

(3)自定义地图元素

具体接口如下:

/// 显示路况
/// - Parameter show: 为YES,展示路况,为NO,隐藏路况
- (void)showRoadCondition:(BOOL)show;
/// 隐藏路线动态标签,默认全部展示
/// - Parameter types: 隐藏的标签类型数组,数组元素为BNMapCarElementType类型,封装为NSNumber对象
/// 注意:这个接口不会记住之前传入的隐藏标签类型。
/// 比如第一次隐藏 以下标签:@[@(BNMapCarElementType_Camera), @(BNMapCarElementType_EnterRoad), @(BNMapCarElementType_Jam)];
/// 后续又需要显示@(BNMapCarElementType_Camera) , 则需要再次传入@[ @(BNMapCarElementType_EnterRoad), @(BNMapCarElementType_Jam)];
- (void)hideMapCarElement:(NSArray <NSNumber *> *)types;
/// 清除自定义icon
/// - Parameter type: 自定义icon类型
-(void)clearDIYIcon:(BNMIDIYImageType)type;
/// 设置自定义icon
/// img: 车标图片
/// imageType:车标类型
- (void)setDIYIcon:(UIImage *)img type:(BNMIDIYImageType)imageType;
/// 设置自定义icon 显示 隐藏
/// isShow: yes 是显示 NO隐藏
/// imageType:车标类型
- (void)setDIYImageShow:(BOOL)isShow type:(BNMIDIYImageType)imageType;
/// 设置途径点icon
/// images: 数组中存放的是UIimage
/// indexes:途径点下标
- (void)setWayPointCustomImages:(NSArray<UIImage *> *)images indexes:(NSArray *)indexes;

(4)车道级开关

/// 是否支持车道级,app需要具备车道级权限调用才生效。
/// supportLane: YES 开启车道级。 NO 不开启车道级。 如果有车道级权限,默认开启
/// 开启车道级后,当进入车道级路段后会自动设置当前多实例为3D模式。
- (void)setSupportLane:(BOOL)supportLane;

效果图:

车道级车道级

(5)设置白天黑夜样式

/**白天黑夜模式 YES 代表黑夜。NO代表白天 。 默认白天模式*/
- (void)setNight:(BOOL)isNight;

效果图:

车道级车道级
后台导航地图

手机进入后台导航,由于iOS系统的限制,手机的地图实例无法继续渲染(通过2.1创建的地图实例在后台不会渲染)。如果手机在后台导航时,需要在投屏设备上展示导航地图,需要使用后台导航地图。

该能力的接口在BNBackgroundNavigationViewManagerProtocol.h中。

提供的接口如下:

///获取后台导航地图实例
- (BMKBackgroundNavigationView *)backgroundNavigationView;
///后台导航地图开始渲染
- (void)start;
///后台导航地图停止渲染
- (void)stop;

上一篇

导航实时数据获取

下一篇

无UI导航

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