GpxPlayerDesktop is a modern desktop application built with Kotlin and Jetpack Compose for Desktop. It allows playback of .gpx track files with live location simulation, ideal for Android development and GPS testing.
- 📍 GPX file loading and map visualization
- 🛰️ Simulated playback with speed control
- 🎯 Location marker with heading orientation
- 🚗 Free-drive mode with keyboard steering and live speed/heading readouts
- 🧭 Optional map centering based on approximate IP geolocation when idle
- 📡 ADB integration to send mock locations to connected Android devices
- ☁️ Interface with GpxPlayer for Android
- 🌍 Interactive map (Leaflet.js) embedded via JavaFX WebView
- 💾 Persistent ADB path configuration
- 🖥️ Cross-platform support (Windows/Linux)
- Java 17+
- Android device with developer options enabled
adb(Android Debug Bridge) installed
./gradlew run
or build native distributions:
./gradlew packageDistributionForCurrentOS
- Click Load GPX to select a
.gpxfile. - Adjust the playback speed using the slider.
- Press Play to simulate the route on the map.
- Use Stop to cancel simulation.
- Click Free drive to enter free-drive mode (GPX playback will pause if active).
- Pan the map to the desired start point and click Set Position.
- Use the arrow keys to control the simulated vehicle:
- ↑/↓ accelerate or decelerate.
- ←/→ steer left or right.
- Click Clear position to reset the free-drive session.
When no GPX track is loaded or vehicle position is set, the map automatically centers to an approximate location based on IP geolocation (falling back to the default map center if geolocation is unavailable).
