美文网首页
【移动端】百度地图之历史轨迹回放

【移动端】百度地图之历史轨迹回放

作者: GoodGoodStuday | 来源:发表于2017-09-24 15:29 被阅读116次

官方demo本身是有历史轨迹例子的,运行起来也是非常666的,但在此基础上扩展功能是非常操蛋的。在此还耽误了整整两天的时间。后来不得不翻阅文档,重新去找解决的方式。对新方法,经过几次测试,最后功能终于出来了。
本来想抽离出来写个demo,可是嵌套的东西很多,UI界面也经历的三次整改,故而此文屏蔽了很多功能和细节。第二就是,配合前端开发pc端离线地图,时间也不多。故而先在这讲一下实现思路,在后续的文章中,再把功能一个一个剥离出来,但此功能的核心代码只有一行,只有一行,只有一行。是不是感觉不可思议啊。但我想,实现该功能肯定不止一种方法,如果大家有好的方法,请分享出来,小弟感激不尽。
我把业务简单化了。进入轨迹页面,历史轨迹线画好,然后,显示出一个信息框,从起点一直运动到终点。期间,进度条随着信息框同步运动
部分代码如下:
seekbar内部实现细节

public SeekBar.OnSeekBarChangeListener  seekBarListener = new SeekBar.OnSeekBarChangeListener() {    //   这个是 seekbar的监听事件
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
           // 省略细节了
            int  size_latlng = latLngs_list.size();   // 获取坐标基本数据结构集合
           //  临时变量 temp  ,seekbar的值不断复制给临时变量 
            HistroyActivity.this.temp = progress + 1; 
            if(HistroyActivity.this.temp <= size_latlng) {   // 小于集合大小时,信心框不断的去显示

                HistroyActivity.this.mMapView.removeView(HistroyActivity.this.view1);  //  删除前一个信息框,保证只有一个信息框在运动
            //  显示运动轨迹        
            HistroyActivity.this.showRealTrack(latLngs_list.get(HistroyActivity.this.temp-1));              
                }
            }else {
                return;
        }
  }

信息框实现细节

public void showRealTrack( LatLng latLngs_list1){
        //  核心代码,是不是只有一行,哈哈。
       //  实例化一个自定义view,即信息框的实现,通过addview加入到地图中去
        view1 = getLayoutInflater().inflate(R.layout.show_lineinfo,null);
        this.mMapView.addView(view1,new MapViewLayoutParams.Builder().layoutMode(MapViewLayoutParams.ELayoutMode.mapMode).position(latLngs_list1).yOffset(30).build());

      //  省略细节实现
        }
    }

控制进度条的进度

public void setBarProgress() {
        mSeekBar.setProgress(this.temp-1);
    }

开始新的线程,不断的发送消息,控制进度

 class  HistroyLineThread  implements Runnable {

        public LineThread() {

        }

        @Override
        public void run() {

            int size_histroy = HistroyActivity.this.latLngs_list.size();
                    // 细节省略
                     // 循环标志
                      while (isFlag_) {  //  不断的发送消息,通知进度条不断的加1

                               Object object1 = HistroyActivity.this;
                 ((HistroyActivity)object1).temp += 1;
                 HistroyActivity.this.histroyHandler.sendEmptyMessage(8000);
                 HistroyActivity.this.histroyHandler.postDelayed(this,800);
                 return;
            }
        }
    }

看后,还是有些不解的小伙伴,可以通过留言或以下方式联系我。我们共同学习,共同进步。
欢迎加入我们的大家庭
Android-技术交流:478720016
小密圈是免费加入,比付费的都好。
小密圈:开发者思维

相关文章

  • 【移动端】百度地图之历史轨迹回放

    官方demo本身是有历史轨迹例子的,运行起来也是非常666的,但在此基础上扩展功能是非常操蛋的。在此还耽误了整整两...

  • 移动端调用手机电话功能以及百度地图

    移动端调用手机电话功能 移动端调用百度地图 html js

  • 微信小程序地图聚合以及轨迹回放

    公司项目需要实现小程序地图的聚合以及轨迹回放,效果要与PC端一直。其中,轨迹回放还需要包含开始、暂停、结束三个按钮...

  • iOS Apps

    信息 微信 //移动端第一 App; 手机百度 //移动端搜索入口,百度浏览器; 百度地图 //除 Google ...

  • iOS 百度地图轨迹回放

    我上次说的设置大头针的图片的方法,设置完了是不是发现图片位置不对?然后又没法微调位置对不对? 1.重新定义一个类继...

  • Android百度地图轨迹回放

    目前需要做这样一个需求,后台返回一堆打点数据,要求Android端实现轨迹回放功能,带动画的那种,百度了很多,没有...

  • Openlayers 实例-轨迹回放

    几年前用高德地图做过手机版的轨迹回放,准备用Openlayers来实现一个web版的轨迹回放,轨迹回放的原理相对比...

  • 高德地图之渐变轨迹回放

    在我们新版App.针对轨迹上不同速度需要用不同的颜色绘制出来.单纯的绘制渐变色.高德地图SDK已经提供了相应的Ap...

  • 地图瓦片制作

    百度地图切图工具只能切<=18级别的瓦片,但是百度移动端地图已经到21级了,所以本文主要分析地图瓦片的制作流程,以...

  • 谷歌地图轨迹回放实现

    先看效果: 在国内用到百度地图和高度地图都提供了比较好用的API接口, 用起来也顺手, 但是国外用到谷歌地图的时候...

网友评论

      本文标题:【移动端】百度地图之历史轨迹回放

      本文链接:https://www.haomeiwen.com/subject/ndikextx.html