历史轨迹查询
Android
iOS
https://mapopen-website-wiki.cdn.bcebos.com/demos/andDemos/yingyan/轨迹查询.mp4
1590746640|//mapopen-website-wiki.bj.bcebos.com/demos/andDemos/yingyan/android-preview.png
扫码体验
使用产品
轨迹查询|/index.php?title=android-yingyan/guide/searchtrack
下载源码
//mapopen-website-wiki.bj.bcebos.com/demos/andDemos/yingyan/BaiduTrace_AndroidSDK_v3_1_8_Sample_demo.zip
更多轨迹纠偏教程请见:
《轨迹去噪功能应用》|//developer.baidu.com/topic/show/290951
、《轨迹抽稀功能应用》|//developer.baidu.com/topic/show/290950
、《轨迹绑路功能应用》|//developer.baidu.com/topic/show/290953
、《轨迹补偿功能应用》|//developer.baidu.com/topic/show/291023
核心接口
类
接口
描述
LBSTraceClient
queryHistoryTrack(HistoryTrackRequest request, OnTrackListener listener)
查询历史轨迹
ProcessOption
setTransportMode(TransportMode transportMode)
设置交通方式, V3.1.0版本(包括)后支持auto
ProcessOption
setNeedDenoise(boolean needDenoise)
设置去噪
ProcessOption
setNeedVacuate(boolean needVacuate)
设置抽稀,仅在查询历史轨迹时有效
ProcessOption
setNeedMapMatch(boolean needMapMatch)
设置绑路,默认不需要
ProcessOption
setRadiusThreshold(int radiusThreshold)
设置精度过滤,默认不需要
HistoryTrackRequest
setServiceId(long serviceId)
设置鹰眼服务ID
HistoryTrackRequest
setProcessed(boolean isProcessed)
设置是否返回纠偏后轨迹,关闭轨迹纠偏,返回原始轨迹。
HistoryTrackRequest
setProcessOption(ProcessOption processOption)
设置纠偏选项
HistoryTrackRequest
setSupplementMode(SupplementMode supplementMode)
设置里程补偿方式,默认不补充
HistoryTrackRequest
setEntityName(String entityName)
设置entity标识
HistoryTrackRequest
setStartTime(long startTime)
设置起始时间
HistoryTrackRequest
setEndTime(long endTime)
设置结束时间
核心代码
1.发起检索请求
JAVA
/** * 查询历史轨迹 */ private void queryHistoryTrack() { HistoryTrackRequest historyTrackRequest = new HistoryTrackRequest(); historyTrackRequest.setServiceId(124454); // 设置服务id historyTrackRequest.setEntityName(trackApp.entityName); // 设置entityName historyTrackRequest.setStartTime(startTime); // 设置开始时间 historyTrackRequest.setEndTime(endTime);// 设置结束时间 historyTrackRequest.setPageIndex(pageIndex); // 设置分页 historyTrackRequest.setPageSize(Constants.PAGE_SIZE); // 设置分页大小 historyTrackRequest.setProcessed(true);// 设置是否返回纠偏后轨迹 ProcessOption processOption = new ProcessOption(); processOption.setRadiusThreshold(50); // 设置精度过滤,默认不需要(0:不需要,>0:radius过滤值) processOption.setTransportMode(TransportMode.auto); // 设置交通方式,默认为驾车V3.1.0版本(包括)后支持auto processOption.setNeedDenoise(true);// 设置去噪,默认需要 processOption.setNeedVacuate(true);// 设置抽稀,仅在查询历史轨迹时有效,默认需要 processOption.setNeedMapMatch(true);// 设置绑路,默认不需要 historyTrackRequest.setProcessOption(processOption); // 设置纠偏选项 historyTrackRequest.setCoordTypeOutput(CoordType.bd09ll);// 设置返回结果的坐标类型,默认为百度经纬度 trackApp.mClient.queryHistoryTrack(historyTrackRequest, mTrackListener); }
复制
深色
复制成功
2.检索结果处理
JAVA
mTrackListener = new OnTrackListener() { @Override public void onHistoryTrackCallback(HistoryTrackResponse response) { int total = response.getTotal(); StringBuffer sb = new StringBuffer(256); if (StatusCodes.SUCCESS != response.getStatus()) { viewUtil.showToast(TrackQueryActivity.this, response.getMessage()); } else if (0 == total) { viewUtil.showToast(TrackQueryActivity.this, getString(R.string.no_track_data)); } else { List<TrackPoint> points = response.getTrackPoints(); if (null != points) { for (TrackPoint trackPoint : points) { if (!CommonUtil.isZeroPoint(trackPoint.getLocation().getLatitude(), trackPoint.getLocation().getLongitude())) { trackPoints.add(MapUtil.convertTrace2Map(trackPoint.getLocation())); } } } sb.append("总里程:"); sb.append(response.getDistance()); sb.append("米"); sb.append("\n收费里程:"); sb.append(response.getTollDistance()); sb.append("米"); sb.append("\n低速里程:"); sb.append(response.getLowSpeedDistance()); sb.append("米"); addView(mapUtil.mapView); mHistoryTrackView.setText(sb.toString()); } if (total > Constants.PAGE_SIZE * pageIndex) { historyTrackRequest.setPageIndex(++pageIndex); queryHistoryTrack(); } else { mapUtil.drawHistoryTrack(trackPoints, sortType); } } @Override public void onDistanceCallback(DistanceResponse response) { super.onDistanceCallback(response); } @Override public void onLatestPointCallback(LatestPointResponse response) { super.onLatestPointCallback(response); } };
复制
深色
复制成功