运动轨迹持续画法
注意的地方: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