高德API实现的实时运动轨迹

Posted liyanyan665

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高德API实现的实时运动轨迹相关的知识,希望对你有一定的参考价值。

/**
* Description: <MoveCarCustomThread><br>
* Author: mxdl<br>
* Date: 2019/7/10<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public class MoveCarSmoothThread implements IMoveCar
public static final String TAG = MoveCarSmoothThread.class.getSimpleName();
private MovingPointOverlay mMovingPointOverlay;
private WeakReference<MainActivity> mActivityWeakReference;
private boolean isfirst = true;
private MOVE_STATE currMoveState = MOVE_STATE.START_STATUS;

public void setCurrMoveState(MOVE_STATE currMoveState)
this.currMoveState = currMoveState;

public MOVE_STATE getCurrMoveState()
return currMoveState;

public MoveCarSmoothThread(MainActivity activity)
mActivityWeakReference = new WeakReference<>(activity);

@Override
public void startMove(List<LatLng> latLngs)
if (latLngs == null || latLngs.size() == 0)
return;

Log.v("MYTAG","startMove start:"+Thread.currentThread().getName());
Log.v(TAG, "moveCoarseTrack start.........................................................");
long startTime = System.currentTimeMillis();
Log.v(TAG, "startTime:" + startTime);
final MainActivity mainActivity = mActivityWeakReference.get();
if (mMovingPointOverlay == null)
mMovingPointOverlay = new MovingPointOverlay(mainActivity.mAMap, mainActivity.mCarMarker);
mMovingPointOverlay.setTotalDuration(5);
mMovingPointOverlay.setMoveListener(new MovingPointOverlay.MoveListener()
@Override
public void move(double v)
if(isfirst)
isfirst = false;
Log.v("MYTAG","MoveCarSmoolthThread move start:"+Thread.currentThread().getName());

LatLng position = mMovingPointOverlay.getPosition();
mainActivity.mLatLngList.add(position);// 向轨迹集合增加轨迹点
mainActivity.mMovePolyline.setPoints(mainActivity.mLatLngList);// 轨迹画线开始

Message message = Message.obtain();
message.what = MainActivity.EventType.MapMove;
message.obj = position;
message.arg1 = (int)v;
mainActivity.mMainHandler.sendMessage(message);

);

mMovingPointOverlay.setPoints(latLngs);
mMovingPointOverlay.startSmoothMove();
long endTime = System.currentTimeMillis();
Log.v(TAG, "endTime:" + endTime);
Log.v(TAG, "moveCoarseTrack end.........................................................");

@Override
public void reStartMove()
if(mMovingPointOverlay != null)
mMovingPointOverlay.startSmoothMove();


@Override
public void pauseMove()
if(mMovingPointOverlay != null)
mMovingPointOverlay.stopMove();


@Override
public void stopMove()
if(mMovingPointOverlay != null)
mMovingPointOverlay.destroy(http://www.amjmh.com/v/BIBRGZ_558768/);
mMovingPointOverlay = null;

if(mActivityWeakReference.get() != null)
mActivityWeakReference.get().mLatLngList.clear();

以上是关于高德API实现的实时运动轨迹的主要内容,如果未能解决你的问题,请参考以下文章

移动端轨迹采集和上传->高德猎鹰轨迹服务

高德地图-轨迹回放

高德地图轨迹展示

web技术分享| 高德地图实现自定义的轨迹回放

百度地图上如何实现轨迹回放

使用Baidu地图API写一个个人移动轨迹的Android app,请问谁会呢?