标签:
目录
一、下载百度地图SDK
二、 工程配置
1. 新建Xcode工程
2. 获取Bundle Identifie
3. 申请key
4. 导入框架配置工程
第一步: 引入BaiduMapAPI.framework
第二步: 引入所需的系统库
第三步: 环境配置
第四步: 引入mapapi.bundle资源文件
第五步: 引入头文件
5. 初始化 BMKMapManager
第一步: 在AppDelegate.m 中添加 BMKMapManager的定义
第二步: 遵守 BMKGeneralDelegate 实现其两个代理方法,目的是为了得知本应用是否联网成功、授权成功.
第三步: 在AppDelegate.m文件中添加对BMKMapManager的初始化,并填入申请的授权Key.
三、实战记录运动轨迹
1. 初始化工作
第一步:引入相关头文件,声明相关属性
第二步:初始化相关方法
第三步:初始化MapView后设置其一些属性
第四步:初始化百度位置服务
2. 开始定位
第一步:强调内容开启定位的方法
第二步: 停止服务的方法函数
第三步: 停止失败调用的方法函数
第四步: 用户更新调用的方法函数
第五步: 用户方向更新调用的方法函数
3. 存储更新的用户地理位置
4. 绘制轨迹线
第一步:开始绘制路线
第二步: 绘制起始大头针
第三步: 清空标记
第四步:设置地图范围
第五步: 生成相应的覆盖物
四、最终的效果图展示
五、工程源码
一、下载百度地图SDK
1) 首先需要登录百度开放平台下载iOS地图SDK,推荐下载全新Framework形式的静态库,配置更加简单方便,具体看下图:
二、 工程配置
1. 新建一个Xcode工程
2. 获取Bundle Identifier
通过project->target->general可以看到本应用的Bundle Identifie,我们正是需要这串字符串去百度开发平台申请一个Key用于百度地图的调用。如图:
3. 申请key
登录百度开放平台后,点击右上角的API控制台进入申请key的界面,点击创建应用,在“安全码”处填入你的应用的Bundle Identifie,具体信息填写请看下图:
4. 导入框架配置工程
以下主要参考百度SDK配置文档:
* 第一步 、引入BaiduMapAPI.framework*
百度地图SDK提供了模拟器和真机两种环境所使用的framework,分别存放在libs/Release-iphonesimulator和libs/Release-iphoneos文件夹下,开发者可根据需要使用真机或模拟器的包,如果需同时使用真机和模拟器的包,可以使用lipo命令将设备和模拟器framwork包中的BaiduMapAPI文件合并成一个通用的文件,命令如下:
<code class="hljs lasso has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">lipo <span class="hljs-attribute" style="box-sizing: border-box;">-create</span> Release<span class="hljs-attribute" style="box-sizing: border-box;">-iphoneos</span>/BaiduMapAPI<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span>framework/BaiduMapAPI Release<span class="hljs-attribute" style="box-sizing: border-box;">-iphonesimulator</span>/BaiduMapAPI<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span>framework/BaiduMapAPI <span class="hljs-attribute" style="box-sizing: border-box;">-output</span> Release<span class="hljs-attribute" style="box-sizing: border-box;">-iphoneos</span>/BaiduMapAPI<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span>framework/BaiduMapAPI</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>
此时Release-iphoneos文件夹下的BaiduMapAPI.framework即可同时用于真机和模拟器。将所需的BaiduMapAPI.framework拷贝到工程所在文件夹下。在TARGETS->Build Phases-> Link Binary With Libaries中点击+按钮,在弹出的窗口中点击“Add Other”按钮,选择BaiduMapAPI.framework文件添加到工程中。
注:静态库中采用ObjectC++实现,因此需要您保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm),或者在工程属性中指定编译方式,即将Xcode的Project -> Edit Active Target -> Build -> GCC4.2 - Language -> Compile Sources As设置为Objective-C++。
第二步、引入所需的系统库
百度地图SDK中提供了定位功能和动画效果,v2.0.0版本开始使用OpenGL渲染,因此您需要在您的Xcode工程中引入CoreLocation.framework和QuartzCore.framework、OpenGLES.framework、
SystemConfiguration.framework、CoreGraphics.framework、
Security.framework。添加方式:在Xcode的Project -> Active Target ->Build Phases ->Link Binary With Libraries,添加这几个framework即可。
第三步、环境配置
在TARGETS->Build Settings->Other Linker Flags中添加-ObjC。
第四步、引入mapapi.bundle资源文件
如果使用了基础地图功能,需要添加该资源,否则地图不能正常显示
mapapi.bundle中存储了定位、默认大头针标注View及路线关键点的资源图片,还存储了矢量地图绘制必需的资源文件。如果您不需要使用内置的图片显示功能,则可以删除bundle文件中的image文件夹。您也可以根据具体需求任意替换或删除该bundle中image文件夹的图片文件。
方法:选中工程名,在右键菜单中选择Add Files to “工程名”…,从BaiduMapAPI.framework||Resources文件中选择mapapi.bundle文件,并勾选“Copy items if needed”复选框,单击Add按钮,将资源文件添加到工程中。
第五步、引入头文件
在使用SDK的类引入头文件:
<code class="hljs ruleslanguage has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"><span class="hljs-array" style="box-sizing: border-box;">#import </span><BaiduMapAPI/BMapKit.h><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//引入所有的头文件</span>
<span class="hljs-array" style="box-sizing: border-box;">#import </span><BaiduMapAPI/BMKMapView.h><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//只引入所需的单个头文件</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li></ul>
5. 初始化 BMKMapManager
第一步: 在AppDelegate.m 中添加 BMKMapManager的定义:
第二步: 遵守 BMKGeneralDelegate 实现其两个代理方法,目的是为了得知本应用是否联网成功、授权成功:
第二步: 遵守 BMKGeneralDelegate 实现其两个代理方法,目的是为了得知本应用是否联网成功、授权成功:
第三步: 在AppDelegate.m文件中添加对BMKMapManager的初始化,并填入申请的授权Key,示例如下:
三、实战记录运动轨迹
一条完整的运动轨迹是由一组地理位置坐标数组描点连线构成的,我们需要实时监测用户位置的变更,将最新的符合限定条件的地位位置数据存放到数据中,调用SDK中的画折线方法绘制运动轨迹。
1. 初始化工作
第一步: 引入相关头文件,声明相关属性
第二步: 初始化相关方法
第三步:初始化MapView后设置其一些属性
第四步:初始化百度位置服务
2. 开始定位
第一 强调内容开启定位的方法
第二 停止服务的方法函数
第三 停止失败调用的方法函数
第四 用户更新调用的方法函数
第五 用户方向更新调用的方法函数
3. 存储更新的用户地理位置
4. 绘制轨迹线
第一 开始绘制路线
第二 绘制起始大头针
第三 清空标记
第四 设置地图范围
第五 生成相应的覆盖物
四、最终的效果图展示
五、工程源码
源码下载地址:http://download.csdn.net/detail/baihuaxiu123/9496390
基于百度地图记录运动轨迹案例分析与实现
标签:
原文地址:http://blog.csdn.net/jiaxin_1105/article/details/51394723