Just do IT.

Hello, World!

Android 使用百度LBS SDK(六)轨迹回放

前篇:

Android使用百度LBS SDK     

(内容:百度地图API基本功能)


Android使用百度LBS SDK(二)

(内容:计算轨迹起始点和终点的直线距离和行驶距离、去掉MapView的缩放空间和百度Logo)


Android使用百度LBS SDK(三)点击地图POI导航 

(内容:击Poi或者地图上任意位置开始导航)


Android使用百度LBS SDK(四) 

(内容:设置导航路线规划策略、搜索框添加一键清除按钮、避免多次进入导航实例)


Android使用百度LBS SDK(五) 

(内容:卫星图、定位模式:普通跟随罗盘、指南针位置、SD卡导入离线地图、在线更新离线地图)


------------------------------------------------------------------------------------------------------------------------------------------

前面实现了轨迹绘制功能,后面添加了轨迹回放功能。

可还原轨迹速度,显示轨迹时间进度,暂停播放轨迹,加速播放。

效果:



------ 红虚线:起始点和终点连接直线

------ 绿虚线:轨迹趋势线

—— 蓝实线:实时绘制的轨迹


  支持x1,x5,x10倍速播放轨迹。


暂停,继续,重复播放。

------------------------------------------------------------------------------------------------------------------------------------------

代码实现:

主要状态:

        /** 播放倍数 */
	private TextView textPlaySpeed;

	/** 播放状态控制图标 */
	private ImageView imagePlayState;

	/** 播放状态:暂停、播放 */
	private boolean isRoutePlaying = true;

	/** 播放时间 */
	private TextView textPlayTime;

	/** 是否播放完毕 */
	private boolean isRouteFinished = false;

	public double mRouteLatitude = 0.0;
	public double mRouteLongitude = 0.0;

	/** 轨迹文件夹路径 */
	private final String ROUTE_PATH = Constant.RouteTrack.PATH;

	/** 当前轨迹的路径 */
	private String filePath = "";

绘制轨迹线程:

		                        nowIndex = 1;
					for (int i = 0; i < points.size(); i++) {
						if (isActivityShowing) {
							if (isRoutePlaying) {
								Message messageFollow = new Message();
								messageFollow.what = 1;
								drawRouteHandler.sendMessage(messageFollow);

								try {
									Thread.sleep(1000 / MyApplication.routePlaySpeed);
								} catch (InterruptedException e) {
									e.printStackTrace();
								}
							} else {
								// 暂停
								do {
									try {
										Thread.sleep(500);
									} catch (InterruptedException e) {
										e.printStackTrace();
									}
								} while (!isRoutePlaying);

							}
						} else {
							MyLog.v("[Loop]Return in case activity is onDestory.");
							return;
						}
					}

绘制轨迹趋势底图,起点终点虚线:

						// 绘制轨迹底图
						PolylineOptions polylineOptionBg = new PolylineOptions();
						polylineOptionBg.width(10); // 折线线宽, 默认为 5, 单位:像素
						polylineOptionBg.dottedLine(true); // 折线是否虚线
						polylineOptionBg.color(0xAA009966); // 折线颜色
						polylineOptionBg.points(points); // 折线坐标点列表:[2,10000],且不能包含null
						polylineOptionBg.keepScale(true); // 纹理宽、高是否保持原比例渲染

						OverlayOptions ooPolyline = polylineOptionBg;
						mBaiduMap.addOverlay(ooPolyline);

						// 绘制起点终点直线
						PolylineOptions polylineOptionDirec = new PolylineOptions();
						polylineOptionDirec.width(10); // 折线线宽, 默认为 5, 单位:像素
						polylineOptionDirec.dottedLine(true); // 折线是否虚线
						polylineOptionDirec.color(0xAAFF0000); // 折线颜色
						List<LatLng> pointStartEnd = new ArrayList<LatLng>(2);
						pointStartEnd.add(points.get(0));
						pointStartEnd.add(points.get(points.size() - 1));

						polylineOptionDirec.points(pointStartEnd); // 折线坐标点列表:[2,10000],且不能包含null
						polylineOptionDirec.keepScale(true); // 纹理宽、高是否保持原比例渲染

						OverlayOptions ooPolylineDirec = polylineOptionDirec;
						mBaiduMap.addOverlay(ooPolylineDirec);


阅读更多
版权声明:本文原创,转载请注明出处:http://blog.csdn.net/zhoumushui https://blog.csdn.net/zhoumushui/article/details/49966793
个人分类: Android
想对作者说点什么? 我来说一句

百度地图API实现轨迹回放

2016年09月23日 4KB 下载

百度地图轨迹回放安卓实例

2015年08月12日 12.12MB 下载

没有更多推荐了,返回首页

不良信息举报

Android 使用百度LBS SDK(六)轨迹回放

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭