mirror of
https://github.com/atsunatsu/Look4Sat.git
synced 2026-10-04 11:37:22 +00:00
Changes to RadarFragment's satellite data views
This commit is contained in:
1 parent
6189fb497e
commit
0c71c4db29
10 files changed
+99
-46
No files matched your search
@@ -164,7 +164,7 @@ class MapViewModel @Inject constructor(
|
||||
val osmPos = GeoPos(osmLat, osmLon)
|
||||
val qthLoc = QthConverter.positionToQth(osmPos.latitude, osmPos.longitude) ?: "-- --"
|
||||
val satData = MapData(
|
||||
satellite, satellite.data.catnum, satellite.data.name, satPos.range,
|
||||
satellite, satellite.data.catnum, satellite.data.name, satPos.distance,
|
||||
satPos.altitude, satPos.getOrbitalVelocity(), qthLoc, osmPos
|
||||
)
|
||||
_satData.postValue(satData)
|
||||
|
||||
@@ -66,7 +66,6 @@ class PassesViewModel @Inject constructor(
|
||||
viewModelScope.launch {
|
||||
_passes.postValue(DataState.Loading)
|
||||
passesProcessing?.cancelAndJoin()
|
||||
delay(3000)
|
||||
selection?.let { items -> repository.setEntriesSelection(items) }
|
||||
settings.setHoursAhead(hoursAhead)
|
||||
settings.setMinElevation(minElevation)
|
||||
|
||||
@@ -102,14 +102,14 @@ class RadarFragment : Fragment(R.layout.fragment_radar) {
|
||||
|
||||
private fun setPassText(satPass: SatPass, satPos: SatPos) {
|
||||
val timeNow = System.currentTimeMillis()
|
||||
val polarAz = getString(R.string.pat_azimuth)
|
||||
val polarEl = getString(R.string.pat_elevation)
|
||||
val polarRng = getString(R.string.pat_distance)
|
||||
val polarAlt = getString(R.string.pat_altitude)
|
||||
binding.radarAz.text = String.format(polarAz, Math.toDegrees(satPos.azimuth))
|
||||
binding.radarEl.text = String.format(polarEl, Math.toDegrees(satPos.elevation))
|
||||
binding.radarDst.text = String.format(polarRng, satPos.range)
|
||||
binding.radarAlt.text = String.format(polarAlt, satPos.altitude)
|
||||
val radarAzim = getString(R.string.radar_az_value)
|
||||
val radarElev = getString(R.string.radar_el_value)
|
||||
val radarAlt = getString(R.string.radar_alt_value)
|
||||
val radarDist = getString(R.string.radar_dist_value)
|
||||
binding.radarAzValue.text = String.format(radarAzim, Math.toDegrees(satPos.azimuth))
|
||||
binding.radarElValue.text = String.format(radarElev, Math.toDegrees(satPos.elevation))
|
||||
binding.radarAltValue.text = String.format(radarAlt, satPos.altitude)
|
||||
binding.radarDstValue.text = String.format(radarDist, satPos.distance)
|
||||
// binding.radarName.text = satPass.name
|
||||
|
||||
if (!satPass.isDeepSpace) {
|
||||
|
||||
@@ -31,8 +31,6 @@ class RadarView(context: Context) : View(context) {
|
||||
|
||||
private val defaultColor = ContextCompat.getColor(context, R.color.accent)
|
||||
private val scale = resources.displayMetrics.density
|
||||
private val radarWidth = resources.displayMetrics.widthPixels
|
||||
private val radarRadius = radarWidth * 0.48f
|
||||
private val piDiv2 = Math.PI / 2.0
|
||||
private val strokeSize = scale * 2f
|
||||
private var position: SatPos? = null
|
||||
@@ -125,12 +123,12 @@ class RadarView(context: Context) : View(context) {
|
||||
override fun onDraw(canvas: Canvas) {
|
||||
val radarWidth = width - paddingLeft - paddingRight
|
||||
val radarHeight = height - paddingTop - paddingBottom
|
||||
val radarRadius = min(width, height) * 0.49f
|
||||
val radarRadius = min(width, height) * 0.48f
|
||||
val cx = paddingLeft + radarWidth / 2f
|
||||
val cy = paddingTop + radarHeight / 2f
|
||||
|
||||
if (positions.isNotEmpty() && !isTrackCreated) {
|
||||
createPassTrajectory()
|
||||
createPassTrajectory(radarRadius)
|
||||
createPassTrajectoryArrow()
|
||||
isTrackCreated = true
|
||||
}
|
||||
@@ -146,10 +144,10 @@ class RadarView(context: Context) : View(context) {
|
||||
canvas.drawPath(trackPath, arrowPaint)
|
||||
}
|
||||
if (shouldShowBeacons) {
|
||||
drawSatellite(canvas)
|
||||
drawSatellite(canvas, radarRadius)
|
||||
}
|
||||
if (shouldShowAim) {
|
||||
drawCrosshair(canvas, azimuth, pitch)
|
||||
drawCrosshair(canvas, azimuth, pitch, radarRadius)
|
||||
}
|
||||
if (shouldShowSweep) {
|
||||
canvas.translate(-cx, -cy)
|
||||
@@ -177,7 +175,7 @@ class RadarView(context: Context) : View(context) {
|
||||
}
|
||||
}
|
||||
|
||||
private fun drawSatellite(canvas: Canvas) {
|
||||
private fun drawSatellite(canvas: Canvas, radarRadius: Float) {
|
||||
position?.let { satPos ->
|
||||
if (satPos.elevation > 0) {
|
||||
val satX = sph2CartX(satPos.azimuth, satPos.elevation, radarRadius.toDouble())
|
||||
@@ -187,7 +185,7 @@ class RadarView(context: Context) : View(context) {
|
||||
}
|
||||
}
|
||||
|
||||
private fun drawCrosshair(canvas: Canvas, azimuth: Float, pitch: Float) {
|
||||
private fun drawCrosshair(canvas: Canvas, azimuth: Float, pitch: Float, radarRadius: Float) {
|
||||
val azimuthRad = Math.toRadians(azimuth.toDouble())
|
||||
val tmpElevation = Math.toRadians(pitch.toDouble())
|
||||
val elevationRad = if (tmpElevation > 0.0) 0.0 else tmpElevation
|
||||
@@ -208,7 +206,7 @@ class RadarView(context: Context) : View(context) {
|
||||
return (radius * sin(piDiv2 - azimuth)).toFloat()
|
||||
}
|
||||
|
||||
private fun createPassTrajectory() {
|
||||
private fun createPassTrajectory(radarRadius: Float) {
|
||||
positions.forEachIndexed { index, satPos ->
|
||||
val passX = sph2CartX(satPos.azimuth, satPos.elevation, radarRadius.toDouble())
|
||||
val passY = sph2CartY(satPos.azimuth, satPos.elevation, radarRadius.toDouble())
|
||||
|
||||
Reference in new issue
Block a user