From b43c0b8f3e67d986f9aceff37b38bf569ec7084a Mon Sep 17 00:00:00 2001 From: hemanggs Date: Sat, 31 May 2025 18:52:39 +0100 Subject: [PATCH] [android] display Azimuth angle from north in direction arrow view Signed-off-by: hemanggs Co-authored-by: Harry Bond --- .../widget/placepage/DirectionFragment.java | 11 ++++++++++- .../app/src/main/res/layout/fragment_direction.xml | 11 +++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/android/app/src/main/java/app/organicmaps/widget/placepage/DirectionFragment.java b/android/app/src/main/java/app/organicmaps/widget/placepage/DirectionFragment.java index 28cbf2b03..28af2112b 100644 --- a/android/app/src/main/java/app/organicmaps/widget/placepage/DirectionFragment.java +++ b/android/app/src/main/java/app/organicmaps/widget/placepage/DirectionFragment.java @@ -20,9 +20,10 @@ import app.organicmaps.location.LocationHelper; import app.organicmaps.location.LocationListener; import app.organicmaps.location.SensorHelper; import app.organicmaps.location.SensorListener; +import app.organicmaps.util.StringUtils; +import app.organicmaps.util.UiUtils; import app.organicmaps.util.Utils; import app.organicmaps.widget.ArrowView; -import app.organicmaps.util.UiUtils; public class DirectionFragment extends BaseMwmDialogFragment implements LocationListener, SensorListener @@ -33,6 +34,7 @@ public class DirectionFragment extends BaseMwmDialogFragment private TextView mTvTitle; private TextView mTvSubtitle; private TextView mTvDistance; + private TextView mTvAzimuth; private MapObject mMapObject; @@ -71,6 +73,7 @@ public class DirectionFragment extends BaseMwmDialogFragment mTvTitle = root.findViewById(R.id.tv__title); mTvSubtitle = root.findViewById(R.id.tv__subtitle); mTvDistance = root.findViewById(R.id.tv__straight_distance); + mTvAzimuth = root.findViewById(R.id.tv__azimuth); UiUtils.waitLayout(mTvTitle, () -> { final int height = mTvTitle.getHeight(); @@ -144,6 +147,12 @@ public class DirectionFragment extends BaseMwmDialogFragment last.getLatitude(), last.getLongitude(), north); if (da.getAzimuth() >= 0) + { mAvDirection.setAzimuth(da.getAzimuth()); + final DistanceAndAzimut daAbs = Framework.nativeGetDistanceAndAzimuthFromLatLon( + mMapObject.getLat(), mMapObject.getLon(), + last.getLatitude(), last.getLongitude(), 0.0); + mTvAzimuth.setText(StringUtils.formatUsingUsLocale("%.0f°", Math.toDegrees(daAbs.getAzimuth()))); + } } } diff --git a/android/app/src/main/res/layout/fragment_direction.xml b/android/app/src/main/res/layout/fragment_direction.xml index ab2aa0e5c..1be4b79da 100644 --- a/android/app/src/main/res/layout/fragment_direction.xml +++ b/android/app/src/main/res/layout/fragment_direction.xml @@ -51,4 +51,15 @@ android:layout_marginTop="@dimen/margin_direction_big" android:textSize="@dimen/text_direction_dist" tools:text="9000 km"/> + \ No newline at end of file