鉴于百度地图的基本功能,不难看着文档就能搞定,在这里我就不多写了。主要写一下用百度地图的导航功能。
1、首先认识百度地图的导航功能的SDK:百度iOS导航SDK由四部分组成:baiduNaviSDK.bundle资源包,libbaiduNaviSDK.a静态库,头文件,BaiduStatistics。baiduNaviSDK.bundle资源包由导航所需的配置数据、基础数据,以及导航功能所需的图片资源组成。libbaiduNaviSDK.a静态库,提供导航功能、线径规划、巡航等功能。头文件是libbaiduNaviSDK.a静态库提供给第三方开发者的接口。BaiduStatistics是百度mtj统计库。
2、然后主要就是添加几个常用的frame.work:把baiduNaviSDK文件夹添加到工程中,把AudioToolbox.framework、ImageIO.framework、CoreMotion.framework、CoreLocation.framework、CoreTelephony.framework、MediaPlayer.framework、AVFoundation.framework、SystemConfiguration.framework、libstdc++6.0.9.dylib、Security.framework、JavaScriptCore.framework。这几个framework添加到工程中,添加方法为在Xcode中单击工程文件,选择Build Phrases选项,点击Link Binary with Libraries下的“+”逐个添加。
3、在Build Settings中, “Other Linker Flags”添加“-ObjC” 标识
4、 配置.plist文件 设置 “required background modes” , “Supported interface orientations” , “NSLocationAlwaysUsageDescription”
5.
在AppDelegate.m添加如下头文件
#import "BNCoreServices.h"
在函数 “application:didFinishLaunchingWithOptions:” 中启动SDK引擎,如下图所示。其中 KEY值可以在LBS开放平台申请。|- ( BOOL )application:( UIApplication *)application didFinishLaunchingWithOptions:( NSDictionary *)launchOptions {
[ BNCoreServices_Instance initServices : @"你的K值" ];
[ BNCoreServices_Instance startServicesAsyn : nil fail : nil ];
return YES ;
}
6、然后在你需要是现实的.M文件写
#import "BNCoreServices.h" // 引入地图导航头文件
< BNNaviRoutePlanDelegate , BNNaviUIManagerDelegate >//这两个别忘了写 ,要不然会有警告
#pragma mark - BNNaviRoutePlanDelegate 发起导航
- ( void )startNavi
{
// 节点数组
NSMutableArray *nodesArray = [[ NSMutableArray alloc ] initWithCapacity : 2 ];
// 起点
BNRoutePlanNode *startNode = [[ BNRoutePlanNode alloc ] init ];
startNode. pos = [[ BNPosition alloc ] init ];
NSString *longitudeStr =[ NetWorkTool getData : @"longitude" ];
NSString *latitudeStr =[ NetWorkTool getData : @"latitude" ];
startNode. pos . x = 起点经度 ;
startNode. pos . y = 起点维度 ;
startNode. pos . eType = BNCoordinate_BaiduMapSDK ;
[nodesArray addObject :startNode];
// 终点
BNRoutePlanNode *endNode = [[ BNRoutePlanNode alloc ] init ];
endNode. pos = [[ BNPosition alloc ] init ];
endNode. pos . x = 终点经度 ;
endNode. pos . y = 经度纬度 ;
// [NetWorkTool setdateData:listModle.latitude Key:@"latitudeStr"];
// [NetWorkTool setdateData:listModle.longitude Key:@"longitudeStr"];
endNode. pos . eType = BNCoordinate_BaiduMapSDK ;
[nodesArray addObject :endNode];
// 发起路径规划
[ BNCoreServices_RoutePlan startNaviRoutePlan : BNRoutePlanMode_NoHighway naviNodes :nodesArray time : nil delegete : self userInfo : nil ];
}
//BNNvariUIManagerDelegate
#pragma mark
#pragma mark - BNNaviUIManagerDelegate 算路成功回调
-( void )routePlanDidFinished:( NSDictionary *)userInfo
{
NSLog ( @" 算路成功 " );
//
// 路径规划成功,开始导航 BN_NaviTypeSimulator 默认模拟导航, BN_NaviTypeReal 真机导航
[ BNCoreServices_UI showNaviUI : BN_NaviTypeReal delegete : self isNeedLandscape : YES ];
}