1 unstable release
0.1.0 | Mar 31, 2023 |
---|
#181 in Geospatial
63KB
1.5K
SLoC
location2gpx
GPX file generator from consolidated sources.
Visualize or manipulate your tracks with a .gpx
file from raw data in mongodb collections or CSV.
How location2gpx works
- Connect to your source and fetch all the records of provided range
- Groups all your positions by a device and route
- Each device + route will be a GPX track
- Track positions will be split by a maximum time value into GPX track segments
- In segment you have all points with elevation, speed and time
- If desired, each track segment can be simplified with the Visvalingam-Whyatt algorithm
- Your GPX file are ready
How to use
With mongodb:
cargo run -- mongo "mongodb://localhost:27017/yourdb" yourcollection "2020-01-01T00:00:00.000+00:00" "2020-12-31T00:00:00.000+00:00" /tmp/my-tracks-2020.gpx
With CSV file:
cargo run -- csv yourfile.csv "2020-01-01T00:00:00.000+00:00" "2020-12-31T00:00:00.000+00:00" /tmp/my-tracks-2020.gpx
Output will be like this sample.
How configure fields
To configurate, you need to setup a yaml file and use the --config
parameter. You can also leave your config on your $HOME with ~/.loc2gpx.yaml
.
Configuration example:
fields:
device_id: dev_id
time: dev_time
coordinates: coords
# route:
# elevation:
# speed:
segments:
vw_simplify: 0.000001 # Tolerance for Visvalingam-Whyatt simplification algorithm
max_segment_time: 300 # Max segment time(in seconds) allowed
Help messages
General:
CLI of location2gpx - Convert your raw GPS data into a GPX file
USAGE:
location2gpx <SUBCOMMAND>
OPTIONS:
-h, --help Print help information
SUBCOMMANDS:
csv Generate a GPX from a CSV file source
help Print this message or the help of the given subcommand(s)
mongo Generate a GPX from a mongodb collection source
Mongodb command:
Generate a GPX from a mongodb collection source
USAGE:
location2gpx mongo [OPTIONS] <CONNECTION> <COLLECTION> <START> <END> <DESTINATION>
ARGS:
<CONNECTION> Mongo connection string source
<COLLECTION> Mongo collection name
<START> Start time, RFC3339 format
<END> End time, RFC3339 format
<DESTINATION> GPX path file destination
OPTIONS:
--config <CONFIG> Fields and segments configuration. Default: .loc2gpx.yaml, ~/.loc2gpx.yaml
-h, --help Print help information
CSV command:
Generate a GPX from a CSV file source
USAGE:
location2gpx csv [OPTIONS] <CSV_PATH> <START> <END> <DESTINATION>
ARGS:
<CSV_PATH> CSV file source
<START> Start time, RFC3339 format
<END> End time, RFC3339 format
<DESTINATION> GPX path file destination
OPTIONS:
--config <CONFIG> Fields and segments configuration. Default: .loc2gpx.yaml, ~/.loc2gpx.yaml
-h, --help Print help information
Goals
- Generate tracks on a gpx file from a collection
- Apply a simplification algorithm on track segments
- Support devices and routes distinctions
- Support mongodb source
- Support CSV source
- Support firebird source
Dependencies
~10–23MB
~354K SLoC