Added textViews to the WorldMap to display current satellite position and range

This commit is contained in:
Arty Bishop committed 2020-01-18 12:28:24 +00:00
1 parent 6dff3d5510
commit 96939794b5
7 files changed
+79 -10

No files matched your search

@@ -26,6 +26,7 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.Fragment
@@ -49,6 +50,9 @@ class MapViewFragment : Fragment() {
private lateinit var mapFrame: FrameLayout
private lateinit var mapFab: FloatingActionButton
private lateinit var mapView: MapView
private lateinit var mapLat: TextView
private lateinit var mapLon: TextView
private lateinit var mapRng: TextView
private lateinit var predictor: PassPredictor
private lateinit var selectedSat: TLE
private lateinit var gsp: GroundStationPosition
@@ -79,6 +83,9 @@ class MapViewFragment : Fragment() {
private fun findViews(view: View) {
mapFrame = view.findViewById(R.id.map_frame)
mapFab = view.findViewById(R.id.map_fab)
mapLat = view.findViewById(R.id.map_lat)
mapLon = view.findViewById(R.id.map_lon)
mapRng = view.findViewById(R.id.map_rng)
}
private fun setupComponents() {
@@ -170,6 +177,7 @@ class MapViewFragment : Fragment() {
val currentTime = getDateFor(System.currentTimeMillis())
val orbitalPeriod = (24 * 60 / selectedSat.meanmo).toInt()
val positions = predictor.getPositions(currentTime, 60, 0, orbitalPeriod * 3)
setTextViewsToSelectedSatPos(positions[0])
drawGroundTrack(canvas, degLon, degLat, positions)
satPassList.forEach {
drawSat(canvas, degLon, degLat, it.tle, it.predictor, currentTime)
@@ -190,6 +198,18 @@ class MapViewFragment : Fragment() {
)
}
private fun setTextViewsToSelectedSatPos(position: SatPos) {
var lon = rad2Deg(position.longitude).toFloat()
val lat = rad2Deg(position.latitude).toFloat()
val rng = position.range
if (lon > 180f) lon -= 360f
mapLat.text = String.format(context.getString(R.string.pattern_value_lat), lat)
mapLon.text = String.format(context.getString(R.string.pattern_value_lon), lon)
mapRng.text = String.format(context.getString(R.string.pattern_value_rng), rng)
}
private fun drawGroundTrack(
canvas: Canvas,
degLon: Float,
@@ -170,17 +170,17 @@ class PolarViewFragment : Fragment() {
private fun setPassText() {
satPos = satPass.predictor.getSatPos(Date())
polarAzimuth.text = String.format(
context.getString(R.string.pattern_polar_azimuth),
context.getString(R.string.pattern_value_az),
rad2Deg(satPos.azimuth)
)
polarElevation.text = String.format(
context.getString(R.string.pattern_polar_elev),
context.getString(R.string.pattern_value_el),
rad2Deg(satPos.elevation)
)
polarRange.text =
String.format(context.getString(R.string.pattern_polar_range), satPos.range)
String.format(context.getString(R.string.pattern_value_rng), satPos.range)
polarAltitude.text =
String.format(context.getString(R.string.pattern_polar_alt), satPos.altitude)
String.format(context.getString(R.string.pattern_value_alt), satPos.altitude)
}
private fun drawRadarView(cvs: Canvas) {