浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。

iOS 导航SDK

百度iOS 导航SDK为AiOS移动端应用提供了一套简单易用的导航服务接口,适用于iOS 2.1及以上版本。专注于为广大开发者提供最好的导航服务,通过使用百度导航SDK,开发者可以轻松为应用程序实现专业、高效、精准的导航功能。

简述

通过设置起点和终点,可以发起路径规划,支持多个途径点和多种算路方式。详细的算路方式可以参考BNRoutePlanMode枚举类型。

坐标说明

百度iOS导航SDK接口的输入坐标支持GCJ02、WGS84、bd09ll,使用时请根据需要设置好相应参数即可,无需坐标转换。 相应的坐标系说明请参考坐标转换

发起算路

通过设置起点和终点,可以发起算路,另外你可以选择加入途径点,或者更换算路方式。

NSMutableArray *nodesArray = [[NSMutableArray alloc] initWithCapacity: 2];

//起点 
BNRoutePlanNode *startNode = [[BNRoutePlanNode alloc] init];
startNode.pos = [[BNPosition alloc] init];
startNode.pos.x = 113.936392;
startNode.pos.y = 22.547058;
startNode.pos.eType = BNCoordinate_BaiduMapSDK;
[nodesArray addObject:startNode];

 //终点
BNRoutePlanNode *endNode = [[BNRoutePlanNode alloc] init];
endNode.pos = [[BNPosition alloc] init];
endNode.pos.x = 114.077075;
endNode.pos.y = 22.543634;
endNode.pos.eType = BNCoordinate_BaiduMapSDK;
[nodesArray addObject:endNode];

// 发起算路
[BNCoreServices_RoutePlan  startNaviRoutePlan: BNRoutePlanMode_Recommend naviNodes:nodesArray time:nil delegete:self    userInfo:nil];   

规划后的路线效果如图:

plan1.png

算路回调

算路是一个异步操作,可以通过以下几个委托函数回调算路结果

//算路成功回调
-(void)routePlanDidFinished:(NSDictionary *)userInfo
{
    NSLog(@"算路成功");
    
    //路径规划成功,开始导航
    [BNCoreServices_UI showPage:BNaviUI_NormalNavi delegate:self extParams:nil];
}

//算路失败回调
- (void)routePlanDidFailedWithError:(NSError *)error andUserInfo:(NSDictionary *)userInfo
{
    NSLog(@"算路失败");
    switch ([error code]%10000)
    {
        case BNAVI_ROUTEPLAN_ERROR_LOCATIONFAILED:
            NSLog(@"暂时无法获取您的位置,请稍后重试");
            break;
        case BNAVI_ROUTEPLAN_ERROR_ROUTEPLANFAILED:
            NSLog(@"无法发起导航");
            break;
        case BNAVI_ROUTEPLAN_ERROR_LOCATIONSERVICECLOSED:
            NSLog(@"定位服务未开启,请到系统设置中打开定位服务。");
            break;
        case BNAVI_ROUTEPLAN_ERROR_NODESTOONEAR:
            NSLog(@"起终点距离起终点太近");
            break;
        default:
            NSLog(@"算路失败");
            break;
    } }

//算路取消
-(void)routePlanDidUserCanceled:(NSDictionary*)userInfo {
    NSLog(@"算路取消");
}

以上几个回调函数中参数userInfo为开发者发起算路时传递的userInfo参数。