Android|Android 高德地图 Polyline 实时绘制行动轨迹

Android|Android 高德地图 Polyline 实时绘制行动轨迹
文章图片

前言 项目需求,需要做一个绘制行动轨迹的功能,因为本身项目集成的是高德地图,所以在此处,就针对高德地图来简单说一下绘制行动轨迹的功能。
使用到的功能

  • 显示地图
  • 定位
  • 轨迹
  • 实时位置信息存储
说明 实现上面的功能,可能遇到的问题,因为本文章记录的是轨迹相关功能,所以定位或地图显示相关的问题,就在此处不一一记录,如果遇到问题,可以查看官方相关文档,或者下载官方Demo。
分析及实现过程 【Android|Android 高德地图 Polyline 实时绘制行动轨迹】因为要监测地图中心位置的实时变化,在项目中“禁止地图拖动”,这样可以减少冗余数据,避免因为手动拖动地图而产生的不准确经纬度信息。
aMap.getUiSettings().setAllGesturesEnabled(false); //禁止地图可拖动
由于项目界面底部是显示的操作信息,故把地图中心位置上移了(只是因为本项目有这个需求,故才上移,无此需求,可忽略),设置指定中心位置的方法如下:
aMap.setPointToCenter(585, 520); //指定屏幕中心点
上面是对地图功能和显示等方面的一些限制,那么最终的实现代码还是要在对地图的监听上实现。实现代码如下:
//记得要生成一个Polyline 属性对象哦 //private Polyline polyline; aMap.setOnCameraChangeListener(new AMap.OnCameraChangeListener() { @Override public void onCameraChange(final CameraPosition cameraPosition) { //官方文档有更详细的说明 latLngs.add(new LatLng(cameraPosition.target.latitude,cameraPosition.target.longitude)); polyline= aMap.addPolyline(new PolylineOptions().addAll(latLngs).width(20).color(Color.argb(235, 1, 180, 247))); } @Override public void onCameraChangeFinish(final CameraPosition cameraPosition) {} });

监听有两个方法onCameraChange和onCameraChangeFinish;其中onCameraChange方法是只要移动设备在不停的移动,就会实时的调用此方法(项目需求,我此处是实时把经纬度,传递给服务进行保存);而onCameraChangeFinish是移动完成之后才会调用此方法。当然,可以根据项目需求自己选择使用。
绘制行动轨迹的代码如下:
//官方文档有更详细的说明 latLngs.add(new LatLng(cameraPosition.target.latitude,cameraPosition.target.longitude)); polyline= aMap.addPolyline(new PolylineOptions().addAll(latLngs).width(20).color(Color.argb(235, 1, 180, 247)));

demo下载地址

    推荐阅读