kopia lustrzana https://github.com/rt-bishop/Look4Sat
Added textViews to the WorldMap to display current satellite position and range
rodzic
6dff3d5510
commit
96939794b5
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/backgroundMapText" />
|
||||
<corners android:radius="8dp" />
|
||||
</shape>
|
||||
|
|
@ -21,9 +21,37 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom|start"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:srcCompat="@drawable/ic_sat_asc_right" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/map_lat"
|
||||
style="@style/MapText"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text="@string/pattern_value_lat"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/map_lon"
|
||||
style="@style/MapText"
|
||||
android:layout_marginTop="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:text="@string/pattern_value_lon"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/map_rng"
|
||||
style="@style/MapText"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:layout_marginBottom="4dp"
|
||||
android:text="@string/pattern_value_rng"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
|
@ -4,6 +4,7 @@
|
|||
<color name="themeLight">#C0C0C0</color>
|
||||
<color name="themeDark">#191919</color>
|
||||
<color name="backgroundDark">#080808</color>
|
||||
<color name="backgroundMapText">#CC000000</color>
|
||||
<color name="satTrack">#D50000</color>
|
||||
<color name="satFootprint">#FFE082</color>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -99,10 +99,12 @@
|
|||
<string name="pattern_pass_maxEl">MaxEl: %.1f°</string>
|
||||
<string name="pattern_pass_azimuth">Az: %2d° -> %2d°</string>
|
||||
|
||||
<string name="pattern_polar_azimuth">Azimuth: %.1f°</string>
|
||||
<string name="pattern_polar_elev">Elevation: %.1f°</string>
|
||||
<string name="pattern_polar_range">Range: %.0f km</string>
|
||||
<string name="pattern_polar_alt">Altitude: %.0f km</string>
|
||||
<string name="pattern_value_az">Az: %.1f°</string>
|
||||
<string name="pattern_value_el">El: %.1f°</string>
|
||||
<string name="pattern_value_lat">Lat: %.1f°</string>
|
||||
<string name="pattern_value_lon">Lon: %.1f°</string>
|
||||
<string name="pattern_value_rng">Rng: %.0f km</string>
|
||||
<string name="pattern_value_alt">Alt: %.0f km</string>
|
||||
|
||||
<string name="pattern_trans_mode">Mode: %s</string>
|
||||
<string name="pattern_trans_invert">Inverted: %s</string>
|
||||
|
|
|
|||
|
|
@ -93,4 +93,16 @@
|
|||
<item name="android:textSize">15sp</item>
|
||||
</style>
|
||||
|
||||
<style name="MapText">
|
||||
<item name="android:layout_width">wrap_content</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:textColor">@color/themeAccent</item>
|
||||
<item name="android:background">@drawable/bg_round_borders</item>
|
||||
<item name="android:textSize">15sp</item>
|
||||
<item name="android:paddingStart">6dp</item>
|
||||
<item name="android:paddingEnd">6dp</item>
|
||||
<item name="android:paddingTop">2dp</item>
|
||||
<item name="android:paddingBottom">2dp</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue