【iOS】调用百度、高德地图SDK

调用百度地图SDK

  • 先去百度地图开放平台登陆账号,如果没有注册过需要先注册一个账号。然后进入控制台,选择我的应用,进行创建应用。
    请添加图片描述
  • 其中安全码Bundle Identifier在自己的工程项目中可见
    请添加图片描述
  • 然后你可以在自己的应用中看到你的AK,后续会用到。
    请添加图片描述
  • 然后是下载百度地图SDK,利用cocopods下载第三方库比较方便
  • 在当前工程文件(.xcodeproj)所在文件夹下,打开终端
  1. 创建Podfile:
    touch Podfile
  2. 编辑Podfile内容如下:
    pod ‘BaiduMapKit’ #百度地图SDK
  3. 在Podfile所在的文件夹下输入命令:
    pod install (这个可能比较慢,请耐心等待……)
    成功以后,会出现如下记录:
    Analyzing dependencies
    Downloading dependencies
    Installing BaiduMapKit (2.9.1)
    Generating Pods project
    Integrating client project
    [!] Please close any current Xcode sessions and use ***.xcworkspace for this project from now on.

恭喜你已成功导入百度地图iOS SDK,现在就可以打开xcworkspace文件,在你的项目中使用百度地图SDK了

注意:

  • 在使用百度地图SDK时,会遇到版本问题。如果你在项目中调用定位的头文件BaiduMapAPI_Location/BMKLocationComponent.h' ,会发生报错。
    之所以BaiduMapAPI_Location库找不到的原因是:在新版本的SDK中,百度地图把定位功能划分到另外一个第三方库BMKLocationKit里面去了,新的BaiduMapKit库里面没有location项了。因此有两个解决方案:
  1. 除了集成’BaiduMapKit‘以外,还需要集成”BMKLocationKit“框架,重新修改代码,重新pod新版本定位库;
  2. 找回老版本的(同时包含地图和定位功能)的”BaiduMapKit“低版本库,不用修改代码;例如:pod 'BaiduMapKit','~>2.10.2' #百度地图SDK
  • 如果想要调出一个简单的地图视图,还需要在Info.plist加入如下你没有的东西
    请添加图片描述
  • 之后,先在头文件中导入#import <BaiduMapAPI_Map/BMKMapView.h>,在AppDelegate.m中写入如下
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    //创建并初始化一个引擎对象
    BMKMapManager *manager = [[BMKMapManager alloc] init];
    //启动地图引擎
    BOOL success =  [manager start:@"前面你所获取的AK" generalDelegate:nil];
    if (!success) {
        NSLog(@"失败");
    }
    return YES;
}
  • ViewController.h中写入百度地图库的头文件,再声明属性
@property (nonatomic,strong) BMKMapView *mapView;//地图视图
  • 然后在ViewController.m中写入如下
- (void)viewDidLoad {
    [super viewDidLoad];
    //初始化地图
    self.mapView = [[BMKMapView alloc] initWithFrame:self.view.frame];
    //添加到view上
    [self.view addSubview:self.mapView];
    NSLog(@"地图调用成功!");
}

然后地图就可以正常显示了
请添加图片描述

调用高德地图SDK

调用高德地图的SDK和前面调用百度地图SDK的流程大同小异

  • 先去高德地图开放平台登陆账号,如果没有注册过需要先注册一个账号。然后进入控制台,选择我的应用,进行创建新应用。
    请添加图片描述
  • 其中Bundle Identifier在自己的工程项目中可见
    请添加图片描述
  • 然后你可以在自己的应用中看到你的KEY,后续会用到。
  • 然后是下载百度地图SDK,利用cocopods下载第三方库比较方便
  • 在当前工程文件(.xcodeproj)所在文件夹下,打开终端
  1. 创建Podfile:
    touch Podfile
  2. 在Podfile文件中添加pod 'AMap3DMap’或pod ‘AMap2DMap’
    其中3D的是3D地图,2D的是2D地图,选择其一添加即可,若全选的话会发生冲突致使SDK安装失败;如果需要定位的话,继续pod 'AMapLocation’就可以正常使用定位的库
  3. 在Podfile所在的文件夹下输入命令:
    pod install (这个可能比较慢,请耐心等待……)
  • 如果想要调出一个简单的地图视图,还需要在Info.plist加入如下你没有的东西
    请添加图片描述
  • 之后,先在头文件中导入#import <AMapFoundationKit/AMapFoundationKit.h>,在AppDelegate.m中写入如下
[AMapServices sharedServices].apiKey = @"前面你所获取的KEY";
  • ViewController.m中写入高德地图库的头文件,并写入如下
- (void)viewDidLoad {
    [super viewDidLoad];
    MAMapView *mapView = [[MAMapView alloc] initWithFrame:self.view.frame];
    //把地图添加至view
    [self.view addSubview:mapView];

然后地图就可以正常显示了

可能会遇到的问题

因为我之前使用的老版本的XCode,SDK用的也是老版本的,所以在运行时莫名其妙的出现了下列错误
请添加图片描述

  1. Mapping architecture arm64 to x86_64. Ensure that this target's Architectures and Valid Architectures build settings are configured correctly for the iOS Simulator platform.

解决的方法:

第一步: xcode->File->Workspace Settings…

请添加图片描述

第二步:选择BuildSystem->Legacy Build System
请添加图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值