首页 > 代码库 > xcode5 百度地图api 环境搭建

xcode5 百度地图api 环境搭建

非原创在http://www.2cto.com/kf/201305/213314.html的基础上稍做修改。

1、官网下载最新的SDK开发包_iOS静态库文件 http://developer.baidu.com/map/sdkiosdev-download.htm

解压后如下:

其中inc是头文件

mapapi.bundle是图片库

Release-iphoneos真机调试所需用到的.a文件

Release-iphonesimulator虚拟机调试所需用到的.a文件

readme是一些版本介绍

1.2到http://lbsyun.baidu.com/apiconsole/key去申请一个key

 

2.环境设置

2.1、打开xcode的新建一个singleView模板的demo,然后将readme.txt除外的所有文件拖到项目的工程文件中,注意需要copy+destination截图如下

为了方便管理我们最好为他们建立一个Grop 单独存放

2.2然后继续下一步TARGETS->**** ->Build Settings ->Linking ->Other linker Flags中添加-all_load

2.3现在需要设置一下链接库的环境变量,好让项目能顺利找到目录下的.a文件,选中TARGETS->**** ->Build Settings ->Search ->library Search Paths

删除已有的三个,添加一个足矣(模拟器+真机):$(SRCROOT)/libs/Release$(EFFECTIVE_PLATFORM_NAME)

3.引入系统framework

百度地图SDK中提供了定位功能和动画效果,v==0.0版本开始使用OpenGL渲染,因此您需要在您的Xcode工程中引入CoreLocation.framework和QuartzCore.framework、OpenGLES.framework、SystemConfiguration.framework、CoreGraphics.framework、Security.framework。

4.代码部分

4.1AppDelegate.h

首先导入百度地图的头文件BMapKit.h

  #import <UIKit/UIKit.h>

  #import "BMapKit.h"//导入BMapKit.h

  @interface zhAppDelegate : UIResponder <UIApplicationDelegate>

  @property (strong, nonatomic) UIWindow *window;

  @property (strong, nonatomic)BMKMapManager* _mapManager;//实例化 

  @end

4.2AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions添加如下代码

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

  {

      // Override point for customization after application launch.

    // 要使用百度地图,请先启动BaiduMapManager 

      _mapManager = [[BMKMapManager alloc] init];

    // 如果要关注网络及授权验证事件,请设定generalDelegate参数 

      BOOL ret = [_mapManager start:@"qnRl9RHNScry2hlAfp15ieOP" generalDelegate:nil];

     if (!ret) {

          NSLog(@"载入地图出差");

      }

      return YES;

  }

在AppDelegate中授权过后,可以随意在任意的Viewcontroller中使用Mapview了。当然,BMKMapManager授权也可以写到任意的ViewController中,但是这样的话,只能在这个ViewController中使用MapView,换其它类使用地图的话,还需再来授权,否则地图view会是黑屏.

4.3在需要显示地图的viewcontroller.m中加入如下代码:

#import "zhViewController.h"

#import "BMapKit.h"//导入BMKMapView.h

@implementation zhViewController

- (void)viewDidLoad

{

    [super viewDidLoad];

    BMKMapView *mapView = [[BMKMapView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];//实例化BMKMapView类。

    self.view = mapView;

}

@end

(注:静态库中采用ObjectC++实现,因此需要您保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm))