GPX Animator
Introduction
GPX Animator generates a top-down view map video from one or more GPX files generated by most standard GPS tracking devices.
GPX Animator has a graphical user interface that works on most operating systems, but works with a pure command-line interface as well.
More information and downloadable executables can be found at https://gpx-animator.app.
Basic usage
# help
java -jar gpx-animator-x.y.z-all.jar --help
# create movie with default settings
java -jar gpx-animator-x.y.z-all.jar --input track.gpx
(where x.y.z
refers to the version of the jar you built or downloaded)
Advanced command line example
This example takes GPX file input.gpx
as input, uses Google Maps as background map, makes the background non-transparent, makes the map movable by placing a 640x640 viewport over the map, forces the video to be 120000ms (2 minutes) long, makes the dot trail 10000ms (10 seconds) long, pre-draws the full track in grey (RGB color code #808080), hides the attribution overlay, and places the default information (lat/lng, speed, time) overlay at the bottom left. Output is stored in movie.mp4
.
java -jar ./build/libs/gpx-animator-x.y.z-all.jar
--tms-url-template 'https://mt1.google.com/vt/lyrs=m&x={x}&y={y}&z={zoom}'
--background-map-visibility 1.0
--viewport-height 640 --viewport-width 640
--total-time 120000
--tail-duration 10000
--pre-draw-track --pre-draw-track-color '#808080'
--attribution-position hidden
--information-position 'bottom left'
--input input.gpx
--output movie.mp4
(where x.y.z
refers to the version of the jar you built or downloaded)
Contributors
Special thanks for all these wonderful people who had helped this project so far (emoji key):
Contributing
Good First Issues
For your first contribution to this repository, you can take a look at the issues listed here: Good first issue.
Gitpod Online IDE
You can open this project in a preconfigured Gitpod online IDE based on Theia (Visual Studio Code) and edit, run, test, debug and commit directly from your browser.
Slack Channel
There is a public Slack channel for GPX Animator available, which is hosted by the Java User Group Switzerland. If you are not already a member of this workspace, you can request a free invitation link with your email address (and nothing more) here: Join Slack Workspace.
After you have entered the Slack Workspace, join the #gpx-animator channel.
Build
GPX Animator uses the Gradle build system to build a JAR file. You do not need Gradle installed on your system. This project uses the Gradle Wrapper.
./gradlew assemble
# successful build puts .jar file in build/libs/
After a successful build, the JAR file can be found in the build/libs/
directory.
Tests can be temporarily skipped by running
./gradlew assemble -x test
Run
To run GPX Animator from source:
./gradlew run
To run GPX Animator from source with command line parameters:
./gradlew run --args="--input ./src/test/resources/gpx/bikeride.gpx --output test.mp4"
If necessary, the project will be (re)compiled.
Test
To run tests in src/test/
:
./gradlew test
Related projects
- gopro-map-sync: uses GPX Animator to synchronize a moving map video with GoPro footage.
Credits
Icons included in application and their source:
- Airplane icon made by Freepik from flaticon.
- Bicycle icon made by Freepik from flaticon.
- Bus icon made by monkik from flaticon.
- Car icon made by Smashicons from flaticon.
- Jogging icon made by Freepik from flaticon.
- Riding icon made by mynamepong from flaticon.
- Sailing icon made by Freepik from flaticon.
- Ship icon made by Freepik from flaticon.
- Tramway icon made by Freepik from flaticon.
- Train icon made by Smashicons from flaticon.
- Trekking icon made by monkik from flaticon.
- Motorcycle icon made by poorlymac using images from ducati
Sounds included in application and their source:
To create the installers, we use a free license of Install4J for open-source projects.