Fix drawing distance between two fingers after map rotation
This commit is contained in:
parent
6a30233464
commit
fee84d47a7
1 changed files with 8 additions and 6 deletions
|
@ -246,21 +246,23 @@ public class RulerControlLayer extends OsmandMapLayer {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void drawTwoFingersDistance(Canvas canvas, RotatedTileBox tb, LatLon firstTouch, LatLon secondTouch, boolean nightMode) {
|
private void drawTwoFingersDistance(Canvas canvas, RotatedTileBox tb, LatLon firstTouch, LatLon secondTouch, boolean nightMode) {
|
||||||
float x1 = tb.getPixXFromLonNoRot(firstTouch.getLongitude());
|
float x1 = tb.getPixXFromLatLon(firstTouch.getLatitude(), firstTouch.getLongitude());
|
||||||
float y1 = tb.getPixYFromLatNoRot(firstTouch.getLatitude());
|
float y1 = tb.getPixYFromLatLon(firstTouch.getLatitude(), firstTouch.getLongitude());
|
||||||
float x2 = tb.getPixXFromLonNoRot(secondTouch.getLongitude());
|
float x2 = tb.getPixXFromLatLon(secondTouch.getLatitude(), secondTouch.getLongitude());
|
||||||
float y2 = tb.getPixYFromLatNoRot(secondTouch.getLatitude());
|
float y2 = tb.getPixYFromLatLon(secondTouch.getLatitude(), secondTouch.getLongitude());
|
||||||
|
|
||||||
Path path = new Path();
|
Path path = new Path();
|
||||||
path.moveTo(x1, y1);
|
path.moveTo(x1, y1);
|
||||||
path.lineTo(x2, y2);
|
path.lineTo(x2, y2);
|
||||||
|
|
||||||
|
String text = OsmAndFormatter.getFormattedDistance((float) MapUtils.getDistance(firstTouch, secondTouch), app);
|
||||||
|
|
||||||
|
canvas.rotate(-tb.getRotate(), tb.getCenterPixelX(), tb.getCenterPixelY());
|
||||||
canvas.drawPath(path, lineAttrs.paint);
|
canvas.drawPath(path, lineAttrs.paint);
|
||||||
drawFingerTouchIcon(canvas, x1, y1, nightMode);
|
drawFingerTouchIcon(canvas, x1, y1, nightMode);
|
||||||
drawFingerTouchIcon(canvas, x2, y2, nightMode);
|
drawFingerTouchIcon(canvas, x2, y2, nightMode);
|
||||||
|
|
||||||
String text = OsmAndFormatter.getFormattedDistance((float) MapUtils.getDistance(firstTouch, secondTouch), app);
|
|
||||||
drawTextOnCenterOfPath(canvas, x1, x2, path, text);
|
drawTextOnCenterOfPath(canvas, x1, x2, path, text);
|
||||||
|
canvas.rotate(tb.getRotate(), tb.getCenterPixelX(), tb.getCenterPixelY());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void drawTextOnCenterOfPath(Canvas canvas, float x1, float x2, Path path, String text) {
|
private void drawTextOnCenterOfPath(Canvas canvas, float x1, float x2, Path path, String text) {
|
||||||
|
|
Loading…
Reference in a new issue