• iOS开发之集成百度地图


    由于iOS MapKit框架很多情况并不能满足我们的需求,我们可以选择集成百度地图,那该如何操作呢?

    申请Key

    登录百度API管理中心申请Key

    http://lbsyun.baidu.com/apiconsole/key

    创建一个应用

    箭头所指就是我们所要用到的Key

    下载SDK

    http://developer.baidu.com/map/static/doc/output_ios/BaiduMap_IOSSDK_v2.6.0_All.zip

    开发指南

    如何使用开发包可以参考开发指南

    http://developer.baidu.com/map/index.php?title=iossdk

    开发包结构

    解压开发包后,有3个文件夹

     

    集成开发包

    接下来新建第一个百度地图应用,步骤如下

    1. 合并真机和模拟器的.a库文件
    2. 添加依赖的.a.hframeworkbundle等资源
    3. 新建.mm文件
    4. 修改软件唯一标识
    5. 导入主头文件
    6. 开启地图引擎
    7. 地图展示

    1.合并真机和模拟器的.a库文件

    百度地图并未开源,只提供了静态库文件libbaidumapapi.a,有真机和模拟器版,分别放在下面两个文件夹中:

    • BaiduMap_iOSSDK_v2.6.0_Lib/libs/Release-iphoneos
    • BaiduMap_iOSSDK_v2.6.0_Lib/libs/Release-iphonesimulator

    为了避免每次在真机和模拟器编译时都重新添加.a文件,应该将两个.a文件合并为一个,在终端上输入一下指令:

    cd /这里是百度地图SDK根路径/BaiduMap_iOSSDK_v2.1.0_Lib/libs

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

    2.添加依赖的.a.hframeworkbundle等资源

     

    BaiduMap_iOSSDK_v2.1.0_Lib下面的inc文件夹、mapapi.bundle添加到项目中

    添加合并后的libbaidumapapi.a库文件到项目中

    添加依赖的框架

    CoreLocation.framework

    QuartzCore.framework

    OpenGLES.framework

    SystemConfiguration.framework

    CoreGraphics.framework

    Security.framework2.1.0开始需要)

    最终项目里面多出的东西是:

     

       

     

    3.新建.mm文件

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

     

    4.修改软件唯一标识

    修改软件唯一标识为当初申请key时的安全码

    5.导入主头文件

    使用地图前需要导入SDK的主头文件

    #import "BMapKit.h"

    6.开启地图引擎

    1 _mapMgr = [[BMKMapManager alloc] init];
    2 
    3 int ret =[_mapMgr start:@"0F0dd93edfd75399dc65e299305b8490" generalDelegate:nil];
    4 
    5 if (ret) {
    6 
    7     MyLog(@"地图引擎开启成功!");
    8 
    9 }

     start后面传递的是申请的key

    7.地图展示

    添加展示地图的BMKMapView

    1 _mapView = [[BMKMapView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame];
    2 
    3 [self.view addSubview:_mapView];

    注意事项:遇见什么问题一定要查文档,按照文档一步步来,文档说的十分详细,如果地图显示不出来,把模拟器重置一下就行了

     

     

  • 相关阅读:
    async 和 await
    Nginx配置反向代理与负载均衡
    简单使用高德地图开放平台API
    layui select 动态赋值
    ERROR: Pool overlaps with other one on this address space
    解决docker镜像无法删除的问题
    伪静态问题导致前台页面无法通过地址栏访问
    ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule
    PHP使用引用实现无限极分类
    composer update -- memory_limit
  • 原文地址:https://www.cnblogs.com/dongwenbo/p/4301134.html
Copyright © 2020-2023  润新知