Knooppuntnet monitor

From OpenStreetMap Wiki
Jump to navigation Jump to search
About Planner Analysis Monitor Issues

knooppuntnet logo


What does the monitor do?

monitor icon

The main goal of the knooppuntnet website is to help with mapping hiking and cycling node networks in OpenStreetMap, and to provide a tool for planning hikes or bicyle trips over these node networks.

The monitor functionality in knooppuntnet was added to also help with the mapping of long distance routes in OpenStreetMap. It provides an analysis of end user selected long distance routes for quality assurance purposes.

Although there are a lot of similarities, this long distance route functionality can be seen as completely separate from the node network functionality in knooppuntnet. The knooppuntnet planner does not cover long distance routes.

The analysis of the long distance routes has two major parts:

1. segment analysis

2. comparison with reference

How does segment analysis work?

The original segment analysis made the assumption that the route has to go from start to finish through a sequence of ways all connected to each other forming one line between start and finish. When this sequence of ways is interrupted at one point (for example through an edit where a way that was part of the route relation is deleted) the route consists of two segments. Likewise, when there are two such interruptions, there are three segments.

In the route structure table in the details page, the fact that there are one or more interruptions is shown by two red squares interrupting the route line (similar to how non-connecting ways are shown in JOSM. Next to that, the number of segments is shown if there is more than one segment.


In the route map page, you can click the OSM Segments radio button. This shows each route segment in a different color. You can select segments in the list of segments in the sidebar, to zoom to this segment on the map.

osm segments

To inspect a gap between two segments, you can zoom/pan to the places on the map where the segment colour changes. For example, you may find that a way that has been deleted is causing the gap, or that there is an overshoot because a way belonging to the route has been merged with a way that does not belong to the route.

At the time of this writing (Dec 7th 2023), the segment analysis is still a bit naive and does not take roles on route members into account, and assumes routes to go in one direction from start to finish only. As a result of that, the segment analysis for bicycle routes (for example EuroVelo) is currently not very good and roundabouts are not processed very well. For routes with members with roles such as forward/backward, alternative, excursion, approach or connection, multiple segments will be reported although the route structure in OpenStreetMap is perfectly fine.

The segment analysis should be improved in this area in future versions of knooppuntnet.

How is the comparison with reference done?

The main idea behind the monitor functionality (and the reason for its name) is to guard (monitor) the quality of the route mapping in OpenStreetMap by comparing the actual mapping in the OpenStreetMap database with a known good state of the route.

The known good state to compare against (called reference in knooppuntnet) can be one of the following:

1. the state of the route in OSM at a given moment in the past

2. a GPX trace

The comparison algorithm determines the coordinates at every 10 meters in the reference. At each of these coordinates it tries to find a way that is part of the route within 10 meters. If such way is found, this is considered to be a match. If no way is found within 10 meters, this coordinate is marked as a mismatch. After all mismatches have been found, the adjacent coordinates are grouped together in linestrings, and each such linestring is recorded as a "deviation".

The details page shows the overall number of deviations found for the route. If the route consists of multiple relations, the route structure table has a column with the number of deviations per relation.

route structure

The map page shows a list with deviations, with their deviation distance and length, and allows to pan/zoom to specific deviations.

How to add a route group?

Within the monitor, the routes are organized in route groups. Routes that belong together are placed in the same group. The idea is to have separate groups for routes that are being maintained in OpenStreetMap by different people. There can be groups per operator or per country, or groups could be created by individual mappers who take special interest in maintaining a subset of long distance routes.

To add a new group to the monitor, the route "admin" functionality has to be switched on using the slide toggle in the top right corner.


The admin slide toggle is enabled (not greyed-out) only when you are logged in into knooppuntnet via OpenStreetMap (your OSM username is shown at the bottom of the sidebar at the left). In addition, you have to be registered as admin user in knooppuntnet itself. Send a message to vmarc to request admin access. The admin access is restricted in this way, mostly because the admin functionality has to be used responsibly. One has to be a bit careful to not get in the way of each-others work, and it would be quite easy to keep adding huge super-routes and bring the analysis server down (processing cross-continent long distance super-routes requires a lot of resources from the server).

To add a new group, click the Add group button at the bottom of the groups page. Then provide a short group name, and add a short description of the group. The group name has to be unique and have a maximum of 15 characters. Click Add group to save the new group to the knooppuntnet database.

add monitor group

To change the group name or description later, use the Update button (with the pencil icon) in Actions column in the groups page. Use the Delete button (with the garbage can icon) to remove the group.

Click the group name link in the groups table to view the list of routes in that group.

How to add a route?

From the group page, click the Add route button at the bottom to add a new route to the group.

A monitor route definition consists of 5 bits of information (5 steps):

add route

First, similar to a group, the route gets a short name and a description. The route name has to be unique within the group.

Next, the OpenStreetMap relation id for the route has to be provided:

route relation

The Verify route relation id button can be used to make sure the relation id that is entered in the Route relation id field is the one that was intended, and does exist in the knooppuntnet overpass database.

route reference type

When using a GPX trace as reference to compare the OSM route mapping against, there is the option to use a single GPX trace for the entire route, or upload separate GPX traces per sub-relation of a super-route.

When comparing against a known state of the relation in OSM, one can select to use the current state or the state of the relation at a date in the past.

Depending on which reference type was selected in step 3, step 4 can ask for further details (file to upload, reference day).

Click the Save button to save the route definition. If enough information is available, a first analysis of the route will be performed now.

How to view route analysis result details?

Click on the route name link in the route table in the group page to view a summary of the route analysis results (the route detail page). For super-routes, a table with the route structure is shown.

route details page

How to view the analysis result on a map?

Click on the map link in the route table in the group page (or the map tab in the details page) to view the route analysis result in a map.

Use the radio buttons in the top left to switch between showing deviations and route segments (if there are any).


Click on the Zoom to fit route button to zoom/pan to view the entire route.

Click on and OSM segment in the list to zoom/pan to that segment on the map.

Click on a deviation in the list to zoom/pan to the deviation on the map.

Click on the josm link to communicate to the JOSM editor.


Click on the menu button in the deviation in the deviation list to navigate to this deviation location in JOSM or the OpenStreetMap website.

Go here in JOSM

Click on the link button in the top right corner of the map to open a new webpage (iD, OpenStreetMap, Mappillary, Google, Google Sattelite) at the current map location.

monitor map link

When looking at the details of a deviation on the map, the route as defined in OpenStreetMap is displayed in yellow. A line in green is used to indicate that the route in OpenStreetMap matches the reference (GPX trace in the example below). Where the OSM route deviates from the reference, a red line is shown. The colour blue is used for the complete reference. This is not shown by default. The checkboxes in the top left can be used to show/hide the different line colours.


Click the layer button to switch between map backgrounds.

monitor map background

By default, the map background consists of vector based tiles generated on and served by the knooppuntnet server. Knooppuntnet uses its own background tiles instead of the OSM provided tiles, in order to comply with the tile usage policy. These tiles are generated about once per week. It takes about 2 days to generate the tiles for the countries supported: Netherlands, Belgium, Luxembourg, Germany, France and Spain.

So, the default background is not always completely up-to-date, and does not cover all countries that are interesting for monitoring long distance routes. This is why it is possible to switch to using OpenStreetMap provided tiles instead. This is assumed to be ok with the tile policy as the monitor functionality is intended for directly supporting mapping activity, and usage will not be heavy.

What is the update frequency?

Currently, the monitor analysis (comparison between the route relations in the OpenStreetMap database and the references) is performed every two hours (starting on the even hours).

The analysis logic was designed originally for long distance routes in Belgium, and the processing was finished in a couple of minutes. Since then, a lot of long routes have been added. At the time of this writing (Dec 7th 2023) it takes about 105 minutes to complete the analysis (769 monitored routes, more than 4350 references, more than 930000 ways, almost 300000km of routes).

In the future, the intention would be to not re-analyze all routes every two hours, but to process the minute diffs, just like is done today for the knooppuntnet node networks. This should scale better, and provide up-to-date information perhaps 10 minutes after the edit in OpenStreetMap.

Future work?

The knooppuntnet monitor functionality is still very much work in progress. Some of the work to do includes:

  • support for member roles in route relations and super route relations

Interesting links