Skip to content

Commit

Permalink
Map scale bar: allow scaling its size opensciencemap#84
Browse files Browse the repository at this point in the history
  • Loading branch information
devemux86 committed Jul 22, 2016
1 parent b96890b commit ea36c8c
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions vtm-android/src/org/oscim/android/scalebar/DefaultMapScaleBar.java
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,13 @@ public static enum ScaleBarMode {BOTH, SINGLE}
private final Rect rect = new Rect();

public DefaultMapScaleBar(Map map) {
super(map, (int) (BITMAP_WIDTH * CanvasAdapter.dpi / 160), (int) (BITMAP_HEIGHT * CanvasAdapter.dpi / 160));
this(map, CanvasAdapter.dpi / 160);
}

public DefaultMapScaleBar(Map map, float scale) {
super(map, (int) (BITMAP_WIDTH * scale), (int) (BITMAP_HEIGHT * scale));

this.scale = CanvasAdapter.dpi / 160;
this.scale = scale;
this.scaleBarMode = ScaleBarMode.BOTH;
this.secondaryDistanceUnitAdapter = ImperialUnitAdapter.INSTANCE;

Expand Down Expand Up @@ -137,14 +141,14 @@ protected void redraw(Canvas canvas) {
lengthAndValue2 = new ScaleBarLengthAndValue(0, 0);
}

drawScaleBar(canvas, lengthAndValue.scaleBarLength, lengthAndValue2.scaleBarLength, this.paintScaleBarStroke, scale);
drawScaleBar(canvas, lengthAndValue.scaleBarLength, lengthAndValue2.scaleBarLength, this.paintScaleBar, scale);
drawScaleBar(canvas, lengthAndValue.scaleBarLength, lengthAndValue2.scaleBarLength, this.paintScaleBarStroke, this.scale);
drawScaleBar(canvas, lengthAndValue.scaleBarLength, lengthAndValue2.scaleBarLength, this.paintScaleBar, this.scale);

String scaleText1 = this.distanceUnitAdapter.getScaleText(lengthAndValue.scaleBarValue);
String scaleText2 = this.scaleBarMode == ScaleBarMode.BOTH ? this.secondaryDistanceUnitAdapter.getScaleText(lengthAndValue2.scaleBarValue) : "";

drawScaleText(canvas, scaleText1, scaleText2, this.paintScaleTextStroke, scale);
drawScaleText(canvas, scaleText1, scaleText2, this.paintScaleText, scale);
drawScaleText(canvas, scaleText1, scaleText2, this.paintScaleTextStroke, this.scale);
drawScaleText(canvas, scaleText1, scaleText2, this.paintScaleText, this.scale);
}

private void drawScaleBar(Canvas canvas, int scaleBarLength1, int scaleBarLength2, Paint paint, float scale) {
Expand Down

0 comments on commit ea36c8c

Please sign in to comment.