Overland

Overland tracks your location and sends your data to a server of your choosing. The app will save data while you're offline, and send it to the server later in batches.

Highly configurable tracking settings for optimal control. Choose between getting highly detailed track logs (and using tons of battery in the process), or tracking only significant movements allowing you to conserve battery life.

Track bike rides, runs, walks, car trips, train trips and more.

How does it work?

Overland uses the iOS CoreLocation API to collect location data from the phone. There are many limitations around handling location data on iOS, and this app tries to do the best it can to continue running as long as possible in the background.

Due to the specifics of how iOS handles location and backgrounding, it is not possible to configure the app to collect and send data at a given interval. Instead, the best you can do is "suggest" what you want from the phone, and take what you get.

For example, you can request to receive one point every 100 meters moved, and the app may or may not get data when the user has moved that much. Sometimes you'll get more, sometimes less.

Servers

The app sends data to an HTTP endpoint of a server of your choosing. You can use an existing backend or build your own. The app works with the following servers out of the box:

Compass - a self-hosted PHP app built to save and browse data from this app

Icecondor - a service for tracking your location, sharing with friends, and setting geofence alerts

If you've written a backend that others can use, either hosted as a service or something they can install, please let me know and I can list it here!

API

Once you add a server endpoint in the settings, the app will begin sending you data. The requests it makes will look like the below, a JSON post body with a list of GeoJSON points in a "locations" key.