java - 高德地图平滑移动问题

查看:555
本文介绍了java - 高德地图平滑移动问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

    public void startMove() {
    LatLngBounds.Builder b = LatLngBounds.builder();
    for (int i = 0; i < latLngs.size(); i++) {
        b.include(latLngs.get(i));
    }
    LatLngBounds bounds = b.build();
    mAMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 100));

    // 取轨迹点的第一个点 作为 平滑移动的启动
    LatLng drivePoint = latLngs.get(0);
    Pair<Integer, LatLng> pair = SpatialRelationUtil.calShortestDistancePoint(latLngs, drivePoint);
    latLngs.set(pair.first, drivePoint);
    final List<LatLng> subList = latLngs.subList(pair.first, latLngs.size());

    // 设置轨迹点
    smoothMarker.setPoints(subList);
    // 设置平滑移动的总时间  单位  秒
    smoothMarker.setTotalDuration(100);
    // 开始移动
    smoothMarker.startSmoothMove();
    // 设置移动的监听事件  返回 距终点的距离  单位 米
    smoothMarker.setMoveListener(new SmoothMoveMarker.MoveListener() {
        @Override
        public void move(final double distance) {
            
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                
                }
            });

        }
    });
}

//
我这边需要实现历史轨迹,并且显示跑的路线,线已经画好,这是启动跑起来的方法。

这边需要同时显示速度,速度拿到全部点的速度的集合了,但是无法对应起来。
有没有什么解决方法可以到某个点的时候实时显示当前的速度的回调或者方法。
另求助实时获取经纬度后如何实时地图显示的方法。 高德地图

解决方案

在 smoothMarker.setMoveListener 这个监听中可以 用到getIndex获取到当前队列的下标,所以可以根据下标获取到当前速度并设置

这篇关于java - 高德地图平滑移动问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆