Compass is a GPS tracking server that stores data in [flat files](https://github.com/aaronpk/QuartzDB).
Compass is a GPS tracking server that stores data in [flat files](https://github.com/aaronpk/QuartzDB).
![mapview](screenshot-mapview.jpg)
## Setup
## Setup
In the `compass` directory, copy `.env.example` to `.env` and fill in the details. Install the dependencies with composer.
In the `compass` directory, copy `.env.example` to `.env` and fill in the details. Install the dependencies with composer.
@ -18,11 +20,34 @@ To write to a database, make a POST request in JSON format with the following ke
`POST /api/input`
`POST /api/input`
* locations - a list of GeoJSON objects
* locations - a list of GeoJSON objects
* token - the write token for the database
* token - the write token for the database (as a query string parameter or in the post body)
The GeoJSON objects must have at least one property, "timestamp", which is can be any value that can be interpreted as a date. The object can have any additional properties you wish.
The GeoJSON objects must have at least one property, "timestamp", which is can be any value that can be interpreted as a date. The object can have any additional properties you wish.
The open source iOS [GPS Logger](https://github.com/esripdx/GPS-Logger-iOS) will send data in this format by default.
The open source iOS [GPS Logger](https://github.com/aaronpk/GPS-Logger-iOS) will send data in this format by default.
```
POST /api/input?token=XXXXXXX HTTP/1.1
Content-type: application/json
{
"locations": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-122.621, 45.535]
},
"properties": {
"timestamp": "2017-01-01T10:00:00-0700",
"horizontal_accuracy": 65
}
}
],
"token": "XXXXXXX"
}
```
### Reading
### Reading
@ -66,6 +91,7 @@ This will query the database and find the closest matching location for when you
Compass icon by Ryan Spiering from the Noun Project.
Compass icon by Ryan Spiering from the Noun Project.