1.创建一个应用。
2.创建百度地图API应用http://lbsyun.baidu.com/apiconsole/key得到访问应用的AK,
应该要注意创建的时候安全码要与应用的Bundle Identifier相同,如果不同显示出来的地图只有方格。
3.下载官方的 http://developer.baidu.com/map/sdkiosdev-download.htm的iossdk静态库其中包含inc(头文件)和libs(静态库)和mapapi.bundle(图标等图片)三个文件拖入工程,选中Copy items into destination...选项。
4.Bulid Settings中搜索other linker找到other linker Flags点击添加-all_load/官方文档说要添加-ObjC,按照官方的吧。
5.搜索Library Search Paths删除所有之后添加$(SRCROOT)/libs/Release$(EFFECTIVE_PLATFORM_NAME),
要将其他选项都删除,不然会莫名的出现错误,上面的一串字母前面是工程所在的目录的宏定义,后面是模拟器和真机调试自动调用的宏定义。
6.静态库中采用ObjectC++实现,因此需要您保证您工程中至少有一个.mm后缀的源文件所以将appdelegate.m文件双击之后变为.mm文件。
7.添加CoreLocation.framework和QuartzCore.framework、OpenGLES.framework、SystemConfiguration.framework、CoreGraphics.framework、Security.framework。
8.在Prefix.pch文件中导入BMapKit.h头文件,这样所有的文件都可以调用静态库中的方法。
9.在AppDelegate.mm文件中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
_mapManager = [[BMKMapManager alloc]init];
// 如果要关注网络及授权验证事件,请设定 generalDelegate参数
BOOL ret = [_mapManager start:@"申请的KEY" generalDelegate:nil];//添加KEY
if (!ret) {
NSLog(@"manager start failed!");
}
self.window.rootViewController = [[RootViewController alloc]init];
return YES;
}
需要使用的页面
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.mapView = [[BMKMapView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
[self.view addSubview:self.mapView];
self.mapView.rotation = 90;//旋转90读
self.mapView.overlooking = -30;//30度俯瞰
[self.mapView setMapType:BMKMapTypeTrafficOn];//设置地图类型为实时路况
}
-(void)viewWillAppear:(BOOL)animated
{
[self.mapView viewWillAppear];
self.mapView.delegate = self; // 此处记得不用的时候需要置nil,否则影响内存的释放
}
-(void)viewWillDisappear:(BOOL)animated
{
[self.mapView viewWillDisappear];
self.mapView.delegate = nil; // 不用时,置nil
}