android 百度地图轨迹回放
16lz
2021-12-04
android百度地图实现轨迹回放,就需要用PolylineOptions画线作为轨迹效果,和添加覆盖物移动就可以了
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);@Overridepublic 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();}@Overrideprotected void onPause() {mMapView.onPause();super.onPause();}@Overrideprotected void onResume() {mMapView.onResume();super.onResume();}@Overrideprotected void onDestroy() {mMapView.onDestroy();super.onDestroy();}}
更多相关文章
- Android开发遇到的问题
- android framework添加自定义服务,实现java层api调用
- Android(安卓)Service 示例
- android 选择本地图片并预览
- Android(安卓)顶部下拉刷新添加数据&& 底部上拉刷新添加数据 Scr
- Android百度地图(二):百度地图sdk显示位置点、图层绘制
- Android(安卓)4.1源码编译找不到资源文件解决办法
- 安卓学习(初)第三章(3)(《第一行代码》)
- Android—— 4.2 Vold挂载管理_mmcblk内置-双sdcard (八)