mirror of
https://github.com/atsunatsu/Look4Sat.git
synced 2026-10-02 03:15:37 +00:00
fix(map): grid-mode field center offset by -90/-180 base
Maidenhead field index 0 spans -90..-80 lat / -180..-160 lon, so the field-center must subtract those bases. Without them, entering grid mode centered a hemisphere away (OL62 -> 115N/290E instead of 25N/110E).
This commit is contained in:
1 parent
3b0874d707
commit
ab22244f86
1 file changed
+6
-2
@@ -503,10 +503,14 @@ private fun setGridMode(
|
||||
val pos = stationPosition ?: return
|
||||
val lat = pos.latitude
|
||||
val lon = pos.longitude
|
||||
// Maidenhead field indices: field 0 spans -90..-80° lat and
|
||||
// -180..-160° lon, so the field-center must be offset by those
|
||||
// bases — omitting them maps e.g. OL62's field center to
|
||||
// 115°N/290°E (an ocean a hemisphere away) instead of 25°N/110°E.
|
||||
val fieldLat = ((lat + 90.0) / 10.0).toInt().coerceIn(0, 17)
|
||||
val fieldLon = ((lon + 180.0) / 20.0).toInt().coerceIn(0, 17)
|
||||
val centerLat = fieldLat * 10.0 + 5.0
|
||||
val centerLon = fieldLon * 20.0 + 10.0
|
||||
val centerLat = fieldLat * 10.0 + 5.0 - 90.0
|
||||
val centerLon = fieldLon * 20.0 + 10.0 - 180.0
|
||||
mapView.post { mapView.controller.setCenter(GeoPoint(centerLat, centerLon)) }
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
|
||||
Reference in new issue
Block a user