zoukankan      html  css  js  c++  java
  • 【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、效果截图

        

  • 相关阅读:
    Java中Calendar.DAY_OF_WEEK需要减一的原因
    类变量方法,局部变量和成员变量的区别(this关键字的使用)
    简述位移运算符(二进制转换示例)
    Java循环结构之while和do-while循环
    在MyEclipse中使用javadoc导出API文档详解
    js控制input type=checkbox 的勾选
    DWZ框架一些技巧
    三层规则嵌套逻辑勾选
    关于DWZ模板中全选的使用
    关于针对不同需求。又不需要改之前代码的一个列子
  • 原文地址:https://www.cnblogs.com/ftrako/p/2759897.html
Copyright © 2011-2022 走看看