您的位置:首页 > 其它

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

2016-04-20 01:25 225 查看

目录

一、下载百度地图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的定义:



第二步: 遵守 BMKGeneralDelegate 实现其两个代理方法,目的是为了得知本应用是否联网成功、授权成功:



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



三、实战记录运动轨迹

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

1. 初始化工作

第一步: 引入相关头文件,声明相关属性



第二步: 初始化相关方法



第三步:初始化MapView后设置其一些属性



第四步:初始化百度位置服务



2. 开始定位

第一 强调内容开启定位的方法



第二 停止服务的方法函数



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



第四 用户更新调用的方法函数



第五 用户方向更新调用的方法函数



3. 存储更新的用户地理位置



4. 绘制轨迹线

第一 开始绘制路线



第二 绘制起始大头针



第三 清空标记



第四 设置地图范围



第五 生成相应的覆盖物



四、最终的效果图展示











五、工程源码

源码下载地址:http://download.csdn.net/detail/baihuaxiu123/9496390

关注我的简书网址:http://www.jianshu.com/users/0873ab6768a6/latest_articles
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: