运动轨迹持续画法

 注意的地方:1、



PolylineOptions options 传递到 aMap.addPolyline(options) options是两个list列表,所以每次 aMap.addPolyline 最好都new一个



PolylineOptions  。

2、在2D地图上连续画线始终都有锯齿。这是一个大坑,我跳进去好久好久都没起来,有一天我研究其他app发现他们的轨迹没有锯齿,发现他们是用的3D地图,于是我也将地图改成3D,至此终于跳出坑了。

LatLng lastLan,tempLan ;

 @Override
 public void onLocationChanged(AMapLocation amapLocation) {

  if (mListener != null && amapLocation != null) {
   if (amapLocation != null && amapLocation.getErrorCode() == 0) {
    mListener.onLocationChanged(amapLocation);// 显示系统小蓝点
    float accuracy = amapLocation.getAccuracy();
    // float speed = amapLocation.getSpeed();
    if (accuracy > 40)
     return;

    lon = (float) amapLocation.getLongitude();// 经度
    lat = (float) amapLocation.getLatitude();// 纬度

tempLan = new LatLng(lat, lon);

if(null=lastLan){

pointLine(tempLan );

}else{

PolylineOptions options =new PolylineOptions.visible(true).color(lineColor).width(brush)
     options.add(lastLan, lan);

aMap.addPolyline(options).setDottedLine(true);//、

lastLan=tempLan ;

}

}

 private void pointLine(LatLng latlng) {
  if (null == latlng)
   return;
  // 初始画线
  PolylineOptions polylineOptions = initOptions();
  polylineOptions.add(latlng);
  Polyline line = aMap.addPolyline(polylineOptions);// 画线
  line.setGeodesic(true);// 曲线样式
  drawStartMarker(latlng);// 标记开始位置
  
 }

但是这样画线有个不足之处,就是分段太多,画出的线条折点很多,希望有朋友指出改进方法

转载自:https://blog.csdn.net/weekendboyxw/article/details/51189423

You may also like...