OpenStreetMap (OSM) is a community sourced map of the world. It is free and open and is getting better and better every day. SpatialDev, Critigen’s Emerging Markets Team, has been working with OpenStreetMap data since our beginning and we are working with members of the OSM community to build tools that help with field data collection, perform analysis using OSM data and analyze how OSM can be improved to support higher order spatial functions like routing and navigation. In this post, we discuss ways to enhance OSM quality and functional capacity to support routing.
Why OSM for Routing
Use of OSM in routing applications is growing significantly in recent years, due to the free and real-time update frequency. OSM routing occurs mostly in urbanized areas where decent quality exists relative to other proprietary data sources but it is clear OSM can be enhanced for improved results.
Using the OSM Data Model to enable Routing
Data integrity enhancements for routing/navigation should tie to the OSM data model so the community at large can benefit. The OSM data model contains Geometry (Ways, Nodes), Tag(s), and Relations. Tags provide attributes to describe the geometry. Relations, used as a higher-level connection to describe the content(s) and linkage(s) across different OSM elements.
Tags that Drive OSM Data Quality
If a road network is not physically connected in data, it affects correct routing in any data source OSM or not. Research has addressed this type of network integrity detection and correction for years. However, unlike other spatial data that defined different types of features into different theme layers, OSM data is defined by Tags. OSM tags can define a Way (polyline) as a road, a ferry route, an address range, or other types of linear features. It compounds the issues related to quality more than other data sources due to the ability of improper tagging allows for a road to be changed into a walkway or something else and result in a poor routing experience (or worse).
As a high-level generalization, a Way in OSM tagged as “highway” provides the indication that this OSM Way might be a road segment or the OSM Node with the “highway” tag might be crossing point or intersection with other road network features. The OSM Wikipedia (https://wiki.openstreetmap.org/) provides extensive information related for any public user to gain understanding of tags and best practices.
Key Tip: One can use key words to search the appropriate usage and proper values for any tag.
According to the OSM Wikipedia, a Way defined as road segment should include one to more of the following tags:
• Highway tag defines the usage of an OSM Way and/or Node with different of road classes and their priority.
• Oneway tag defines if the road is bi-driectional, one-direction, or if direction can be reversed.
• Junction tag defines if the road is a roundabout or other type of junctions
• Access tag with other type of vehicle related tag (e.g., motorcar, motor-vechicle, bicycle, foot, etc.) defines what’s legit way to pass this segment (OSM Way) or location (OSM Node), which include type of transportation, time, speed, weight, and other conditions.
• Layer, Tunnel, and Bridge tag Combination capture the essence for locations of vertical crossing (different levels within the road network). Thus, if one Way crosses another Way and are not intersected, using the Layer/Tunnel/Bridge tag can represent the multiple vertical dimensions of the roadway configuration.
• The routing application mentioned here is not inclusive of tagging to enable Turn-By-Turn instructions (where the road names should be accurate). Road naming has another tagging system and schemes to support providing directions.
Why Tags Matters in OSM
The following example will provide a very high-level explanation on how bad tags affect the data quality on OSM with “two-way” roundabout.
Ideally, roundabout is one type of road configuration that should follow one-direction defined by Wikipedia. Thus, the A roundabout should be tagged as one-way only since it going through a loop in OSM as well. In the navigation, if oneway=no tag value is presented, it will be treated as bi-directional roads, and create dangerous routing conditions.
In OSM, junction=roundabout represents the Way is part of roundabout. The wrong tagging occurs when any roundabout Way has been tagged as oneway=no. https://www.openstreetmap.org/way/30699267#map=19/48.79181/-122.49059
Analyze the Problem at a Larger Scale
There are many of tools can help you to understand how serious this problem is in the larger scale. This post will demonstrate how to use Over-Pass Turbo to find “Two-Way” roundabouts. First, in the left hand panel, you can write out your query. Second, zoom into the area you are interested on (in this example is United States) and click Run
When performing the over-pass query defined as previous snapshot, you can see the problems in the entire United States.
And you can even save the results in GeoJson and bring into QGIS for further analysis!
We would like to pause our post here for now but we will have a series of the posts that explain how we enhance the map quality in OSM!