基于百度地图记录运动轨迹案例分析与实现

目录

一、下载百度地图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文件合并成一个通用的文件,命令如下:

lipo -create Release-iphoneos/BaiduMapAPI.framework/BaiduMapAPI Release-iphonesimulator/BaiduMapAPI.framework/BaiduMapAPI -output Release-iphoneos/BaiduMapAPI.framework/BaiduMapAPI

此时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的类引入头文件:

#import <BaiduMapAPI/BMapKit.h>//引入所有的头文件
#import <BaiduMapAPI/BMKMapView.h>//只引入所需的单个头文件

5. 初始化 BMKMapManager
第一步: 在AppDelegate.m 中添加 BMKMapManager的定义:
基于百度地图记录运动轨迹案例分析与实现_第1张图片

第二步: 遵守 BMKGeneralDelegate 实现其两个代理方法,目的是为了得知本应用是否联网成功、授权成功:
基于百度地图记录运动轨迹案例分析与实现_第2张图片

第三步: 在AppDelegate.m文件中添加对BMKMapManager的初始化,并填入申请的授权Key,示例如下:

三、实战记录运动轨迹
一条完整的运动轨迹是由一组地理位置坐标数组描点连线构成的,我们需要实时监测用户位置的变更,将最新的符合限定条件的地位位置数据存放到数据中,调用SDK中的画折线方法绘制运动轨迹。

1. 初始化工作
第一步: 引入相关头文件,声明相关属性
基于百度地图记录运动轨迹案例分析与实现_第3张图片

第二步: 初始化相关方法
基于百度地图记录运动轨迹案例分析与实现_第4张图片

第三步:初始化MapView后设置其一些属性
基于百度地图记录运动轨迹案例分析与实现_第5张图片

第四步:初始化百度位置服务
基于百度地图记录运动轨迹案例分析与实现_第6张图片

2. 开始定位
第一 强调内容开启定位的方法
基于百度地图记录运动轨迹案例分析与实现_第7张图片

第二 停止服务的方法函数

第三 停止失败调用的方法函数

第四 用户更新调用的方法函数
基于百度地图记录运动轨迹案例分析与实现_第8张图片

第五 用户方向更新调用的方法函数
这里写图片描述

3. 存储更新的用户地理位置
基于百度地图记录运动轨迹案例分析与实现_第9张图片

4. 绘制轨迹线
第一 开始绘制路线
基于百度地图记录运动轨迹案例分析与实现_第10张图片

第二 绘制起始大头针
基于百度地图记录运动轨迹案例分析与实现_第11张图片

第三 清空标记
基于百度地图记录运动轨迹案例分析与实现_第12张图片

第四 设置地图范围
基于百度地图记录运动轨迹案例分析与实现_第13张图片

第五 生成相应的覆盖物
基于百度地图记录运动轨迹案例分析与实现_第14张图片

四、最终的效果图展示

基于百度地图记录运动轨迹案例分析与实现_第15张图片

基于百度地图记录运动轨迹案例分析与实现_第16张图片

基于百度地图记录运动轨迹案例分析与实现_第17张图片

五、工程源码
源码下载地址:http://download.csdn.net/detail/baihuaxiu123/9496390
关注我的简书网址:http://www.jianshu.com/users/0873ab6768a6/latest_articles

你可能感兴趣的:(百度地图)