From 1de56324287f5a9727e424616133dd7907e9efa5 Mon Sep 17 00:00:00 2001 From: QIU Date: Mon, 3 Aug 2026 09:14:13 +0000 Subject: [PATCH] feat: increase station coordinate precision to 5 decimals Station lat/lon was stored rounded to 4 decimals (~11 m). Bump to 5 decimals (~1.1 m), slightly better than GPS hardware accuracy without showing noise. - SettingsRepo.setStationPosition: round(4) -> round(5) - QthConverter.qthToPosition: round(4) -> round(6) so 10-char locators fully roundtrip - Update QthConverterTest expected values to 6-decimal precision --- .../look4sat/core/data/repository/SettingsRepo.kt | 4 ++-- .../rtbishop/look4sat/core/domain/utility/QthConverter.kt | 2 +- .../com/rtbishop/look4sat/core/domain/QthConverterTest.kt | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/core/data/src/main/java/com/rtbishop/look4sat/core/data/repository/SettingsRepo.kt b/core/data/src/main/java/com/rtbishop/look4sat/core/data/repository/SettingsRepo.kt index ccc34102..815fb997 100644 --- a/core/data/src/main/java/com/rtbishop/look4sat/core/data/repository/SettingsRepo.kt +++ b/core/data/src/main/java/com/rtbishop/look4sat/core/data/repository/SettingsRepo.kt @@ -213,8 +213,8 @@ class SettingsRepo( } private fun setStationPosition(latitude: Double, longitude: Double, altitude: Double, locator: String) { - val newLat = latitude.round(4) - val newLon = longitude.round(4) + val newLat = latitude.round(5) + val newLon = longitude.round(5) val newAlt = altitude.round(1) val timestamp = System.currentTimeMillis() println("Received new Position($newLat, $newLon, $newAlt) & Locator $locator") diff --git a/core/domain/src/main/java/com/rtbishop/look4sat/core/domain/utility/QthConverter.kt b/core/domain/src/main/java/com/rtbishop/look4sat/core/domain/utility/QthConverter.kt index dc34ac3e..efb21735 100644 --- a/core/domain/src/main/java/com/rtbishop/look4sat/core/domain/utility/QthConverter.kt +++ b/core/domain/src/main/java/com/rtbishop/look4sat/core/domain/utility/QthConverter.kt @@ -63,7 +63,7 @@ fun qthToPosition(locator: String): GeoPos? { latitude += 1.0 / 48.0 } } - return GeoPos(latitude.round(4), longitude.round(4)) + return GeoPos(latitude.round(6), longitude.round(6)) } /** diff --git a/core/domain/src/test/java/com/rtbishop/look4sat/core/domain/QthConverterTest.kt b/core/domain/src/test/java/com/rtbishop/look4sat/core/domain/QthConverterTest.kt index 1686a3fe..9cfecc8f 100644 --- a/core/domain/src/test/java/com/rtbishop/look4sat/core/domain/QthConverterTest.kt +++ b/core/domain/src/test/java/com/rtbishop/look4sat/core/domain/QthConverterTest.kt @@ -26,14 +26,14 @@ class QthConverterTest { @Test fun `Given valid QTH returns correct POS`() { var result = qthToPosition("io91VL39FX") - assert(result?.latitude == 51.4999 && result.longitude == -0.2231) + assert(result?.latitude == 51.499913 && result.longitude == -0.22309) result = qthToPosition("gf15vc") - assert(result?.latitude == -34.8958 && result.longitude == -56.2083) + assert(result?.latitude == -34.895833 && result.longitude == -56.208333) // 8-char locators: finer 30" x 15" cell center result = qthToPosition("io91vl47") - assert(result?.latitude == 51.4896 && result.longitude == -0.2125) + assert(result?.latitude == 51.489583 && result.longitude == -0.2125) result = qthToPosition("jn58td25") - assert(result?.latitude == 48.1479 && result.longitude == 11.6042) + assert(result?.latitude == 48.147917 && result.longitude == 11.604167) } @Test