在您的AppDelegate.m文件中添加对BMKMapManager的初始化,并填入您申请的授权Key,示例如下
-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions{
// 要使用百度地图,请先启动
BaiduMapManager_mapManager=[[BMKMapManager alloc]init];// 如果要关注网络及授权验证事件,请设定 generalDelegate参数
BOOL ret=[_mapManager start:@"在此处输入您的授权Key"generalDelegate:nil];
if(!ret){
NSLog(@"manager start failed!");
}
// Add the navigation controller's view to the window and display.
[self.windowaddSubview:navigationController.view];
[self.windowmakeKeyAndVisible];returnYES;}
上面这段话不用讲了吧,看不懂?私了。。。。😊
#import <BaiduMapAPI_Base/BMKBaseComponent.h> //引入base相关所有的头文件
#import <BaiduMapAPI_Map/BMKMapComponent.h>//引入地图功能所有的头文件
#import <BaiduMapAPI_Map/BMKMapView.h>//只引入所需的单个头文件
实现BMKMapViewDelegate
自2.0.0起,BMKMapView新增viewWillAppear、viewWillDisappear方法来控制BMKMapView的生命周期,并且在一个时刻只能有一个BMKMapView接受回调消息,因此在使用BMKMapView的viewController中需要在viewWillAppear、viewWillDisappear方法中调用BMKMapView的对应的方法,并处理delegate,代码如下:
(void)viewWillAppear:(BOOL)animated{
[_mapView viewWillAppear];
_mapView.delegate=self;// 此处记得不用的时候需要置nil,否则影响内存的释放
}
-(void)viewWillDisappear:(BOOL)animated{
[_mapView viewWillDisappear];
_mapView.delegate=nil;// 不用时,置nil
}
换句话说要让百度地图和你的控制器共存亡,这个做的很好哦
_mapView= [[BMKMapViewalloc]initWithFrame:CGRectMake(0,64,SCREEN_WIDTH,SCREEN_HEIGHT-64)];
_mapView.delegate=self;设置代理
[self.viewaddSubview:_mapView];
_mapView.mapType=BMKMapTypeStandard;(地图显示类型:0空白,1标准,2卫星)
_mapView.showsUserLocation=YES;//显示定位图层
_mapView.zoomLevel=19;//地图级别
_mapView.minZoomLevel=15;//最小级别(就是可以让用户放大缩小到什么比例)
_mapView.maxZoomLevel=20;//最大级别
//_mapView.userTrackingMode = BMKUserTrackingModeFollow;设置定位模式
_mapView.showMapScaleBar=YES;显示比例尺
注意:百度地图是没有放大缩小按钮的,自己去搞按钮然后设置zoomLevel
然后就是helloBaiDuMap,默认显示北京天安门广场