安卓实现在百度地图上播放历史轨迹
来源:互联网 发布:java计算圆的面积 编辑:程序博客网 时间:2024/05/02 03:04
把一个人一个月的轨迹历史描绘出来,并实现按时间顺序回放。小弟菜鸟一枚,代码质量不高,高手勿喷,谢谢。
关于描点和描线,百度地图都有自己的API,大家都应该会了;至于播放动画,肯定不止一种方法,如果大家有好的方法,分享出来,小弟感激不尽。
我的方法是:在一个线程里,开始播放后,遍历存放item的list,找到当前的item,移除他的marker,然后给他换一个marker,再添加到list里面,然后睡眠;接着就判断,如果不是当前item,该什么样子就什么样子,如此迭代就可以了。
代码如下:
/** 轨迹回放逻辑处理 **/private Runnable rz = new Runnable(){ @Override public synchronized void run() { while (isStartRun) { for (int i = index; i < mGeoList.size(); i++) { OverlayItem item = mGeoList.get(i); flag = index; sendMsg(MapApplication.LOCATEOVER_NOTICE_ADAPTER); mOverlayGraphic.removeItem(item); item.setMarker(res.get(3)); if (!isBcak) { break; } mOverlayGraphic.addItem(item); mMapView.refresh(); SystemUtils.sleep(1000); mOverlayGraphic.removeItem(item); if (index == 0) { item.setMarker(res.get(1)); } else if (index == mGeoList.size() - 1) { item.setMarker(res.get(2)); isStartRun = false; isFinish = false; } else { View view = mInflater.inflate(R.layout.overlay_item, null); TextView userItemTv1 = (TextView) view.findViewById(R.id.item_tv1); userItemTv1.setText(index + 1 + ""); Bitmap bmp = userLocateUtil.createNewBitmap(view); Drawable drawable = new BitmapDrawable(bmp); item.setMarker(drawable); } if (!isBcak) { break; } mOverlayGraphic.addItem(item); mMapView.refresh(); index++; if (!isFinish) { index = 0; sendMsg(MapApplication.LOCATEOVER_PLAY_FINISH); break; } } } }}; private Handler handler = new Handler(){ public void handleMessage(Message msg) { switch (msg.what) { case MapApplication.LOCATEOVER_CHANGE_MAPVIEW: changeMapView(); break; case MapApplication.LOCATE_MAPVIEW_REFRESH: mMapView.refresh(); mMapView.getController().zoomToSpan(mOverlayGraphic.getLatSpanE6(), mOverlayGraphic.getLonSpanE6()); mMapView.getController().setCenter(mOverlayGraphic.getCenter()); PocProgressDialog.cancel(); break; case MapApplication.LOCATEOVER_PLAY_FINISH: Toast.makeText(MainActivity.mainActivity, "播放完毕", Toast.LENGTH_SHORT).show(); flag = 99999; adapter.notifyDataSetChanged(); play.setText("开始回放"); break; case MapApplication.LOCATEOVER_NOTICE_ADAPTER: adapter.notifyDataSetChanged(); // mListView.setSelection(flag);备用 break; } }};
主要的逻辑就在这里了,下面看看效果:
播放前:
播放时:
左边对应的listview:
0 0
- 安卓实现在百度地图上播放历史轨迹
- 安卓实现在百度地图上播放历史轨迹
- 百度地图 历史轨迹播放
- 安卓关于在百度地图上实现轨迹回放的处理
- 安卓开发:怎样实时在百度地图上绘制运动轨迹?
- AndroidNote013.在百度地图上画出轨迹
- android 获取GPS经纬度在百度地图上绘制轨迹
- 根据经纬度坐标值在百度地图上绘制轨迹
- 类似滴滴打车,多辆小车在地图上平滑移动的实现,基于百度地图实现(轨迹已画好)
- 类似滴滴打车,多辆小车在地图上平滑移动的实现,基于百度地图实现(无轨迹)
- 关于百度地图在安卓模拟器上的使用
- baidu map,百度地图,轨迹播放
- javaweb实现在百度地图上的轨迹回放功能,action传入大量的参数到JSP的JavaScript中,实现绘制轨迹功能
- 百度地图上画出轨迹 for android
- 百度地图api描绘车辆历史轨迹图
- android 百度地图sdk v3.4 绘制历史轨迹
- 百度地图显示历史轨迹时经纬度的处理方法
- 百度地图轨迹回放 快进 后退 停止 播放 暂停 的实现
- Android简单封装类似JQuery异步请求
- git-安装、配置与使用
- opencv的牛人博客
- Python实现快捷得到亚太区任意国家的IP段
- 获取当前系统时间
- 安卓实现在百度地图上播放历史轨迹
- CSS实现兼容性的渐变背景(gradient)效果
- 【CF】 159 D Palindrome pairs
- GCC 编译详解
- Little study of Setting Windows Schedule job
- System.getProperty()常用值
- hadoop 2.6 编译
- Oracle 权限相关
- 【KM匹配】 HDOJ 2853 Assignment