深入解析iOS版本百度地图v2.9.1 API应用教程(一)

更新:11-07 名人轶事 我要投稿 纠错 投诉

大家好,今天来为大家解答深入解析iOS版本百度地图v2.9.1 API应用教程(一)这个问题的一些问题点,包括也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

2. 引入百度地图API

1. 申请密钥。在使用SDK之前,您需要获取百度地图手机版开发密钥(Key),该密钥与您的百度帐号关联。您必须拥有百度帐户才能获取密钥。而且,Key与引用SDK的包名相关,初始化地图时需要用到Key。

2、注意事项

1)。静态库是使用ObjectC++实现的,所以需要保证你的工程中至少有一个.mm后缀的源文件(任何带有.m后缀的文件都可以重命名为.mm),或者在工程中指定编译项目属性。方法,即设置Xcode的Project -Edit Active Target -Build -GCC4.2 - Language -Compile Sources As 为"Objective-C++"

2)。如果只在Xib文件中使用BMKMapView,而在代码中不使用BMKMapView,则编译器在链接时不会链接相应的符号。您需要在项目属性中显式设置它:Project -Edit Active Target in Xcode -Build -Linking -Other Linker Flags Add -ObjC

3)。由于iOS9切换为更安全的https,为了能够在iOS9中正常使用地图SDK,请在“Info.plist”中进行如下配置,否则会影响SDK的使用。

4).如果在iOS9中使用启动百度地图客户端的功能,则必须在“Info.plist”中进行以下配置,否则无法启动百度地图客户端。

5)。管理地图的生命周期:从2.0.0开始,BMKMapView增加了viewWillAppear和viewWillDisappear方法来控制BMKMapView的生命周期,并且一次只有一个BMKMapView可以接受回调消息,所以需要在viewController中使用BMKMapView调用BMKMapView的viewWillAppear和viewWillDisappear方法中对应的方法并处理delegate。代码如下:

6).从iOS SDK v2.5.0开始,为了兼容iOS8的定位能力,做了相应的修改。开发者在使用过程中需要注意以下几点: 需要在info.plist中添加(以下两项任选其一或两项)。两者都被添加以默认使用NSLocationWhenInUseUsageDescription ):

NSLocationWhenInUseUsageDescription ,允许在前台使用时获取GPS 的描述

NSLocationAlwaysUsageDescription ,允许永久使用GPS 的描述

7).使用Xcode 6进行SDK开发时,需要在info.plist中添加:Bundledisplayname,且其值不能为空(Xcode 6创建的新项目没有此配置,如果没有,managerstart会失败)

8).从百度地图iOS SDK v2.5.0开始,适配了arm64支持,并且开发包的大小有所增加。不过,根据开发者在开发过程中的选择,最终生成的APP的大小不会有太大变化。

9).确认工程中已添加mapapi.bundle文件,且添加方式正确。文件夹内容不可删除或任意更改:

注:mapapi.bundle 中存储了用于定位的资源图片、默认的引脚标注视图和路线关键点,以及矢量地图绘制所需的资源文件。如果不需要使用内置的图片显示功能,可以删除bundle文件中的image文件夹。您还可以根据具体需要替换或删除捆绑包中图像文件夹中的图像文件。添加方法:将mapapi.bundle复制到项目目录下,直接将bundle文件拖到Xcode项目左侧的GroupsFiles中。如果需要替换定位和指南针图标,请保留原来的文件名,否则替换后的新图像将无法显示。可以自定义默认的引脚注释和路线关键点的新图像名称。

10)。注意BMKManager对象的生命周期管理。使用地图SDK时无法释放该对象。特别是有电弧的情况下,要注意避免提前自动释放。否则,一旦对象被释放,网络模块将不可用,地图无法加载。检索失败。

11)。当应用程序在前台和后台切换时,需要使用以下代码来停止地图渲染和openGL绘制:

3.导入SDK开发包

百度地图iOS SDK从v2.7.0版本开始,以.framework的形式向开发者提供SDK开发包。这种形式的开发包配置简单,使用方便,推荐大家使用。开发包有以下两种配置方式:

1)。自动配置.framework表单开发包(使用CocoaPods)

注:该方法仅支持导入全包SDK,包含百度地图iOS SDK的所有功能

一个。先决条件:安装CocoaPods

在终端中输入

sudo gem 安装cocoapods

如果安装成功会有提示

成功安装cocoaPods

b.使用CocoaPods导入地图SDK

在当前项目文件(.xcodeproj)所在文件夹中,打开终端

一、创建Podfile:

$touchPodfile

二.然后使用vim编辑Podfile文件,使用命令:

$vimPodfile

三编辑Podfile内容如下:

pod ‘BaiduMapKit’, ‘~2.9.1’

编辑完成后,按“esc”,然后按“:”。此时输入wq,点击回车,保存退出。

四在Podfile所在文件夹中输入命令:

$ pod install (这可能会很慢,请耐心等待.)

成功后会出现如下记录:

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

2)。手动配置.framework表单开发包

一个。根据需要导入.framework包

百度地图iOS SDK以分包的形式提供.framework包。建议开发者在使用时保证各个分包的版本一致。其中BaiduMapAPI_Base.framework为基础包,使用SDK的任何功能都需要导入该包。其他子包可以按需导入。将所需的BaiduMapAPI_**.framework复制到项目所在文件夹中。

点击TARGETS-Build Phases-Link Binary With Libaries中的“+”按钮,在弹出的窗口中点击“Add Other”按钮,选择BaiduMapAPI_**.framework添加到项目中。

注: 静态库是使用Objective-C++实现的,所以需要保证你的项目中至少有一个.mm后缀的源文件(你可以将任何带有.m后缀的文件重命名为.mm),或者在项目属性中指定它。编译方法,即设置Xcode的Project -Edit Active Target -Build -GCC4.2 - Language -Compile Sources As为"Objective-C++"

b.引入需要的系统库

百度地图SDK提供定位功能和动画效果。 v2.0.0版本开始使用OpenGL渲染,所以你需要在你的Xcode项目中引入它。

CoreLocation.framework

QuartzCore.framework

OpenGLES.框架

系统配置.framework

CoreGraphics.framework

安全框架

libsqlite3.0.tbd(xcode7之前的libsqlite3.0.dylib)

CoreTelephony.framework

libstdc++.6.0.9.tbd(xcode7 之前的libstdc++.6.0.9.dylib)

(注:红色标注的系统库是v2.9.0版本新增的系统库,使用v2.9.0及以上版本的地图SDK时,请务必导入这三个系统库。)

如何添加:在Xcode的Project -Active Target -Build Phases -Link Binary With Libraries中,添加这些系统库即可。

c.环境配置

在TARGETS-Build Settings-Other Linker Flags中添加-ObjC。

d.引入mapapi.bundle资源文件

如果使用基本地图功能,则需要添加该资源,否则地图无法正常显示。 mapapi.bundle 存储用于定位的资源图像、默认引脚注释视图和路线关键点。它还存储矢量地图绘制所需的资源文件。如果不需要使用内置的图片显示功能,可以删除bundle文件中的image文件夹。您还可以根据具体需要替换或删除捆绑包中图像文件夹中的图像文件。

方法:选择项目名称,右键菜单中选择Add Files to“Project Name”…,从BaiduMapAPI_Map.framework||Resources文件中选择mapapi.bundle文件,勾选“Copy items if need”复选框,单击“添加”按钮将资源文件添加到项目中。

e.引入头文件

4.初始化地图

一个。初始化BMKMapManager

在AppDelegate.h文件中添加BMKMapManager的定义。

在AppDelegate.m文件中添加BMKMapManager的初始化,并填写申请的授权密钥。示例如下:

b.创建BMKMapView

在ViewController.m文件中添加BMKMapView的创建代码,示例如下:

从2.0.0开始,BMKMapView增加了viewWillAppear和viewWillDisappear方法来控制BMKMapView的生命周期,并且一次只能有一个BMKMapView可以接受回调消息。因此,在viewController中使用BMKMapView时,需要调用BMKMapView中的viewWillAppear和viewWillDisappear方法。对应的方法和处理委托,代码如下:

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!

用户评论

冷风谷离殇

终于更新了!一直在等新版本的API

    有12位网友表示赞同!

_心抽搐到严重畸形っ°

看标题就知道要全面讲一遍,很棒呀!

    有10位网友表示赞同!

陌然淺笑

想做一些地图相关的项目可是代码一直卡着,这次看到新的文档感觉可以尝试一下

    有9位网友表示赞同!

全网暗恋者

2.9.1版本改了什么?快来详细说说

    有16位网友表示赞同!

有一种中毒叫上瘾成咆哮i

百度地图API好用啊,希望能更新更多新功能

    有5位网友表示赞同!

〆mè村姑

学习iOS开发,这篇文章正好能让我了解一下地图API的使用

    有6位网友表示赞同!

虚伪了的真心

第一次使用百度地图API,看这一篇入门教程再动手!

    有12位网友表示赞同!

←极§速

不知道这次新版本修复了什么bug,希望更稳定一些

    有8位网友表示赞同!

温柔腔

现在做app都离不开地图功能,iOS地图API越来越重要了

    有12位网友表示赞同!

怀念·最初

之前用过旧版API,期待新版本有哪些提升?比如定位速度更快吗?

    有13位网友表示赞同!

有你,很幸福

感觉这篇文章可以作为学习指南了,把重点都总结出来很方便

    有7位网友表示赞同!

北朽暖栀

分享一下我最近用百度地图API做的项目经验吧!

    有6位网友表示赞同!

爱情的过失

希望这份教程能够详细讲解每个步骤,这样更容易理解

    有14位网友表示赞同!

我的黑色迷你裙

做程序开发的都知道地图功能的重要性啊! 这篇文章必不可少

    有11位网友表示赞同!

杰克

iOS学习资源一直不太多,看到这篇文章感觉收获满满

    有13位网友表示赞同!

凉话刺骨

看标题就知道是API的使用方法,希望能详细讲解各种场景

    有6位网友表示赞同!

醉婉笙歌

最近想尝试用百度地图API做一款导航软件,这篇教程很及时

    有11位网友表示赞同!

あ浅浅の嘚僾

期待新版本地图效果更精美!更流畅!

    有11位网友表示赞同!

苍白的笑〃

学习一个新的API总是充满挑战,希望这篇文章可以给我一些启发

    有5位网友表示赞同!

【深入解析iOS版本百度地图v2.9.1 API应用教程(一)】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活

上一篇:免费获取百度网盘VIP会员攻略:快速注册享特权服务 下一篇:京东优惠券领取攻略:快速抢券技巧解析