Categorygithub.com/kpym/gotoextr
modulepackage
0.7.2
Repository: https://github.com/kpym/gotoextr.git
Documentation: pkg.go.dev

# README

gotoextr

Small and durty program to extract GPX data from Google Takeout Location History.

Hence the name: Google Takeout Location History Extractor → gotoextr.

Usage

  1. Download your location history from Google Takeout as zip archive.
  2. Run gotoextr with the downloaded archive as argument. For example to extract data for January 1, 2023 run:
gotoextr -s 2023-01-01 takeout-20230501T000000Z-001.zip

The output will be written to the file history_2023-01-01.gpx.

You can also manually extract Records.json and use it as parameter. Once extracted this file is quite big (several hundred MB).

Help message

$ gotoextr.exe -h
gotoextr [version: x.y.z] extract history data from Google Location History.

Usage:
  gotoextr [-h] -s <start> [options] <input>

Options:
  -h --help              Show this screen.
  -s <start>             Start date in YYYY-MM-DD format
  -e <end>               End date in YYYY-MM-DD format [default: <start>]
  -a <accuracy>          Keeps only locations with accuracy less than <accuracy> meters [default: 40]
  -t <tp>                New track if coordinates have less than <tp> digits in common [default: 1]  
  -g <sp>                New segment if coordinates have less than <sp> digits in common [default: 2]
  -f <format>            Output format (gpx|kml|tcx|csv|nmea) [default: gpx]
  -o <output>            Output file name [default: history_<start>_<end>.<format>]
  <input>                Input file name (zip or json)

Examples:
  gotoextr -s 2012-01-01 -e 2012-01-31 -a 40 takeout.zip

Installation

You can download the latest binary from the releases page.

Or you can install it from source:

go install github.com/kpym/gotoextr@latest

Why?

I use my travel history to geotag my photos. I often use a tracking application to record my positions, but occasionally (often?) I forget to launch it. In this case, Google Takout (Location history) helps me by extracting my tracks in GPX format.

Inspiration

This software is strongly inspired by location-history-json-converter 🙏. But since the pyton application is rather slow, I decided to make one in go that is about 10x faster. The original application is also more complete, I only implemented the features I needed.

License

MIT

# Functions

AccuracyToHDOP converts accuracy to HDOP this conversion is only approximate there is no exact conversion from accuracy to HDOP so I use the formula: HDOP = accuracy / 4.
CRC calculates the CRC checksum for a NMEA sentence by XORing each byte between the $ and * characters.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
NMEA convert location to GPGGA and GPRMC NMEA sentences.
Read the input file and return a channel of locations.

# Structs

Location is the struct for the location data.
No description provided by the author

# Interfaces

Writer is an interface for writing GPX, CSV, KML, etc.

# Type aliases

IntString is a string that can be unmarshalled from an int This avoid number parsing.