1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
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.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(OverlayImpl ovlImpl) {
this.ovlImpl = ovlImpl;
positionDrawer = new PositionDrawer();
scaleDrawer = new ScaleDrawer();
}
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);
}
}
|