IOS百度地图之--->第一篇《环境配置与基本使用》_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > IOS百度地图之--->第一篇《环境配置与基本使用》

IOS百度地图之--->第一篇《环境配置与基本使用》

 2015/2/3 18:24:00  苦海中的渡轮  程序员俱乐部  我要评论(0)
  • 摘要:Ios百度地图SDK简易使用说明:http://developer.baidu.com/map/index.php?title=iossdk先道歉:对于原来上传的Demo我很抱歉,什么都没有,也没有文档,这次我会逐步增加SDK中相关功能使用(基于百度Simple),如果我写不好请大家多多包含;第一步:合成静态文件lipo-createRelease-iphoneos/libbaidumapapi.aRelease-iphonesimulator/libbaidumapapi.a
  • 标签:使用 iOS 配置 百度

Ios 百度地图SDK简易使用说明http://developer.baidu.com/map/index.php?title=iossdk?

先道歉:对于原来上传的Demo我很抱歉,什么都没有,也没有文档,这次我会逐步增加SDK中相关功能使用(基于百度Simple),如果我写不好请大家多多包含;

第一步:合成静态文件

lipo -create Release-iphoneos/libbaidumapapi.a Release-iphonesimulator/libbaidumapapi.a -output libbaidumapapi.a

注:目录可能不一致

第二步:环境配置

1、在Xcode的Project -> Edit Active Target -> Build -> Linking -> Other Linker Flags中添加-ObjC

2、引入frameWork引入CoreLocation.framework和QuartzCore.framework、OpenGLES.framework、SystemConfiguration.framework、CoreGraphics.framework、Security.framework。

3、修改一个.m 文件后缀为.mm;此时测试一下看工程是否正常

4、增加pch(可有可无)

5、自iOS SDK v2.5.0起,为了对iOS8的定位能力做兼容,做了相应的修改,开发者在使用过程中注意事项如下:?需要在info.plist里添加(以下二选一,两个都添加默认使用NSLocationWhenInUseUsageDescription):NSLocationWhenInUseUsageDescription ,允许在前台使用时获取GPS的描述NSLocationAlwaysUsageDescription ,允许永久使用GPS的描述。

6、在使用Xcode6进行SDK开发过程中,需要在info.plist中添加:Bundle?display?name?,且其值不能为空(Xcode6新建的项目没有此配置,若没有会造成manager?start?failed);

7、BMKMapView新增viewWillAppear、viewWillDisappear方法来控制BMKMapView的生命周期,并且在一个时刻只能有一个BMKMapView接受回调消息,因此在使用BMKMapView

viewController中需要在viewWillAppear、viewWillDisappear方法中调用BMKMapView的对应的方法,并处理delegate,代码如下:

-(void)viewWillAppear:(BOOL)animated

{

? ? [_mapViewviewWillAppear];

? ? _mapView.delegate = self;// 此处记得不用的时候需要置nil,否则影响内存的释放

? ? //启动LocationService

? ? [_locationServicestartUserLocationService];

}

-(void)viewWillDisappear:(BOOL)animated

{

? ? [_mapViewviewWillDisappear];

? ? _mapView.delegate = nil; // 不用时,置nil

}

第三步:基本使用加载

1、引用#import "BMapKit.h" ,在AppDelegate.h中声明

@interface AppDelegate : UIResponder <UIApplicationDelegate>

?

@property (strong, nonatomic) UIWindow *window;

@property (strong, nonatomic) BMKMapManager *mapManager;

?

@end

2、在AppDelegate.m中

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

? ? // Override point for customization after application launch.

? ? _mapManager = [[BMKMapManageralloc] init];

//? ? BaiduMapKey? 你申请的百度地图AK宏定义

? ? if (![_mapManagerstart:BaiduMapKeygeneralDelegate:self])

? ? {

? ? ? ? KHLog(@"启动失败");//KHLog 相当于NSLog

? ? }

? ? returnYES;

}

-(void)onGetNetworkState:(int)iError

{

? ? if (iError == 0)

? ? {

? ? ? ? KHLog(@"网络状态正常");

? ? }

? ? else

? ? {

? ? ? ? KHLog(@"网络错误:%d",iError);

? ? }

}

-(void)onGetPermissionState:(int)iError

{

? ? if (iError == 0)

? ? {

? ? ? ? KHLog(@"授权正常");

? ? }

? ? else

? ? {

? ? ? ? KHLog(@"授权错误:%d",iError);

? ? }

}

- (void)applicationWillResignActive:(UIApplication *)application {

? ? [BMKMapView?willBackGround];//当应用即将后台时调用,停止一切调用opengl相关的操作

}

- (void)applicationDidBecomeActive:(UIApplication *)application {

? ? [BMKMapView?didForeGround];//当应用恢复前台状态时调用,回复地图的渲染和opengl相关的操作

}

class="p1">3、在要加载mapview的controller中增加代理?BMKMapViewDelegate

声明?BMKMapView *_mapView;

注:#define __SCREEN_SIZE [[UIScreen mainScreen] bounds].size

- (void)viewDidLoad {

? ? [superviewDidLoad];

? ? // Do any additional setup after loading the view, typically from a nib.

? ? _mapView = [[BMKMapView alloc] initWithFrame:CGRectMake(0, 0, __SCREEN_SIZE.width, __SCREEN_SIZE.height)];

? ? [self.view addSubview:_mapView];

? ? [_mapViewsetMapType:BMKMapTypeStandard];//地图样式

//? ? [_mapView setTrafficEnabled:YES];//打开实时路况图层

//? ? [_mapView setBaiduHeatMapEnabled:YES];//打开百度城市热力图图层(百度自有数据)

}

?-(void)viewWillAppear:(BOOL)animated

{

? ? [_mapViewviewWillAppear];

?? ??_mapView.delegate = self;// 此处记得不用的时候需要置nil,否则影响内存的释放

?}

?-(void)viewWillDisappear:(BOOL)animated

?{

? ? ??[_mapViewviewWillDisappear];?

? ? _mapView.delegate = nil; // 不用时,置nil?

}

?- (void)mapViewDidFinishLoading:(BMKMapView *)mapView

?{

? ? KHLog(@"地图加载完毕加载完毕);//这里的代理方法我就不一一展示了,具体使用情况请自己调整

?}


发表评论
用户名: 匿名