【iOS】高德lib库添加说明

【问题描述】

因客户需求,iOS项目原有的谷歌地图替换成高德地图,以下是添加高德地图lib库步骤(由于版本差异,官方文档仅供参考),供自己后续查阅以及分享,环境为:OS X ML,Xcode4.4.1, iOS SDK5.1,AMap_iOS_Api_Lib_v1.4。

【问题分析】

1、下载官网文件

官网网址:http://api.amap.com/Ios/

2、lipo lib库文件

    官网lib库文件的真机和模拟器版本libMAMapKit.a分别存放在Release-iphoneos和Debug-iphonesimulator目录下,通过lipo命令合成一个lib文件,如下:

    lipo -create Debug-iphonesimulator/libMAMapKit.a Release-iphoneos/libMAMapKit.a -output libMAMapKit.a

3、创建工程Demo

    创建基于单视图的工程,确保编译通过(假定单视图文件名为xxViewController.m)。

4、添加lib库文件

    1)添加lib库文件夹

        把高德的lib相关文件(包括头文件,资源文件等)复制到项目中,如下目录路径(如果没有手动创建):

        

    2)把Extern目录添加到项目中(选择:Create groups for any added folders即可)

    3)把xxViewController.m改成xxViewController.mm,因为lib库中用到了C++语言,否则编译不通过。

    4)在Build Settings的Header Search Paths中添加头文件搜索路径(否则无法找到MAMapKit.h等头文件)AMap_iOS_Api_Lib_v1.4,注意选中勾上,如下截图: 

        

    5)在Build Settings的Other Linker Flags中添加-all_load和-OjbC属性,目的是要让lib库支持OC语言,否则会编译不通过,如下截图:

        

    6)在Build Phases的Link Binary With Libraries中添加所需的framework(包括”CoreLocation.framework”,”CoreText.framework”,”QuartzCore.framework”, ”SystemConfiguration.framework”,”libz.dylib”和“libxml.2.2”)和高德的lib库文件libMAMapKit.a到requred的lib列表中,如下截图:

        

    7)最终的工作区目录如下截图,如果不是,手动托下即可,确保与截图保持一致:

        

5、添加官网示例代码(直接引用官网说明)

    引入高德地图iOS API 的头文件和lib 开发库之后,添加相关代码来初始化地图,步骤如下所示:

    1. 在MapSDK_Demo 项目的xxViewController.h 中引入高德地图iOS API ,并声明MAMapView 对象,示例代码如下所示:

  1. #import <UIKit/UIKit.h>  
  2. #import "MAMapKit.h"  
  3. @interface ViewController : UIViewController <MAMapViewDelegate>  
  4. {  
  5.     MAMapView *myMapView;  
  6. }  
  7. @end  


    2. 在xxViewController.mm 的viewDidLoad 方法中初始化地图,代码如下所示:

    1. - (void)viewDidLoad  
    2. {  
    3.     [super viewDidLoad];  
    4.     // Do any additional setup after loading the view, typically from a nib.  
    5.     myMapView = [[MAMapView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];  
    6.     myMapView.mapType = MAMapTypeStandard;  
    7.     myMapView.delegate = self;  
    8.       
    9.     CLLocationCoordinate2D center = {39.91669,116.39716};  
    10.     MACoordinateSpan span = {0.04,0.03};  
    11.     MACoordinateRegion region = {center,span};  
    12.     [myMapView setRegion:region animated:NO];  
    13.     [self.view addSubview:myMapView];  
    14. }  

6、效果截图

    

posted on 2012-11-08 09:58  trako  阅读(556)  评论(0编辑  收藏  举报

导航