前言
在地图的使用中,尤其在导航场景下,进行GPS轨迹录制是十分必要并且有用的,本文会对于安卓系统下的轨迹录制部分做一个分享。
系统架构
对于一个GPSRecordSystem(GPS轨迹录制系统)主要分成3个部分:开始录制,录制GPS定位,结束录制并存储,如上图右方所示。在实际应用中,以导航系统为例:(1)在开始导航时(start navi),进行录制工作的相关配置;(2)收到安卓系统的onLocationChanged的callback进行GPSLocation的记录;(3)结束导航(stop navi)时,停止记录并存入文件。
相关代码展示
用到的相关变量
private LocationManager mLocationManager; // 系统locationManager
private LocationListener mLocationListener; // 系统locationListener
private boolean mIsRecording = false; // 是否正在录制
private List<String> mGpsList; // 记录gps的list
private String mRecordFileName; // gps文件名称
- 开始录制
开始录制一般是在整个系统工作之初,比如在导航场景下,当“开始导航”时,可以开始进行“startRecordLocation” 的配置
public void startRecordLocation(Context context, String fileName) {
// 已经在录制中不进行录制
if (mIsRecording) {
return;
}
Toast.makeText(context, "start record location...", Toast.LENGTH_SHORT).show();
// 初始化locationManager和locationListener
mLocationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE