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.
# help
java -jar gpx-animator-x.y.z.jar --help
# create movie with default settings
java -jar gpx-animator-x.y.z.jar --input track.gpx
(where x.y.z refers to the version of the jar you built or downloaded)
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-1.6.0-SNAPSHOT-all.jar
--tms-url-template 'http://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
For your first contribution to this repository, you can take a look at the issues listed here: Good first issue.
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.
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.
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
To run GPX Animator from source:
./gradlew run
If necessary, the project will be (re)compiled.
To run tests in src/test/
:
./gradlew test
- supports multiple GPX tracks with multiple track segments
- skipping idle parts
- configurable color, label, width and time offset per track
- configurable video size, fps and speedup or total video time
- background map from any public TMS server
- optional attribution and/or information block overlay
- moving map
- gopro-map-sync: uses GPX Animator to synchronize a moving map video with GoPro footage.
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.