// Created by plusminus on 5:29:23 PM - Mar 4, 2009 package org.androad.osm.views.overlay; import org.osmdroid.util.GeoPoint; import org.osmdroid.views.MapView; import org.osmdroid.views.overlay.Overlay; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.DashPathEffect; import android.graphics.Paint; import android.graphics.Point; public class OSMMapViewSimpleLineOverlay extends Overlay { // =========================================================== // Constants // =========================================================== // =========================================================== // Fields // =========================================================== private GeoPoint mGeoPointFrom; private GeoPoint mGeoPointTo; private Paint mPaint = new Paint(); // =========================================================== // Constructors // =========================================================== public OSMMapViewSimpleLineOverlay(final Context ctx) { this(ctx, null, null); } public OSMMapViewSimpleLineOverlay(final Context ctx, final GeoPoint pGeoPointFrom, final GeoPoint pGeoPointTo) { super(ctx); this.mGeoPointFrom = pGeoPointFrom; this.mGeoPointTo = pGeoPointTo; } // =========================================================== // Getter & Setter // =========================================================== public Paint getPaint() { return this.mPaint; } public void setPaint(final Paint pPaint) { this.mPaint = pPaint; } /** * Dashed, Red, Width=5; */ public void setPaintDashed() { this.mPaint.setPathEffect(new DashPathEffect(new float[]{10,5}, 0)); this.mPaint.setStrokeWidth(5); this.mPaint.setColor(Color.RED); this.mPaint.setAntiAlias(false); } /** * Dashed, Red, Width=5; */ public void setPaintNormal() { this.mPaint.setStrokeWidth(5); this.mPaint.setColor(Color.RED); this.mPaint.setAntiAlias(true); } public GeoPoint getFrom() { return this.mGeoPointFrom; } public void setFrom(final GeoPoint pGeoPointFrom) { this.mGeoPointFrom = pGeoPointFrom; } public GeoPoint getTo() { return this.mGeoPointTo; } public void setTo(final GeoPoint pGeoPointTo) { this.mGeoPointTo = pGeoPointTo; } // =========================================================== // Methods from SuperClass/Interfaces // =========================================================== @Override protected void draw(final Canvas c, final MapView osmv, final boolean shadow) { if(this.mGeoPointFrom != null && this.mGeoPointTo != null){ final Point from = osmv.getProjection().toMapPixels(this.mGeoPointFrom, null); final Point to = osmv.getProjection().toMapPixels(this.mGeoPointTo, null); c.drawLine(from.x, from.y, to.x, to.y, this.mPaint); } } // =========================================================== // Methods // =========================================================== // =========================================================== // Inner and Anonymous Classes // =========================================================== }