Skip to content

osmbe/road-completion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Road Completion project

Software set-up inspired by "Quality analysis for OpenStreetMap" by Matt Greene from Mapbox

Goals

OpenStreetMap (OSM) is extremly good at quickly creating a usable map. It is less good at getting to 100% finished on a specific topic. The last 2% of roads might take forever to get mapped in OpenStreetMap. This project aims to find these 2% with the help of external road data. This can be governement data or machine learned data. We then offer the missing roads as microtasks to the mapping community. This means that after we have "finished" the work, the OpenStreetMap data will be at least as complete as the reference dataset - so any trust placed in that reference can now be place in OpenStreetMap as well!

History of the project

Process

  1. Download OpenStreetMap data
  2. Convert OpenStreetMap data to GeoJSON (keeping only highway=*)
  3. Generate buffer around OpenStreetMap data
  4. Download source data
  5. Convert source data to GeoJSON (with optional filtering)
  6. Convert source data to OpenStreetMap tags
  7. Generate vector tiles from source data
  8. Download false positive from MapRoulette challenge (optional)
  9. Generate buffers around MapRoulette data (optional)
  10. Generate vector tiles from OpenStreetMap (+ MapRoulette) buffers
  11. Process difference : all the roads from the source data that are not in the OpenStreetMap (+ MapRoulette) buffers
  12. Update MapRoulette challenge with latest data (optional)

Requirements

Data

📉 Statistics about datasets process

Country Region Source MapRoulette
🇧🇪 Belgium Bruxelles/Brussel (Brussels) UrbIS-Adm Challenge
🇧🇪 Belgium Vlaanderen (Flanders) Wegenregister Challenge
🇧🇪 Belgium Wallonie (Wallonia) PICC Challenge
🇽🇰 Kosovo AKK
🇱🇺 Luxembourg TRP-VC Challenge
🇳🇱 Netherlands NWB Challenge

Replicate

If you want to run the comparison process in your country/region, you simply have to replicate one of the existing regions (for instance, Flanders) :

  • process.sh is the comparison shell script (see example)
  • filter.sql is the SQL query to filter your data (see example and usage)
  • convert.json is the tag conversion (from your data to OSM tag(s)) (see documentation and example)

You can find more documentation about the scripts here : https://github.com/osmbe/road-completion/blob/master/script/README.md

Scope

This set-up is ideal if there are relatively few missing roads. If there are whole swats of network missing in OSM, you might consider a tool like Cygnus instead.

The current matching is based on a simple buffer - so both OSM and the ref dataset need to be af high geometric quality to result in a reasonable amount of tasks. However, you are invited to create more advanced comparison processes. Next on our roadmap is adding attribute comparisons, for example to compare street names.