我对这条折线有些困难。我已经在球形utils库中使用computeHeading方法结合两个点的位置来生成第三个点,并使用computeOffset在该方向上创建一条线。我的目标是让线条指向我正在移动的方向。目前,不是指向当前的标题,远端保持静止,近端随蓝色跟踪器移动。
public static LatLng point1, point2, point3 ;
public static LatLng navOrigin;
public static LatLng navSecPoint;
public static Polyline navigationalLine;
我创建折线并删除旧折线:
public void navPointer() {
PolylineOptions navigation = new PolylineOptions()
.add(navOrigin)
.add(navSecPoint)
.color(Color.MAGENTA);
if(navigationalLine !=null) { navigationalLine.remove(); }
else { navigationalLine = getMap().addPolyline(navigation); }
navigationalLine.remove();
navigationalLine = getMap().addPolyline(navigation);
}
然后我使用onLocationChanged来收集我的点并计算标题,然后执行navPointer():
@Override
public void onLocationChanged(Location location) {
point1 = (new LatLng(location.getLatitude() , location.getLongitude()));
point2 = (new LatLng(location.getLatitude() , location.getLongitude()));
heading = SphericalUtil.computeHeading(point1, point2);
navOrigin = (new LatLng(location.getLatitude() , location.getLongitude()));
navSecPoint = SphericalUtil.computeOffset(point2, 500, heading);
navPointer();
}
IGNORE地图标记
同样,无论我走到哪里,远端都不会移动,但折线的近端会跟踪蓝色跟踪器标记。