import java.util.ArrayList;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Point;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.Projection;
public class Overlay_DrawPath extends Overlay
private ArrayList<GeoPoint> pathPoints;
public Overlay_DrawPath(ArrayList<GeoPoint> pathPoints)
this.pathPoints = pathPoints;
public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when)
super.draw(canvas, mapView, shadow);
Projection projection = mapView.getProjection();
Paint mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setColor(Color.MAGENTA);
mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
mPaint.setStrokeJoin(Paint.Join.ROUND);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setStrokeWidth(5);
for (int i=0 ; i<pathPoints.size()-1 ; i++)
srcGeo = pathPoints.get(i);
dstGeo = pathPoints.get(i+1);
Point srcPoint = new Point();
projection.toPixels(srcGeo, srcPoint);
Point dstPoint = new Point();
projection.toPixels(dstGeo, dstPoint);
path.moveTo(dstPoint.x, dstPoint.y);
path.lineTo(srcPoint.x, srcPoint.y);
canvas.drawPath(path, mPaint);