首先,对于百度地图SDK的配置和环境搭建就不做说明,需要的人可以博客中另一篇文章看 《iOS百度地图SDK基本使用》 ,本文的重点在于实现实时绘制轨迹的功能,并且对细节进行处理和优化
1、在AppDelegate.m文件中
#import "AppDelegate.h"
// BMapKit.h代表导入了所有的头文件
#import <BaiduMapAPI/BMapKit.h>
@interface AppDelegate ()<BMKGeneralDelegate>
{
BMKMapManager *mapManager;
}
@end
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 要使用地图,首先需要初始化和启动BMKMapManager
mapManager = [[BMKMapManager alloc]init];
// 填入验证码, 如需要使用网络和授权验证服务,则需要设置代理信息
BOOL ret = [mapManager start:@"在这里填入的是密钥中的安全码" generalDelegate:nil];
if (!ret) {
NSLog(@"地图管理器初始化失败");
}
else{
NSLog(@"初始化成功");
}
return YES;
}
2、在ViewController.m文件中
#import "ViewController.h"
#import <BaiduMapAPI/BMapKit.h>
#define normalLocationTag 1
#define compassLocationTag 2
@interface ViewController () <BMKLocationServiceDelegate , BMKMapViewDelegate>
{
BMKMapView *mapView;
BMKLocationService *locationService;
// 用于手动验证
CLLocationManager *locationManager;
// 用于记录经过的点
NSMutableArray *locationPoint;
// 在地图上绘制的折线
BMKPolyline *routeLine;
// 中间变量->location类型(地理位置)
CLLocation *currentLocation;
}
@end
在viewDidLoad中将两个初始化体现出来
- (void)viewDidLoad {
[super viewDidLoad];
// 1、所有的初始化操作
[self initObjects];
// 2、所有的地图初始操作
[self operationForMap];
}
初始化操作的封装后的方法
- (void)initObjects
{
// 初始化mapView
mapView &