diff options
Diffstat (limited to 'main/src/cgeo/geocaching/maps/PositionAndScaleOverlay.java')
| -rw-r--r-- | main/src/cgeo/geocaching/maps/PositionAndScaleOverlay.java | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/maps/PositionAndScaleOverlay.java b/main/src/cgeo/geocaching/maps/PositionAndScaleOverlay.java new file mode 100644 index 0000000..6b34b75 --- /dev/null +++ b/main/src/cgeo/geocaching/maps/PositionAndScaleOverlay.java @@ -0,0 +1,73 @@ +package cgeo.geocaching.maps; + +import cgeo.geocaching.maps.interfaces.GeneralOverlay; +import cgeo.geocaching.maps.interfaces.MapProjectionImpl; +import cgeo.geocaching.maps.interfaces.MapViewImpl; +import cgeo.geocaching.maps.interfaces.OverlayImpl; + +import android.app.Activity; +import android.graphics.Canvas; +import android.graphics.Point; +import android.location.Location; + +import java.util.ArrayList; + +public class PositionAndScaleOverlay implements GeneralOverlay { + private OverlayImpl ovlImpl = null; + + PositionDrawer positionDrawer = null; + ScaleDrawer scaleDrawer = null; + + public PositionAndScaleOverlay(Activity activity, OverlayImpl ovlImpl) { + this.ovlImpl = ovlImpl; + positionDrawer = new PositionDrawer(activity); + scaleDrawer = new ScaleDrawer(activity); + } + + public void setCoordinates(Location coordinatesIn) { + positionDrawer.setCoordinates(coordinatesIn); + } + + public Location getCoordinates() { + return positionDrawer.getCoordinates(); + } + + public void setHeading(float bearingNow) { + positionDrawer.setHeading(bearingNow); + } + + public float getHeading() { + return positionDrawer.getHeading(); + } + + @Override + public void drawOverlayBitmap(Canvas canvas, Point drawPosition, + MapProjectionImpl projection, byte drawZoomLevel) { + + drawInternal(canvas, projection, getOverlayImpl().getMapViewImpl()); + } + + @Override + public void draw(Canvas canvas, MapViewImpl mapView, boolean shadow) { + + drawInternal(canvas, mapView.getMapProjection(), mapView); + } + + private void drawInternal(Canvas canvas, MapProjectionImpl projection, MapViewImpl mapView) { + positionDrawer.drawPosition(canvas, projection); + scaleDrawer.drawScale(canvas, mapView); + } + + @Override + public OverlayImpl getOverlayImpl() { + return this.ovlImpl; + } + + public ArrayList<Location> getHistory() { + return positionDrawer.getHistory(); + } + + public void setHistory(ArrayList<Location> history) { + positionDrawer.setHistory(history); + } +} |
