又是好久没有写博客了,今天不知怎么想起来就总结一下这两天对百度地图定位的使用,稍微做个总结。
第一步:登陆http://lbsyun.baidu.com/apiconsole/key注册应用,获取ak,也就是百度地图对你的应用的授权key。
注册页面如下:
记下获得的key和注册的bundle Identifier;
第二步:进入http://developer.baidu.com/map/index.php?title=iossdk/sdkiosdev-download下载最新的SDK,并获得通用的静态库文件。使用命令行 lipo -create /所在路径/Release-iphoneos/libbaidumapapi.a /所在路径/Release-iphonesimulator/libbaidumapapi.a -output /Users/你电脑的用户名/Desktop/libbaidumapapi.a
导入支持的库文件:
SystemConfiguration.framework
CoreLocation.framework
QuartzCore.framework
OpenGLES.framework
MessageUI.framework
Security.framework
libbaidumapapi.a
第三步:创建地图打开定位
由于iOS8以后,定位授权机制的改变,需要在应用中获得用户授权,所以在打开定位前需要获得用户授权;
首先,在appdelegate中这样设置如下,获得百度的授权
BMKMapManager* _mapManager;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
_mapManager = [[BMKMapManager alloc]init];
BOOL ret = [_mapManager start:@"你注册应用时返回的key" generalDelegate:self];
if (ret) {
// mapManager 创建成功
NSLog(@"manager start sucess!");
}else{
// mapManager 创建失败
NSLog(@"manager start failed!");
}
return YES;
}
在info.plist中增加两项如下:
尽管百度文档上说添加任意一项即可,我试过添加一项有时不显示授权页面,所以还是都添加吧
在定位之前插入如下代码
if ([[UIDevice currentDevice].systemVersion floatValue]>= 8.0) {
self.locationManager = [[CLLocationManager alloc]init];
[self.locationManager requestAlwaysAuthorization];
[self.locationManager requestWhenInUseAuthorization];
}
这样就完成了对自己的定位。后续功能待续……
原文地址:http://blog.csdn.net/always_on_the_way/article/details/41013999