From 670444858cb347ffa65efb7527c3c6107758f635 Mon Sep 17 00:00:00 2001 From: atsunatsu Date: Mon, 3 Aug 2026 03:13:11 +0800 Subject: [PATCH] fix: use getElevation for elevation sampling (same function as getLeoPass) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit getFullPosition and getElevation both call calculateObs internally, but the elevation values reported by the user (-60°) suggest they may differ. Now elevation is computed via getElevation (same as getLeoPass), while getFullPosition is only used for azimuth. --- .../com/rtbishop/look4sat/feature/mutual/MutualViewModel.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/feature/mutual/src/main/java/com/rtbishop/look4sat/feature/mutual/MutualViewModel.kt b/feature/mutual/src/main/java/com/rtbishop/look4sat/feature/mutual/MutualViewModel.kt index 9b25fb58..4fbab712 100644 --- a/feature/mutual/src/main/java/com/rtbishop/look4sat/feature/mutual/MutualViewModel.kt +++ b/feature/mutual/src/main/java/com/rtbishop/look4sat/feature/mutual/MutualViewModel.kt @@ -271,10 +271,12 @@ class MutualViewModel( var tSample = refinedAos while (tSample <= refinedLos) { + // Use getElevation (same function used by getLeoPass) for elevation, + // and getFullPosition only for azimuth. + val elevA = sat.getElevation(posA, tSample) * 180.0 / PI + val elevB = sat.getElevation(posB, tSample) * 180.0 / PI val fullA = sat.getFullPosition(posA, tSample) val fullB = sat.getFullPosition(posB, tSample) - val elevA = fullA.elevation * 180.0 / PI - val elevB = fullB.elevation * 180.0 / PI if (elevA > maxElevA) maxElevA = elevA if (elevB > maxElevB) maxElevB = elevB samples.add(tSample to (elevA to elevB))