android百度地图3.0轨迹播放,android 百度地图轨迹回放

android百度地图实现轨迹回放,就需要用PolylineOptions画线作为轨迹效果,和添加覆盖物移动就可以了

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

package baidumapsdk.demo;

import java.util.ArrayList;

import java.util.List;

import java.util.Random;

import java.util.Timer;

import java.util.TimerTask;

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import com.baidu.mapapi.map.ArcOptions;

import com.baidu.mapapi.map.BaiduMap;

import com.baidu.mapapi.map.BitmapDescriptor;

import com.baidu.mapapi.map.BitmapDescriptorFactory;

import com.baidu.mapapi.map.CircleOptions;

import com.baidu.mapapi.map.DotOptions;

import com.baidu.mapapi.map.MapView;

import com.baidu.mapapi.map.Marker;

import com.baidu.mapapi.map.MarkerOptions;

import com.baidu.mapapi.map.OverlayOptions;

import com.baidu.mapapi.map.PolygonOptions;

import com.baidu.mapapi.map.Polyline;

import com.baidu.mapapi.map.PolylineOptions;

import com.baidu.mapapi.map.Stroke;

import com.baidu.mapapi.map.TextOptions;

import com.baidu.mapapi.model.LatLng;

/**

* 此demo用来展示如何在地图上用GraphicsOverlay添加点、线、多边形、圆 同时展示如何在地图上用TextOverlay添加文字

*

*/

public class GeometryDemo extends Activity {

// 地图相关

MapView mMapView;

BaiduMap mBaiduMap;

// UI相关

Button resetBtn;

Button clearBtn;

BitmapDescriptor bdA = BitmapDescriptorFactory

.fromResource(R.drawable.icon_marka);

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_geometry);

// 初始化地图

mMapView = (MapView) findViewById(R.id.bmapView);

mBaiduMap = mMapView.getMap();

// UI初始化

clearBtn = (Button) findViewById(R.id.button1);

resetBtn = (Button) findViewById(R.id.button2);

OnClickListener clearListener = new OnClickListener() {

public void onClick(View v) {

clearClick();

}

};

OnClickListener restListener = new OnClickListener() {

public void onClick(View v) {

//resetClick();

Refresh();

}

};

clearBtn.setOnClickListener(clearListener);

resetBtn.setOnClickListener(restListener);

// 界面加载时添加绘制图层

addCustomElementsDemo();

}

List points =null;

Polyline mMarkerPolyLine=null;

Marker mMarkerA;

public void Refresh(){

final Handler handler = new Handler(){

double x = 0.02;

public void handleMessage(Message msg) {

LatLng p1 = new LatLng(39.97923, 116.357428+x);

points.add(p1);

mMarkerPolyLine.setPoints(points);

mMarkerA.setPosition(p1);

x=x+0.02;

}

};

TimerTask task = new TimerTask(){

public void run() {

Message message = new Message();

message.what = 1;

handler.sendMessage(message);

}

};

Timer timer = new Timer(true);

timer.schedule(task,1000, 1500);

}

/**

* 添加点、线、多边形、圆、文字 aj

*/

public void addCustomElementsDemo() {

// 添加折线

LatLng p1 = new LatLng(39.97923, 116.357428);

LatLng p2 = new LatLng(39.94923, 116.397428);

/*LatLng p3 = new LatLng(39.97923, 116.437428);

LatLng p4 = new LatLng(39.95923, 116.467428);

LatLng p5 = new LatLng(39.96923, 116.487428);*/

points = new ArrayList();

points.add(p1);

points.add(p2);

/*points.add(p3);

points.add(p4);

points.add(p5);*/

OverlayOptions ooPolyline = new PolylineOptions().width(12)

.color(0xAAFF0000).points(points);

mMarkerPolyLine = (Polyline) mBaiduMap.addOverlay(ooPolyline);

OverlayOptions ooA = new MarkerOptions().position(p2).icon(bdA);

mMarkerA = (Marker) (mBaiduMap.addOverlay(ooA));

}

public void resetClick() {

// 添加绘制元素

addCustomElementsDemo();

}

public void clearClick() {

// 清除所有图层

mMapView.getMap().clear();

}

@Override

protected void onPause() {

mMapView.onPause();

super.onPause();

}

@Override

protected void onResume() {

mMapView.onResume();

super.onResume();

}

@Override

protected void onDestroy() {

mMapView.onDestroy();

super.onDestroy();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值