Divide and map. Now.

Jiri Vlasak

Missing Maps

  • volunteering for 3 years
  • contributing to OpenStreetMap
  • we are mapping developing countries
  • maps used by humanitarian organizations (MSF, Red Cross) and locals


  • Many dedicated mappers (usually 20 - 100)
  • Large area to map

What is the approach?

  • Divide the area to the smaller squares that a human can map
  • Let the dedicated mappers map the squares

Sounds familiar?

Some of the HOT Tasking Manager issues

  • Primary functionality first
  • Performance issues (the project architecture)
  • Project management vs. community driven
  • Closed tools used (Google disk, Slack, …)

They do it wrong

  • In my humble opinion, it may look like there are some little issues, I think.
  • I want to provide constructive critique/feedback.

Divide and map. Now.

  • Multiple repositories (explicitly splitted)
    • Server – JSON API to PostGIS database
    • Client – for mappers (number of mouse clicks to start mapping)
    • Manager – create area to map: MapSwipe Analytics, geojson.io
    • JOSM plugin – of course
    • Deploy – put the project to production
  • Gitter chat (archived, open communication channel)
    • Mappers <–> Client devs <–> Server devs
  • GitLab Issues
    • What? Why? –> How?

Damn server

  • FastAPI – asyncio REST JSON API
  • PostGIS database
  • Areas, squares, commits, users
  • Map/review square as database query
  • Split area/square written in plpgsql
  • Since for commits

Damn clients

  • Proof of concept
  • Static web page
  • Client library
  • New clients more than welcome

Damn deploy

  • change environment variables in env file for specific domain
  • docker-compose up

The damn future

  • Use by some local community of mappers
  • Community to drive the project
  • Benchmarking to HOT Tasking Manager
    • Server currently runs on 1 vCPUs, 1GB / 25GB Disk
  • Profiling <–> refactor loop