aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/maps/PositionAndScaleOverlay.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/maps/PositionAndScaleOverlay.java')
-rw-r--r--main/src/cgeo/geocaching/maps/PositionAndScaleOverlay.java73
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);
+ }
+}