I use this code: public class PolylineOverlay extends Overlay { private ArrayList<GeoPoint> polyline; // Contains set of points to be connected. private Paint pathPaint = null; // Paint tool that is used to draw on the map canvas.
public PolylineOverlay(ArrayList<GeoPoint> polyline, int color) { this.polyline = new ArrayList<GeoPoint>(polyline); this.pathPaint = new Paint(); this.pathPaint.setAntiAlias(true); this.pathPaint.setStrokeWidth(4); this.pathPaint.setColor(color); this.pathPaint.setAlpha(120); this.pathPaint.setStyle(Paint.Style.STROKE); } @Override public void draw(Canvas canvas, MapView mView, boolean shadow) { if(!shadow) { if(polyline != null) { Projection projection = mView.getProjection(); Path routePath = new Path(); Point prevPoint = null; //Add each point to the routePath. for(GeoPoint inPoint : polyline) { Point outPoint = null; outPoint = projection.toPixels(inPoint, outPoint); if(polyline.indexOf(inPoint) == 0) routePath.moveTo(outPoint.x, outPoint.y); else { if(isOnePointVisible(prevPoint, outPoint, mView)) { routePath.moveTo(prevPoint.x, prevPoint.y); routePath.lineTo(outPoint.x, outPoint.y); } } prevPoint = outPoint; } canvas.drawPath(routePath, pathPaint); } } super.draw(canvas, mView, shadow); } private boolean isOnePointVisible(Point point, Point point2, MapView mapView) { return (point.x > 0 && point.x < mapView.getWidth() && point.y > 0 && point.y < mapView.getHeight()) || (point2.x > 0 && point2.x < mapView.getWidth() && point2.y > 0 && point2.y < mapView.getHeight()); } @Override public boolean onTap(GeoPoint p, MapView mapView) { // Handle tapping on the overlay here return false; } } About the size with 300 or 400 GeoPoints i am already having problems... The method isOnePointVisible is an optimization i did in order to try to improve performance (seems to work fine). Thanks! On 1 jul, 00:16, TreKing <treking...@gmail.com> wrote: > On Thu, Jun 30, 2011 at 4:46 PM, Felix Garcia Lainez < > > fgarcialai...@gmail.com> wrote: > > On this method i iterate over an array of GeoPoints and using a canvas y > > connect all points. > > What's your actual code? > > > It works fine more or less, but i am having issues when drawing long routes > > with many points. > > Define "long routes" and "many points". > > --------------------------------------------------------------------------- > ---------------------- > TreKing <http://sites.google.com/site/rezmobileapps/treking> - Chicago > transit tracking app for Android-powered devices -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en