Skip to content

gpx-animator/gpx-animator

Repository files navigation

GPX Animator

All Contributors

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 true
	  --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):

Marcus Fihlon
Marcus Fihlon

📆 🤔 💻
Martin Ždila
Martin Ždila

📆 🤔 💻
n76
n76

💻
Markus Schmidlin
Markus Schmidlin

💻
François Martin
François Martin

💻
Maebli
Maebli

💻
rindy22
rindy22

🤔 💻
Andy Oakey
Andy Oakey

💻
fgaignat
fgaignat

💻
charlysog
charlysog

🐛
waschulte
waschulte

🐛
Donato Wolfisberg
Donato Wolfisberg

💻
Gal Zahavi
Gal Zahavi

💻
poorlymac
poorlymac

💻
Antonio D Barber
Antonio D Barber

💻
herrwusel
herrwusel

🐛
Ramiro Martínez Pinilla
Ramiro Martínez Pinilla

🐛
Peter Droogers
Peter Droogers

🐛
Friso van Wieringen
Friso van Wieringen

🐛
Thomer Gil
Thomer Gil

🐛 💻
mundry
mundry

💻
Théo Chamley
Théo Chamley

💻
triskaidekafeliks
triskaidekafeliks

💻
krugerk
krugerk

🐛
peacecop kalmer:
peacecop kalmer:

🐛
rneppi
rneppi

🐛
szolnokit
szolnokit

🐛 🚇 💻
Franz Kröpfl
Franz Kröpfl

🐛
Stefan Weißwange
Stefan Weißwange

🐛
Stefano Cordio
Stefano Cordio

💻
Interactiondesigner
Interactiondesigner

🎨
Andrey N.
Andrey N.

💻
Hendrik
Hendrik

🐛 💻
FadriPestalozzi
FadriPestalozzi

💻
blacksun777
blacksun777

💻
Patrick Reinhart
Patrick Reinhart

💻
Daniel Mischler
Daniel Mischler

💻
Andrey
Andrey

💻

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.

Open in Gitpod

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

GPX Animator as Lib

if you want use GPX Animator as Lib see manual

Gradle

  1. Add the JitPack maven repository to the list of repositories: jitpack
repositories {
	....
	maven { url 'https://jitpack.io' }
}
  1. Add the dependency in dependencies block: 'com.github.gpx-animator:gpx-animator:{TAG}'
dependencies {
    ...
    implementation 'com.github.gpx-animator:gpx-animator:v1.8.2'
}

Maven

  1. Add the JitPack maven repository to the list of repositories: jitpack
<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>
  1. Add the dependency in dependencies block:
<dependency>
    <groupId>com.github.gpx-animator</groupId>
    <artifactId>gpx-animator</artifactId>
    <version>Tag</version>
</dependency>

see details jitpack.io/#gpx-animator/

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:

Sounds included in application and their source:

Test files (GPX files and images) and their source:

To create the installers, we use a free license of Install4J for open-source projects.

Install4J multi-platform installer builder