add vehicles

This commit is contained in:
2026-09-03 17:19:17 +02:00
parent a2c5f1aac3
commit a7f2be8a3e
3 changed files with 49 additions and 1 deletions
+1 -1
View File
@@ -4,7 +4,7 @@
<selectionStates>
<SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" />
<DropdownSelection timestamp="2026-09-02T15:28:00.985067432Z">
<DropdownSelection timestamp="2026-09-03T13:26:15.706271055Z">
<Target type="DEFAULT_BOOT">
<handle>
<DeviceId pluginId="LocalEmulator" identifier="path=/home/lukas/.config/.android/avd/Medium_Phone_OSS.avd" />
@@ -1,14 +1,28 @@
package org.pupes.mhdrunpathfinder
import android.app.Activity
import android.graphics.drawable.Icon
import android.os.Handler
import android.os.Looper
import android.widget.Toast
import androidx.compose.foundation.layout.size
import androidx.compose.material3.Icon
import androidx.compose.material3.Text
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.rotate
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
import com.google.transit.realtime.GtfsRealtime
import kotlinx.serialization.Serializable
import okhttp3.OkHttpClient
import okhttp3.Request
import ovh.plrapps.mapcompose.api.addMarker
import ovh.plrapps.mapcompose.api.hasMarker
import ovh.plrapps.mapcompose.api.moveMarker
import ovh.plrapps.mapcompose.api.removeMarker
import ovh.plrapps.mapcompose.api.visibleArea
import java.net.URL
@Serializable
@@ -93,7 +107,28 @@ private fun fetchGTFSPositions(gtfsUrl: URL, api_key: String, callee: Activity)
feed.entityList.forEach { entity ->
if (entity.hasVehicle()) {
GTFSMainHandler.post {
if(mapState.hasMarker(entity.vehicle.vehicle.id)) {
mapState.moveMarker(entity.vehicle.vehicle.id, x = longitudeToXNormalized(entity.vehicle.position.longitude.toDouble()), y = latitudeToYNormalized(entity.vehicle.position.latitude.toDouble()));
} else {
mapState.addMarker(
entity.vehicle.vehicle.id,
x = longitudeToXNormalized(entity.vehicle.position.longitude.toDouble()),
y = latitudeToYNormalized(entity.vehicle.position.latitude.toDouble()),
Offset(-0.5f, -0.5f)
) {
Icon(
painter = painterResource(id = R.drawable.mhd_icon),
contentDescription = null,
modifier = Modifier.size(14.dp).rotate(entity.vehicle.position.bearing),
tint = Color(0xFF31FF00)
)
// Text("${(gtfsRoutes.find {it.route_id == entity.tripUpdate.trip.routeId})?.route_short_name}")
}
}
}
// use vehicle
}
}
+13
View File
@@ -0,0 +1,13 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="256dp"
android:height="256dp"
android:viewportWidth="256"
android:viewportHeight="256">
<path
android:pathData="M2.98,253.02H253.02V128L128,2.98 2.98,128v125.02"
android:strokeLineJoin="round"
android:strokeWidth="5.95207"
android:fillColor="#000000"
android:strokeColor="#000000"
android:strokeLineCap="round"/>
</vector>