Pieter Vander Vennet's diary

Recent diary entries

Celebrating the 500th MapComplete-contributor

Posted by Pieter Vander Vennet on 17 April 2021 in English (English).

A bit over a year ago, I received a phone call: We would like to have some project about nature and forests, where people can like go out and add data about those. Oh, it has to be really simple to use.

Some months and some funding later, the first version of MapComplete was born. While it had a specific focus then, it has grown a lot. Today, MapComplete is a map viewer for a certain theme, where the configuration for that theme decides what features are visible with which icons. When a map feature is clicked, known information is shown and the user is invited to add more information and to add pictures.

By now, there are about 20 themes for multiple topics, such as bicycle shops and pumps, playgrounds, public bookcases and much more. And it is relatively easy to create and load your own theme.

The ease of use and flexibility has lead to a steady increase of contributors that way. Thursday 15th of april was the day the editor saw its 500’th contributor:

Cumulative contributors

These 500 contributors made over 3000 changesets. The most popular (official) themes (in 2021) have been cyclofix (with bicycle pumps, cycle repair stations and more), trees, benches, bookcases, surveillance cameras (that one had an uptick after a documentary about them in Belgium), drinking water, artworks and defibrillators.

Theme breakdown

Want to see more statistics and fancy graphs? Regularly updated stats can be found here

Give it a try yourself on, embed it in your site or make your own theme. If you have questions, get in touch via Telegram where the dev and some community members are.

And stay tuned, some more themes are in the pipeline, made by community members too.

Open Summer of Code and OpenStreetMap

Posted by Pieter Vander Vennet on 30 July 2018 in English (English).

Hello everyone,

As a coach for the Open Summer of Code in Belgium, I thought the community would be interested in reading a little about it and get inspired - along with reading how many of the teams used a map and specifically OSM.

What is the Open Summer of Code

If you have never heard about the Open Summer of Code yet, it is an awesome project. Students create an open source or open data application which a real client needs. The client -often, but not always a governmental organization- sponsors the students. During the four week program, the students get relevant workshops, gain lots of experience, have lots of networking opportunities and are exposed to other Open Source projects and ideas. This all is organized by Open Knowledge Belgium, a small but amazing organisation which furthers the use of open data in Belgium.

This year 73 (!) students participated, along with 17 coaches, making this eight edition bigger then ever. Furthermore, oSoc has been more international then ever, with lots of international students and projects and having a spinoff in Spain. This first Spanish edition had 10 students whom enjoyed it a lot. In other words, don’t hesitate to contact us. Wherever you are, you are welcome as student, coach, client of partner organization or perhaps even as organizer of your own edition.

For me personally, it was the first I participated to oSoc. I had the honor of coaching two teams, quite a challenge for someone just stepping in; but whatever challenge arose, there was always some coach with the right expertise to help out. Furthermore, with Ben Abelshausen (Xivk) and Jonathan Belien (jbelien) being coaches as well, OpenStreetMap was well represented, especially when Joost Schouppe passed by as well.

Everyone from oSoc

Maps in the projects

Lots of the projects needed a map. In the spirit of the project, we encouraged everyone to use open source and open data projects. OpenStreetMap is of course a perfect fit for this. And with so much OSM experience in the room, there was always someone to get people started with Leaflet or Overpass-turbo.

And boy, lots of projects needed a map: 10 of the 17 projects. Out of those ten projects, only one did not use OpenStreetMap. Ironically, this was one of my own projects: the project focused on visualizing sea data, thus the ESRI oceanographic map was suited better.

The other nine used OpenStreetMap in some form or another. Some used OSM as a small embedded map as extra information about some building, whereas other projects had it as a more central component; thus a map visualizing lots of data.

Ben coached another two projects. The first project, bike4brussels is a route planner for cyclists in Brussels offering many handy options, such as having a more relaxed ride, the shortest ride (which often is over bicycle-unfriendly roads), a compromise between those or a route with a bias towards the cycling network.

Ben’s other project was even more OSM-centric: the Brussels governement asked us to compare their official data with OSM. They use OSM regulary for their operations, as the official data they offer has no routable graph. In other words, the OSM toolchain is better then their own internal toolchain - but they wanted to make sure that every road and all other official data is available within OSM as well. This project indicated the growing level of trust in the project and the maturity OSM has reached over the years. We’re winning!

The developers view

In other words, lots of students worked with OSM in varying degrees - for small basic needs such as a simple map up to complex tasks such as the road completion project and route planning. However, they all agreed on one thing: OSM is very dev-friendly. This clearly shows the global effort that has been put into OSM, not only into the actual data but also into the software surrounding it - for which oSoc thanks the OSM community. Without OSM, some projects would have been more expensive or would have been totally impossible!

A great experience

All in all, oSoc was a great experience that was partly possible due to the power and awesomeness of OSM, but also thanks to the bigger open data/open source movement. The project clearly shows that an open approach works, that freedom and working together pays of in the long term.

I’d thus like to thank all of OSM for their work, the entire oSoc team (including the student, coaches, clients and organizer Dries) and invite everyone all over the world to participate next year as well to an oSoc.

Location: Tour et Taxis - Thurn en Taxis, Brussels, City of Brussels, Brussels-Capital, 1000, Belgium

Quickly adding lots of notes with OsmAnd

Posted by Pieter Vander Vennet on 16 April 2018 in English (English). Last updated on 31 December 2019.

Today, I got the question how I quickly added a ton of notes. I use OSMAND for this, with a few tweaks.


  1. Enable the ‘OSM Editing plugin’
  2. Under configure screen, enable ‘Quick action’. You find it right on top
  3. Go back to the map; you’ll notice a new button on the lower right side, just above the plus-button.
  4. Press this ‘quick action button’. A new menu pops up.
  5. Press ‘add action’ and choose ‘Add OSM Note
  6. In the following menu, make sure to enable ‘Show an interim dialog’ and press ‘apply’

Adding a note

  1. Press the quick action button
  2. An orange marker appears. Swipe the map to position the marker above the note location.
  3. Press ‘Add OSM Note’
  4. Enter the note text in the popup and press OK
  5. Your note now appears as green circle with an ‘i’ on the map
  6. Repeat for all the notes

For now, your note is not send over to but remains on your own device!

Uploading all your notes

EDIT: M!dgard figured out a way to make this step obsolete and to import them directly into JOSM. See his diary entry here

After surveying, you’ll have a ton of notes. To upload them all at once:

  1. Go to ‘My Places’
  2. Go to the third tab: ‘OSM Edits’
  3. Press the upload button in the lower left corner (pointing up)
  4. Select the notes you want to upload. If you want to upload them all, press the checkbox left of ‘your edits’
  5. Press the upload button in the upper right corner
  6. Enter your credentials and hit OK.

You can also enter your credentials with the ‘OSM Editing’ plugin settings, so that you don’t have to enter them over and over again.

Adding POI

If you are gonna add a lot of POIs with the same presets (e.g. benches, AED, …), you can also make a quick action for that. Play around!

On Sett Pavements

Posted by Pieter Vander Vennet on 14 January 2018 in English (English). Last updated on 24 July 2018.

I’m from Bruges (Belgium). You know, that famous medieval city in Belgium.

As everyone in Belgium knows, the center of Bruges is paved mostly in sett/cobblestones. Personally, I’m pretty fond of those sett pavements. They’re way nicer to see then asphalt (not to mention conrete plates), the absorb a lot of heat in the summer (cooling the city) which is released again in autumn.

But, as the bicycle is my primary means of transportation, one drawback comes to mind: they’re uncomfortable to cycle on - especially when pulling a cart. Some types of set pavement are to be avoided then - I’d rather drive 200 meters over asphalt than 100 over the big boulder. However, the smaller sett -often laid in arcs- is more comfortable to drive on and has a smaller penalty.

This implies that more information should be added to the ‘surface’-tag. In this document, I propose a few extra tags to deal with this extra information; and what kind of sett these are. These tags are used in Bruges; feel free to use them in other places as well.

All example pictures are taken by me, and may be used freely for OSM-related endeavours (e.g. wiki, tools, …).

Cobblestone vs. Sett

First things first.. What is sett stone? And what are cobblestones?

According to Wikipedia, Cobblestone is a natural building material based on cobble-sized stones, and is used for pavement roads, streets, and buildings. Sett is distinct from a cobblestone by being quarried or shaped to a regular form, whereas cobblestone is generally of a naturally occurring form.

In practice, cobblestone is often used in OSM to describe sett stones - although incorrectly. The wiki itself acknowledges this:

  • surface=cobblestone: Cobblestone paving. “Cobblestone” is used in the colloquial meaning here, and therefore includes the type of stones that would more precisely be called “setts”. (Used for around 162k ways)
  • surface=sett: Sett surface is formed from stones quarried or worked to a regular shape. In OSM, this is a subset of “cobblestone”, and it is far more common to tag these surfaces with surface=cobblestone instead. (Used for around 52k ways).

In other words, please, only use sett from now on; and use cobblestone only for when the natural form of the stones is still visible and thus results in a random pattern of laying the stones.

And then there is the even more attrocious surface=cobblestone:flattened; still in use for around 4k ways. The wiki says on this that this is neither a correct name, like sett (cobblestone is by definition not shaped into any form), nor a colloquially used name, like cobblestone. In other words, a tag that should not be used anymore and be translated to sett.


As already discussed: cobblestone is somewhat chaotic in natura, as can be seen in this image (again, from Wikipedia).


Types of sett

With these prerequisites out of the way, lets talk about the main topic of the post: sett in all its sizes and patterns.

In Bruges, there are three kinds of shapes:

  • Rectangular, often quite big (25cm*10cm)
  • Square, measuring around 10cm*10cm
  • Cube, small cubes of around 5cm

These can be laid down in various patterns, as described belowed.

Patterns of sett

Big boulder (aka ‘normal sett’)

surface=sett implies sett:pattern=interleaved and sett:type=rectangular

The first, and most common type of sett are the ‘big boulders’: the big, rectangular sett stones, in a interleaved pattern like a brick wall. As these are the most common stones, I didn’t bother to add more tagging to them.


surface=sett sett:pattern=arc implies sett:type=cube

The second most common type of sett are small cubes, in a pattern of multiple, parallell arcs. Nice to see, and not to be confused with the very similar belgian fan.

Some examples I found in Bruges:

  • Simon-Stevenplein has arcs, where a few arcs are in white cubes. Notice how those white arcs never touch each other:
  • De Burg in Bruges has arcs as well:

Belgian Fan

surface=sett sett:pattern=belgian_fan implies sett:type=cube

Even more beautifull -and extremely rare- is the belgian fan. The cubes are laid in shell-like or fan-like patterns, as can be seen in the Sint-Amandsstraat near the Markt:

This is the only street in Bruges that still has this pattern! There used to be Belgian Fan in the streets around the Simon Steven-square as well; but a recent (~10 year ago) reconstruction of the site used ‘normal’ arcs, as visible above. The other place that still has a few specs of belgian fan is one construction site as well; so it is endangered as well. Perhaps someone should complain to Unesco that we are losing some world heritage!


surface=sett sett:pattern=interleaved implies sett:type=square

Although square sett is mostly used for foothpaths, it is sometimes used for shorter streets or speed tables as well. The square sett can be used interleaved, as here:

Square without pattern tag

surface=sett sett:type=square implies sett:type=square

… or used in a straight way, as here:

Paving stones

At last a word on paving_stones: the consensus here is that these are (in general) modern, mechanically shaped to neatly fit. The can be cast from concrete, they can be natural stones that are cut in a specific shape, … For example, I consider brick roads to be a subclass of paving stones (but I’d tag it as surface=brick anyway).

The distinction with sett can be very small and subjective. For example, I have been doubting what to call the following:

In conclusion: a nice map to see

As you’ve already noticed in my previous posts, I’ve customized the routing parameters for OSMand to help with this task. It also was an excellent reason to map all the street pavements of Bruges. It was a lot of fun to do, and it helped to discover new places in Bruges; both beautiful or ugly.

The result of all this mapping can be visualized, thanks to overpass-turbo.

Location: Brugge-Centrum, Brugge, Bruges, Brugge, West Flanders, Flanders, 8000, Belgium

Tweaking the OSM-And routing engine

Posted by Pieter Vander Vennet on 8 November 2017 in English (English). Last updated on 12 January 2019.

After some experimenting and help from the Belgian OSM Community, I figured out how to tweak the parameters for the routing engine and steer the navigation process. It seemed as if the technical documentation was missing, so lets write it here.

The parameter file: routing.xml

All parameters for the routing file are stored in a single XML.

You can find this XML on the OSMAnd github. Head over there, and download it. EDIT: By now, all the documentation has been included upstream. Everything you can read here, you an also find in the github routing.xml file. This diary entry can still serve as a gentle introduction.

This document should be placed in a place where OsmAnd will find it. As I chose ‘external storage’ to store my maps (settings -> general settings -> Data Storage Folder (under miscellaneous title), adding this custom routing is easy. Plug your phone in your computer and go to the path /sdcard/Android/data/ Copy routing.xml over.

Reading the parameter file

routing.xml is actually documented quite good! Read the docs there to get some general idea.

Adding an option to a profile

The parameters are split per profile. I edited the bicycle profile, as that is what I use most (also see my previous diary entry).

Over there, add a toggle, e.g., if you want to avoid sett surfaces:

    <parameter id="avoid_sett" name="Strongly prefer asphalt and paving stones" description="Tries to route around sett and cobblestone, ideal if riding with a cycling cart" type="boolean"/>

The id is the name you’ll use in if-statements, the name is what shows up in OSMAnd. Save the file as described above and restart OsmAnd. Start navigation to somewhere. If you click the settings (the cogwheel on the bottom when starting navigation), your new parameter should show up!

Tweaking weights

Routing considers three major aspects:

  • access
  • speed
  • priority

Each of those aspects has its own section in the xml; you can’t miss them.


Access deduces if this road can be used or not. This is very hard: yes or no. If you want to create a profile to cycling with your toddler in the cart, and that toddler wakes up from the sett stones, you can add the following to avoid a condition in all cases:

   <select value="-1" t="surface" v="sett"/> -- never ever enter a set road

Of course, you might want to avoid unknown surfaces too:

   <select value="-1" /> -- Default: no access
   <select value="1" t="surface"/> -- only if a surface is known, allow access

And if you mix in the toggle, you’ll get:

   <if param="avoid_sett">
       <select value="-1" t="surface" v="sett"/>


The other aspects are tweaked similarly:

Speed is the maximal practical speed on a certain road. For example, if sett slows you down to 5 km/h; then you can tell the navigation:

    <select value="5" t="surface" v="sett">

This is relative to other speeds. The default routing takes a default speed of 14.5 for cycling, so this would be way slower.


Priority is the preference of a road. If two routes are equal, the route with the highest priority is taken. However, as I modified both speed and priority in a similar way, it is hard to state the differences.

A sample use case

This custom routing can be tailored for your needs. See my other diary entry as an example and for the routes taken.

My custom routing.xml avoiding sett can be found here; the radical hiking by Joost Schouppe is over here.

The only phone that doesn't like cobblestone

Posted by Pieter Vander Vennet on 8 November 2017 in English (English). Last updated on 24 July 2018.

Hello everyone,

The 26th of september was an OSM-meetup in Bruges. The few guys which where there - and especially Joost, must have gotten some weird and extremely contagious disease, called ‘mapperitis’. It has been the start of a growing involvement in the mapping efforts of OSM.

Falling in love

Although I’ve been using OSM as my navigation of choice for years now (prob. 5), it’s only recently I’ve actively begun mapping. Altough my first mapping were the ski routes on holiday, that was a one-off - until now.

Using streetcomplete, I’ve been surveying the surfaces of Bruges, which contains - as you guessed it, a lot of sett (aka ‘neat cobblestone’). In the meantime, I’ve been spreading that contagous mappiritis around as well - until it reached someone of the Fietsersbond. One of them had recently seen the talk by Escada and was wondering if it would be possible to map all cycling routes, their surface area and width, to test if they meet the vademecum. “Yes, this is possible” was my answer of course!

I followed by a short showcase of OSM, overpass-turbo and how easy it was to enter all this info. Although he was impressed, he was a bit scared of how much work it seemed to be - and that it is an older and not so tech-savy person didn’t help either.

That was a week ago*. By now, the north of Bruges (the center) is surface-mapped, and around 50 cycleways are measured.

*(To be honest, it was two weeks. However, I was on holiday one week, so I couldn’t map)

Routing around sett

In the mean time, I was confronted with another problem. Quite often, I’m cycling around with a cycle cart. These things are slowed down tremendously by sett stones. So I wondered, wouldn’t it be possible to tweak the OSMAnd routing to avoid those nasty cobblestones?

After a few inquirements on the community riot channel, it turned out to be possible. And not only possible, it was easy as well!

So I added an option to bicycle routing - avoid setts if possible. Not a hard ban, but if a detour is acceptable.

For example, if I want to go from my home to my favorite youth movement, the shortest route is through the city - and over cobblestones. Not that great with the cart:

Normal route

However, with tweaking the weight of sett, I got this route:


A really cool result. It seems like I have the only navigation system in the world that knows where all that cobblestone is and that actively avoids it…

Next step: promote OSM to the ‘Bruhhelingen’.

And because I want to keep mapping, I even added a mode to prefer routes where the surface key is missing… Giving the following result:


In conclusion, a very usefull and extremely fun experiment!

If you want to create your own routing, I wrote a small getting started for OSMAnd here.