俗话说,好记性不如烂笔头,关于集成地图 (这里以百度地图为例) 这一块,本人目前在一家代驾公司做了一年了,对这一块比较熟悉,现在总结一下常用方法,希望能帮到有需要的小伙伴。
1.集成地图环境
先去百度官方下载SDK,然后导入对应的文件到你的项目中,在这里杂乱的不说,提几个地方:mapapi.bundle别忘了导入; 除了导入百度提供的包,还要手动在程序中添加系统库; info.plist文件中几个操作:iOS9后http协议的设置;获取地理位置的设置;display name的设置; 最后一点,去百度申请的key要对应你项目中的buddle id 。xcode7.3中自动提示有时候挺让人无语的,不出来我们的结果,导入头文件的时候他提示的都不对,现在把所以头文件写在下面,根据需要复制粘贴即可。
1 2 3 4 5 6 7 8 |
#import //引入base相关所有的头文件 #import //引入地图功能所有的头文件 #import //引入检索功能所有的头文件 #import //引入云检索功能所有的头文件 #import //引入定位功能所有的头文件 #import //引入计算工具所有的头文件 #import //引入周边雷达功能所有的头文件 #import //只引入所需的单个头文件 |
好了,第一步结束。
2.基本地图的实现
在appdelegate中导入框架,并服从BMKGeneralDelegate代理,在didFinishLaunchingWithOptions方法中实现如下代码
1 2 3 4 5 6 |
_mapManager = [[BMKMapManager alloc] init]; BOOL ret = [_mapManager start:@"你的key"generalDelegate:self]; if (!ret) { NSLog(@"manager start failed!"); } return YES; |
在viewcontroller中,遵循BMKMapViewDelegate代理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
//遵循代理写在viewwillappear中 - (void)viewWillAppear:(BOOL)animated { [_mapView viewWillAppear]; _mapView.delegate = self; _locService.delegate = self; _geoCodeSearch.delegate = self; } - (void)viewWillDisappear:(BOOL)animated { [_mapView viewWillDisappear]; _mapView.delegate = nil; _locService.delegate = nil; _geoCodeSearch.delegate = nil; } |
在viewdidload中,
1 2 |
_mapView = [[BMKMapView alloc] initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, self.view.frame.size.height - 100)]; [self.view addSubview:_mapView]; |
然后地图出来,到这一步算是刚开始
3.地图的定位
1 2 3 4 5 |
UIButton *positionBtn = [UIButton buttonWithType:UIButtonTypeSystem]; positionBtn.frame = CGRectMake(30, 64, 70, 20); [positionBtn setTitle:@"定位" forState:UIControlStateNormal]; [positionBtn addTarget:self action:@selector(position:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:positionBtn]; |
遵循BMKLocationServiceDelegate代理,定义BMKLocationService类
在position点击方法中
1 2 3 4 5 6 |
_locService.delegate = self; _mapView.zoomLevel = 14.1; //地图等级,数字越大越清晰百度官方下载SDK,然后导入对应的文件到你的项目中,在这里杂乱的不说,提几个地方:mapapi.bundle别忘了导入; 除了导入百度提供的包,还要手动在程序中添加系统库; info.plist文件中几个操作:iOS9后http协议的设置;获取地理位置的设置;display name的设置; 最后一点,去百度申请的key要对应你项目中的buddle id 。xcode7.3中自动提示有时候挺让人无语的,不出来我们的结果,导入头文件的时候他提示的都不对,现在把所以头文件写在下面,根据需要复制粘贴即可。
好了,第一步结束。 2.基本地图的实现
在viewcontroller中,遵循BMKMapViewDelegate代理
在viewdidload中,
然后地图出来,到这一步算是刚开始 3.地图的定位
遵循BMKLocationServiceDelegate代理,定义BMKLocationService类
|