Added some satellite info to the map overlay

This commit is contained in:
Arty Bishop committed 2020-09-19 20:19:42 +01:00
1 parent e37ac8e2ba
commit f96275a5bb
7 files changed
+63 -44

No files matched your search

@@ -110,7 +110,7 @@ class SatPassAdapter(
binding.passLeoSatId.text =
String.format(context.getString(R.string.pass_satId), satPass.tle.catnum)
binding.passLeoMaxEl.text =
String.format(context.getString(R.string.pass_maxEl), satPass.pass.maxEl)
String.format(context.getString(R.string.pat_elevation), satPass.pass.maxEl)
binding.passLeoAosAz.text =
String.format(context.getString(R.string.pass_aos_az), satPass.pass.aosAzimuth)
binding.passLeoLosAz.text =
@@ -159,6 +159,7 @@ class MapOsmFragment : Fragment(R.layout.fragment_map_osm) {
dateNow.time = System.currentTimeMillis()
binding.mapView.overlays[3] = getSatIcons(passList)
binding.mapView.overlays[2] = getSatFootprint(selectedPass)
setSatInfo(selectedPass)
binding.mapView.invalidate()
delay(3000)
}
@@ -210,19 +211,34 @@ class MapOsmFragment : Fragment(R.layout.fragment_map_osm) {
private fun setSatInfo(satPass: SatPass) {
val satPos = satPass.predictor.getSatPos(dateNow)
val satRng = satPos.range
val satAlt = satPos.altitude
val satVel = getSatVelocity(satAlt)
val satLat = Math.toDegrees(satPos.latitude).toFloat()
var satLon = Math.toDegrees(satPos.longitude).toFloat()
if (satLon > 180f) satLon -= 360f
binding.idName.text =
String.format(
mainActivity.getString(R.string.pat_osm_idName),
satPass.tle.catnum,
satPass.tle.name
)
binding.altitude.text =
String.format(mainActivity.getString(R.string.pat_altitude), satPos.altitude)
binding.distance.text =
String.format(mainActivity.getString(R.string.pat_distance), satPos.range)
binding.velocity.text =
String.format(
mainActivity.getString(R.string.pat_osm_vel),
getSatVelocity(satPos.altitude)
)
binding.latLon.text =
String.format(mainActivity.getString(R.string.pat_osm_latLon), satLat, satLon)
}
private fun getSatVelocity(satAlt: Double): Double {
val earthG = 6.674 * 10.0.pow(-11)
val earthM = 5.98 * 10.0.pow(24)
val orbitRadius = 6.37 * 10.0.pow(6) + satAlt * 10.0.pow(3)
return sqrt(earthG * earthM / orbitRadius) / 1000
val radius = 6.37 * 10.0.pow(6) + satAlt * 10.0.pow(3)
return sqrt(earthG * earthM / radius) / 1000
}
private fun getSatTrack(pass: SatPass): Overlay {