Self-hosted elevation service with Mapzen terrain data
Switch branches/tags
Nothing to show
Clone or download
Latest commit bbebf53 Oct 29, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci adds GET handling Aug 15, 2018
test fixes Aug 5, 2018
.dockerignore circle Aug 7, 2018
.gitignore init Aug 4, 2018
Dockerfile Add a GET /status 200 Sep 21, 2018
License circle and readme Aug 7, 2018 formatting Sep 26, 2018
hgt.js init Aug 4, 2018
index.js adds cors (#5) Oct 28, 2018
package.json adds cors (#5) Oct 28, 2018
tileset.js fixes Aug 5, 2018
yarn.lock adds cors (#5) Oct 28, 2018

Elevation service


Self-hosted elevation service that works with the terrain data provided by Mapzen and Amazon AWS S3. You can either pre-download the entire data on your server (ca. 200 GB) or access directly on S3 (for minimal latency from us-east-1 region).

Try it out with our hosted service:

Inspired by:

API usage

The service has a very simple API. Just post your latitude-longitude pairs as a JSON array to the service and receive an array of elevations as response. Maximum post payload is by default 700 KB (which fits roughly 10,000 points).

# > [[lat, lng], ...]
curl -d '[[51.3, 13.4], [51.4, 13.3]]' -XPOST -H 'Content-Type: application/json' http://localhost:3000
# < [ele, ...]

For one-off queries. You can also issue GET requests with latitude and longitude as query parameters.

curl 'http://localhost:3000/?lat=51.3&lng=13.4'
# < ele

Usage with pre-downloaded data

Download data (ca. 200 GB):

aws s3 cp --recursive s3://elevation-tiles-prod/skadi /path/to/data/folder

Run the docker container:

docker run --rm -v/path/to/data/folder:/app/data -p3000:3000 normanrz/elevation-service

Usage with S3-hosted data

Run the docker container:

docker run --rm -eTILE_SET_PATH=s3:// -p3000:3000 normanrz/elevation-service