本篇主要講述百度地圖的導航功能: 第一步:在使用百度導航之前,我們需要在百度地圖開放平臺上下載導航的 SDK,共85.8M,網速不好的同學可提前準備好。 第二步:引入導航所需的系統包 將AudioToolbox.framework、ImageIO.framework、CoreMotion.frame
本篇主要講述百度地圖的導航功能:
第一步:在使用百度導航之前,我們需要在百度地圖開放平臺上下載導航的 SDK,共85.8M,網速不好的同學可提前準備好。
第二步:引入導航所需的系統包
將AudioToolbox.framework、ImageIO.framework、CoreMotion.framework、CoreLocation.framework、CoreTelephony.framework、MediaPlayer.framework、AVFoundation.framework、SystemConfiguration.framework、libstdc++6.0.9.dylib這幾個framework添加到工程中。
第三步:將TouchJSON庫設置為非ARC編譯選項,也就是在 Compile Sources 中設置編譯方式為:-fno-objc-arc
第四步:勾選媒體後定位後臺模式
第五步:添加頭文件,發起導航
#import "BNCoreServices.h"// 引入地圖導航頭文件 #pragma mark - BNNaviRoutePlanDelegate 發起導航 - (void)startNavi { //節點數組 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]; } #pragma mark #pragma mark - BNNaviUIManagerDelegate 算路成功回調 -(void)routePlanDidFinished:(NSDictionary *)userInfo { NSLog(@"算路成功"); //路徑規劃成功,開始導航 BN_NaviTypeSimulator 預設模擬導航,BN_NaviTypeReal 真機導航 [BNCoreServices_UI showNaviUI: BN_NaviTypeSimulator delegete:self isNeedLandscape:YES]; }