轨迹追踪
功能场景
出行、运动健康类app中动态展示小车、用户的轨迹变化。
Android
iOS

https://mapopen-website-wiki.cdn.bcebos.com/demos/andDemos/yingyan/轨迹追踪.mp4

扫码体验
核心接口
类
接口
描述
Trace
Trace(long serviceId, String entityName)
创建轨迹服务
setInterval(int gatherInterval, int packInterval)
设置采集和打包位置数据的时间间隔
startTrace(Trace mTrace, OnTraceListener traceListener)
开启轨迹服务
LBSTraceClient
startGather(OnTraceListener traceListener)
开启轨迹采集
stopTrace(Trace mTrace, OnTraceListener traceListener)
停止轨迹服务
stopGather(OnTraceListener traceListener)
停止轨迹采集
重点关注
1)、注意:回传周期不能小于定位周期,否则回传不生效;回传周期建议设置为定位周期的整数倍,打包间隔最小为2秒,最大为5分钟。
//位置采集周期
int gatherInterval = 2;
//打包周期
int packInterval = 12;
//设置位置采集和打包周期
client.setInterval(gatherInterval, packInterval);
2)、注意:因为startTrace与startGather是异步执行,且startGather依赖startTrace执行开启服务成功,所以建议startGather在public void onStartTraceCallback(int errorNo, String message)回调返回错误码为0后,再进行调用执行,否则会出现服务开启失败12002的错误。
3)、注意:开启服务、开启采集、停止采集、停止服务四个接口共用OnTraceListener监听器,每次调用时,请务必传入同一个监听器实例;或者在初始化时调用LBSTraceClient.setOnTraceListener()设置监听器,后续调用以上四个接口时无须再次传入,如:
开启服务LBSTraceClient.startTrace(mTrace, null)
开启采集LBSTraceClient.startGather(null)
此时回调消息由setOnTraceListener()时传入的监听器接收
//位置采集周期
int gatherInterval = 2;
//打包周期
int packInterval = 12;
//设置位置采集和打包周期
client.setInterval(gatherInterval, packInterval);
2)、注意:因为startTrace与startGather是异步执行,且startGather依赖startTrace执行开启服务成功,所以建议startGather在public void onStartTraceCallback(int errorNo, String message)回调返回错误码为0后,再进行调用执行,否则会出现服务开启失败12002的错误。
3)、注意:开启服务、开启采集、停止采集、停止服务四个接口共用OnTraceListener监听器,每次调用时,请务必传入同一个监听器实例;或者在初始化时调用LBSTraceClient.setOnTraceListener()设置监听器,后续调用以上四个接口时无须再次传入,如:
开启服务LBSTraceClient.startTrace(mTrace, null)
开启采集LBSTraceClient.startGather(null)
此时回调消息由setOnTraceListener()时传入的监听器接收
核心代码
1.初始化轨迹服务
JAVA
// 轨迹服务ID long serviceId = 0; // 设备标识 String entityName = "myTrace"; // 初始化轨迹服务 Trace mTrace = new Trace(serviceId, entityName); // 初始化轨迹服务客户端 LBSTraceClient mTraceClient = new LBSTraceClient(getApplicationContext());
复制
深色
复制成功
2.设置上传打包周期
JAVA
// 定位周期(单位:秒) int gatherInterval = 5; // 打包回传周期(单位:秒) int packInterval = 10; trackApp.mClient.setInterval(gatherInterval, packInterval);
复制
深色
复制成功
3.初始化轨迹监听
JAVA
// 初始化轨迹服务监听器 OnTraceListener mTraceListener = new OnTraceListener() { // 开启服务回调 @Override public void onStartTraceCallback(int status, String message) {} // 停止服务回调 @Override public void onStopTraceCallback(int status, String message) {} // 开启采集回调 @Override public void onStartGatherCallback(int status, String message) {} // 停止采集回调 @Override public void onStopGatherCallback(int status, String message) {} .... };
复制
深色
复制成功
4.开启服务
JAVA
trackApp.mClient.startTrace(trackApp.mTrace, traceListener);
复制
深色
复制成功
5.开启采集
JAVA
trackApp.mClient.startGather(traceListener);
复制
深色
复制成功
6.关闭采集
JAVA
trackApp.mClient.stopGather(traceListener);
复制
深色
复制成功
7.关闭服务
JAVA
trackApp.mClient.stopTrace(trackApp.mTrace, traceListener);
复制
深色
复制成功