里程计算
鹰眼Android SDK提供了queryDistance()方法,用于计算指定时间段内的轨迹里程,支持:
1. 计算纠偏后的里程
2. 用路线规划补偿中断轨迹的里程
3. 支持返回途径收费道路的里程
支持设置 isProcessed=1和processOption纠偏选项,纠正里程计算。关于纠偏选项的设置,详见
轨迹查询与纠偏。
注:本页关于里程计算的说明均是指计算已上传到鹰眼服务端的轨迹里程,对于缓存于鹰眼SDK本地的轨迹里程计算,可参见
缓存轨迹处理。
使用方法
与查询轨迹一样,里程计算也支持设置 isProcessed和processOption纠偏选项,纠正里程计算。详见轨迹纠偏的说明
除此之外,里程计算还提供里程补充功能,当轨迹中断5分钟以上,会被认为是一段中断轨迹,通过supplementMode参数可设置中断区间里程的计算方式,选项有:
no_supplement:不补充,中断两点间距离不记入里程。
straight:使用直线距离补充
driving:使用最短驾车路线距离补充
riding:使用最短骑行路线距离补充
walking:使用最短步行路线距离补充
开发者可以根据具体的业务场景选择合适的补充方式。 示例代码
请求12小时内的轨迹里程,并进行轨迹纠偏和驾车里程补偿。
// 请求标识
int tag = 2;
// 轨迹服务ID
long serviceId = 0;
// 设备标识
String entityName = "myTrace";
// 创建里程查询请求实例
DistanceRequest distanceRequest = new DistanceRequest(tag, serviceId, entityName);
// 开始时间(单位:秒)
long startTime = System.currentTimeMillis() / 1000 - 12 * 60 * 60;
// 结束时间(单位:秒)
long endTime = System.currentTimeMillis() / 1000;
// 设置开始时间
distanceRequest.setStartTime(startTime);
// 设置结束时间
distanceRequest.setEndTime(endTime);
// 设置需要纠偏
distanceRequest.setProcessed(true);
// 创建纠偏选项实例
ProcessOption processOption = new ProcessOption();
// 设置需要去噪
processOption.setNeedDenoise(true);
// 设置需要绑路
processOption.setNeedMapMatch(true);
// 设置交通方式为驾车
processOption.setTransportMode(TransportMode.driving);
// 设置纠偏选项
distanceRequest.setProcessOption(processOption);
// 设置里程填充方式为驾车
distanceRequest.setSupplementMode(SupplementMode.driving);
// 初始化轨迹监听器
OnTrackListener mTrackListener = new OnTrackListener() {
// 里程回调
@Override
public void onDistanceCallback(DistanceResponse response) {}
};
// 查询里程
mTraceClient.queryDistance(distanceRequest, mTrackListener);