您的位置:首页 > 其它

安卓实现在百度地图上播放历史轨迹

2013-12-17 09:13 260 查看
我的方法是:在一个线程里,开始播放后,遍历存放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;

}

}

}

}

};

原文:http://www.oschina.net/question/992700_120084
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: