滴滴打车,打车软件app实现。小车在地图上平滑移动的实现,Android,基于高德地图开发实现
来源:互联网 发布:科比场均数据 编辑:程序博客网 时间:2024/04/30 00:28
最近闲的没事干,发现滴滴出行的app,地图上的小汽车可以跑,很炫是不是,我们公司也是做车辆监控的app的,我就一直揣摩着怎么也让我们的小汽车在地图上跑来跑去啊,这样给人感觉好点,废话不说了,先看下滴滴出行的界面;
1.我们的gps数据是车辆10秒上报一次位置数据;前端请求数据获取当前最新的gps位置;
2.第一次请求到数据后我把所有的车辆先标记到地图上,高德地图有标记方法;
3.标记到地图上以后,需要把marker存放到list记录下来(为了更新移动使用);
4.当再次请求道新的gps数据的时候,我们需要平滑的移动到最新的位置,关键问题是再这里;怎么样在才能平滑移动呢,无非就是需要不断的移动从当前位置到最新的位置,这里就当时从A点移动到B点,无非就是marker.setPosition(),不断的调用知道B点,
List<Marker> markersMap = new ArrayList(Marker);//存放地图上标记markerprivate void addMarkToMap(List<MarkerCarOptions> markerCarOptions){ if(markersMap.size()!=0){ //markersMap不为空,说明是更新marker for (Marker marker : markersMap) { for (MarkerCarOptions options : markerCarOptions) { if(marker.getObject().equals(options.car.getBusid())){ moverCar(marker, options); break; } } }} /** * 更新地图车辆位置 * @param markerCarOptions */private void moverCar(final Marker marker,final MarkerCarOptions options){ //1,获取到起点到终点的点,默认绘制4个点,最后一个为终点 final List<LatLng> roads = new ArrayList<LatLng>(); LatLng startLatLng = marker.getPosition();//小车当前位置 LatLng endLatLng = options.markerOptions.getPosition();//终点位置 LatLng latLng_2 = new LatLng((startLatLng.latitude+endLatLng.latitude)/2, (startLatLng.longitude+endLatLng.longitude)/2); LatLng latLng_1 = new LatLng((startLatLng.latitude+latLng_2.latitude)/2, (startLatLng.longitude+latLng_2.longitude)/2); LatLng latLng_3 = new LatLng((latLng_2.latitude+endLatLng.latitude)/2, (latLng_2.longitude+endLatLng.longitude)/2); roads.add(latLng_1); roads.add(latLng_2); roads.add(latLng_3); roads.add(endLatLng); Thread t =new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub try { for (int i = 0; i < roads.size(); i++) { marker.setPosition(roads.get(i)); Thread.sleep(200); } marker.setIcon(options.markerOptions.getIcon()); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } }); t.start(); }
5,最后需要说明的是,大家问平均获取的中间点这样获取到底对不对,我告诉你确切的说是不准确的,但是在10秒每次上报的数据之间来这样算是没错的;具体大家可以测下下就知道了,稍后再上了例子好了
2 1
- 滴滴打车,打车软件app实现。小车在地图上平滑移动的实现,Android,基于高德地图开发实现
- 滴滴打车,打车软件app实现。小车在地图上平滑移动的实现,Android,基于高德地图开发实现
- Android 滴滴打车,打车软件客户端实现小车在地图上平滑移动的实现;基于高德地图V4.1.1+
- 类似滴滴打车,多辆小车在地图上平滑移动的实现,基于百度地图实现(轨迹已画好)
- 类似滴滴打车,多辆小车在地图上平滑移动的实现,基于百度地图实现(无轨迹)
- 仿滴滴打车的平滑移动附近车辆效果实现全流程,基于高德地图
- 利用高德地图javascriptAPI实现模仿滴滴打车定位
- Android开发实现距离位置变化(类似滴滴打车附件的车辆)
- Android移动开发-在Android项目里调用基于高德地图API实现定位
- 百度地图SDK for android marker不随地图的移动而移动(仿滴滴打车)
- 【高德地图SDK】如何实现轨迹平滑移动?
- Android 端滴滴打车接口的开发
- 仿滴滴打车底部滑动条代码逻辑实现
- 实现百度地图marker类平滑移动
- 高德地图api在android studio的实现
- Android移动开发-在Android项目里调用基于百度地图API实现定位
- 基于高德地图实现移动互联网地图定位自动检索系统
- Android实现人物在地图中移动
- 数据量很大的排序问题 大量数据如何排序
- [算法学习]20150414.2.堆排序
- getopt 函数分析
- 手把手教你开发Chrome扩展三:关于本地存储数据
- iOS开发-清理缓存功能的实现
- 滴滴打车,打车软件app实现。小车在地图上平滑移动的实现,Android,基于高德地图开发实现
- XML操作方法
- iOS接阿里百川反馈SDK
- 继续聊WPF——获取ComboBox中绑定的值
- SD卡环境变量类的/android存储设备的相关操作
- hibernate缓存
- XML和JSON解析-----定义与比较
- redis 事务
- TCP拥塞控制