Skip to content

XCSoar/mapgen

Repository files navigation

Map generator for XCSoar

Codacy Badge

This generates maps in the xcm format for XCSoar a tactical Gliding computer.

The Maps are layered out of a multitude of sources:

  • terrain SRTM
  • topology VMAP0
  • Roads and Towns OSM
  • Waypoints CUP format
  • Airspaces OPENAIR format

Deployment and Development

Ansible

To aid development and deployment an accompaning repositorty was created: XCSoar Mapgen Ansible

The ansible-role can be played back onto a Debian system in order to deploy mapgen. An alternative is the vagrantfile in that repository which allows you to download and install a vm, including provisioning of mapgen. Docker

Container

Frontend

The frontend container contains the cherrypy based service and an nginx based reverse proxy for exposing the mapgen on port 9090 Both processes in the frontend container are started by supervisord.

Frontend produces job files that are put into a shared volume

/opt/mapgen/jobs/<jobid>.queued

Worker

This is the actual map builder, that takes the queued jobs in /opt/mapgen/jobs/jobid and starts processing all the *.queued jobs.

Volumes

These are named volumes inside your docker service.

/opt/mapgen/jobs:

This is the job directory where all jobs get stored

/opt/mapgen/data:

This directory caches all the data from the data repository. WARNING: This volume can take up a lot of space (100GB).

Ports

Port 9090

Build Variables

The Following build variables can be set during build (optional):

  1. GITURL: The git url for the mapgen sources
  2. GITBRANCH: The branch name

Building

in the current directory:

docker-compose build

or with options:

docker-compose build \
--build-arg=GITURL=https://github.com/myuser/mapgen/mapgen.git \
--build-arg=GITBRANCH=myfeature

Starting

docker-compose up -d