查询终端历史轨迹 最后更新时间: 2021年01月22日
查询终端历史轨迹有两种方式,一种会查出终端的所有轨迹的轨迹点,包括不属于任何一个轨迹的散点,并将这些轨迹点按照上传时间排序;另一种会按照轨迹查出每个轨迹下的轨迹点或特定轨迹下的轨迹点,散点不包含在内。
查询终端所有轨迹点
下面的代码查询出某个终端在最近12小时内上传的所有轨迹点:
// 搜索最近12小时以内上报的轨迹
HistoryTrackRequest historyTrackRequest = new HistoryTrackRequest(
serviceId,
terminalId,
System.currentTimeMillis() - 12 * 60 * 60 * 1000,
System.currentTimeMillis(),
0, // 不绑路
0, // 不做距离补偿
5000, // 距离补偿阈值,只有超过5km的点才启用距离补偿
0, // 由旧到新排序
1, // 返回第1页数据
100, // 一页不超过100条
"" // 暂未实现,该参数无意义,请留空
);
aMapTrackClient.queryHistoryTrack(historyTrackRequest, new OnTrackListener() {
...
@Override
public void onHistoryTrackCallback(HistoryTrackResponse historyTrackResponse) {
if (historyTrackResponse.isSuccess()) {
HistoryTrack historyTrack = historyTrackResponse.getHistoryTrack();
// historyTrack中包含终端轨迹信息
} else {
// 查询失败
}
}
});
查询终端下属于某个轨迹的轨迹点
// 搜索最近12小时以内上报的属于某个轨迹的轨迹点信息,散点上报不会包含在该查询结果中
QueryTrackRequest queryTrackRequest = new QueryTrackRequest(
serviceId,
terminalId,
-1, // 轨迹id,传-1表示查询所有轨迹
System.currentTimeMillis() - 12 * 60 * 60 * 1000,
System.currentTimeMillis(),
0, // 不启用去噪
bindRoadCheckBox.isChecked() ? 1 : 0, // 绑路
0, // 不进行精度过滤
DriveMode.DRIVING, // 当前仅支持驾车模式
recoupCheckBox.isChecked() ? 1 : 0, // 距离补偿
5000, // 距离补偿,只有超过5km的点才启用距离补偿
1, // 结果应该包含轨迹点信息
1, // 返回第1页数据,由于未指定轨迹,分页将失效
100 // 一页不超过100条
);
aMapTrackClient.queryTerminalTrack(queryTrackRequest, new OnTrackListener() {
...
@Override
public void onQueryTrackCallback(QueryTrackResponse queryTrackResponse) {
if (queryTrackResponse.isSuccess()) {
List<Track> tracks = queryTrackResponse.getTracks();
// 查询成功,tracks包含所有轨迹及相关轨迹点信息
} else {
// 查询失败
}
}
});