在Google Maps for Android上绘制一个跟随您的位置的路径

我正在开发一个应用程序,我需要在Google地图上绘制路径,因为位置会发生变化,显示用户的位置。 我已经尝试使用MyLocationOverlay类,我认为我可以覆盖绘制位置的方法,但我没有成功确定要覆盖的方法。 此外,每次绘制位置时,MyLocationOverlay似乎都会绘制一个新地图。 我目前正在使用ItemizedOverlay,每次位置更改时都会在列表中添加一个点。 这是有效的,当我走路时,我得到一条虚线路径,但我真的想要一条坚固的道路。 有什么建议吗?

我也看过这篇文章,但我无法让它发挥作用。 你需要一个叠加才能在地图上找到它吗?

我认为最简单的方法是对Overlay类进行子类化,然后重写draw方法。 draw方法非常开放,绘制路径不应该太难。 一个例子看起来像这样:

public class PathOverlay extends Overlay{ private List gpoints; public PathOverlay(List gpoints){ this.gpoints = gpoints; } @Override public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) { List mpoints = new ArrayList(); // Convert to a point that can be drawn on the map. for(GeoPoint g : gpoints){ Point tpoint = new Point(); mapView.getProjection().toPixels(g, tpoint); mpoints.add(tpoint); } Path path = new Path(); // Create a path from the points path.moveTo(mpoints.get(0).x, mpoints.get(0).y); for(Point p : mpoints){ path.lineTo(px, py); } Paint paint = new Paint(); paint.setARGB(255, 255, 0, 0); paint.setStyle(Style.STROKE); // Draw to the map canvas.drawPath(path,paint); return true; } } 

然后可以将此类的对象添加到MapView.getOverlays()返回的列表中以添加到地图中。