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> <selectionStates>
<SelectionState runConfigName="app"> <SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" /> <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"> <Target type="DEFAULT_BOOT">
<handle> <handle>
<DeviceId pluginId="LocalEmulator" identifier="path=/home/lukas/.config/.android/avd/Medium_Phone_OSS.avd" /> <DeviceId pluginId="LocalEmulator" identifier="path=/home/lukas/.config/.android/avd/Medium_Phone_OSS.avd" />
@@ -1,14 +1,28 @@
package org.pupes.mhdrunpathfinder package org.pupes.mhdrunpathfinder
import android.app.Activity import android.app.Activity
import android.graphics.drawable.Icon
import android.os.Handler import android.os.Handler
import android.os.Looper import android.os.Looper
import android.widget.Toast 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 com.google.transit.realtime.GtfsRealtime
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request 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.removeMarker
import ovh.plrapps.mapcompose.api.visibleArea
import java.net.URL import java.net.URL
@Serializable @Serializable
@@ -93,7 +107,28 @@ private fun fetchGTFSPositions(gtfsUrl: URL, api_key: String, callee: Activity)
feed.entityList.forEach { entity -> feed.entityList.forEach { entity ->
if (entity.hasVehicle()) { 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 // 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>