Skip to main content

Transportation Guide

Every time you ask for directions, hail a ride, or check a map, you're relying on a model of how the world's roads, rails, and waterways connect. The Overture transportation theme is such a model: a global, open dataset of traversable segments (roads, railways, ferries) and connectors (intersections) representing how people and objects travel, built from OpenStreetMap and enhanced with data from TomTom and other local and regional authoritative data sources.

The dataset is simple at its core but expressive enough to capture highway speed limits that change by time of day, one-way streets that allow buses to go the wrong way, and weight-restricted bridges with axle limits.

You might use Overture transportation data for mapping, routing, navigation, or geocoding street intersections. For the full schema details, see the reference documentation.

In this guide​

This overview covers the feature types, dataset construction, and access for the transportation theme. The deeper topics are covered in the rest of the guide:

  • Segments and connectors: The building blocks of the network. Segments are the paths; connectors are the junctions where they meet. This page covers how they combine to form a routable graph, along with orientation, heading, and how Overture decides where to split a road.
  • Linear referencing: How properties can apply to just part of a segment — say, the first 500 meters — without chopping the geometry in two. Includes calculation methods and code examples.
  • Scoping and travel modes: The rule system that makes properties conditional. A speed limit might apply only to trucks, only on weekdays, or only in the forward direction. Scoping is how all of that gets expressed.
  • Roads: The details specific to road segments — access restrictions, turn restrictions, speed limits, and more.

Dataset description​

Feature type descriptions​

The Overture transportation schema defines two feature types:

  • The segment type has a LineString geometry that represents the center-line of a path repeatedly traversed by people or objects. Segment properties describe both the physical properties (e.g. road surface and width) and non-physical properties (e.g. access restriction rules) of that path.
  • The connector type has a Point geometry that represents the physical positions where two or more segments meet. While topology is defined by the connectors field within the segment type, the connector type provides a convenient, queryable list of those connection points. Connectors do not have properties beyond geometry and the common properties required for all Overture features.

A more detailed overview of these feature types can be found in segments and connectors.

Subtypes, classes, and subclasses​

Transportation segments are divided into three subtypes: rail, water, and road. These subtypes are further divided into a variety of different classes based on usage captured in the table below.

Class and subclass feature counts
subtypeclasssubclassfeature count, September 2026
railfunicularNULL1,386
raillight_railNULL17,187
railmonorailNULL3,149
railnarrow_gaugeNULL31,309
railstandard_gaugeNULL1,478,398
railsubwayNULL56,852
railtramNULL59,263
railunknownNULL398,416
roadbridlewayNULL103,867
roadcyclewaycycle_crossing71,047
roadcyclewayNULL1,380,383
roadfootwaycrosswalk2,627,180
roadfootwaysidewalk4,288,979
roadfootwayNULL17,856,986
roadliving_streetNULL3,477,033
roadmotorwaylink671,002
roadmotorwayNULL454,676
roadpathNULL14,373,963
roadpedestrianNULL480,353
roadprimarylink512,449
roadprimaryNULL6,950,179
roadresidentialNULL128,444,839
roadsecondarylink405,348
roadsecondaryNULL11,029,944
roadservicealley1,942,090
roadservicedriveway18,472,933
roadserviceparking_aisle6,750,438
roadserviceNULL34,991,687
roadstepsNULL2,073,143
roadtertiarylink309,013
roadtertiaryNULL20,557,347
roadtrackNULL26,586,118
roadtrunklink588,446
roadtrunkNULL3,596,482
roadunclassifiedNULL30,233,197
roadunknownNULL10,750,443
waterNULLNULL29,185

Column definitions​

Column definitions for the transportation theme are generated from the schema and live in the schema reference: segment and connector.

Sources and licensing​

The transportation theme's primary source is OpenStreetMap, enhanced with commercial road data from TomTom and other local and regional authoritative sources. Because it includes OpenStreetMap data, the transportation theme is published under the ODbL license. See the licensing and attribution page for more information.

How we build the dataset​

Filtering. Duplicate nodes are removed based on location and properties, and OSM segments are filtered to the specific highway values currently in scope. The highway values in scope are:

railway, construction, cycleway, footway, living_street, motorway, motorway_link, path, pedestrian, primary, primary_link, residential, road, secondary, secondary_link, service, steps, tertiary, tertiary_link, track, trunk, trunk_link, unclassified.

Matching. TomTom roads are matched to OSM using Orbis as part of OSM ingestion. If public OSM needs updating (e.g., a road is removed or rerouted), the road must be reassigned or removed from the TomTom road, and public OSM will be updated directly.

Merging. OSM segments are merged into Orbis as part of ingestion, with ongoing integration of the TomTom legacy network.

Coverage and data quality​

Coverage. The transportation theme provides global coverage.

Quality assurance. The theme is checked and normalized against a number of quality signals, including:

  • Presence of navigational islands
  • Road name gap detection
  • Road sharp turn detection
  • Normalization of data, including dropping unrealistic outliers
  • Overlap/duplicate highway detection
  • Invalid intersection detection

Excluded by design​

The transportation theme deliberately excludes:

  • Open, navigable spaces like fields, parks, or oceans
  • Aerial paths, such as flight paths or geostationary satellite orbits
  • Paths traversed by continuous entities: oil pipelines, electric lines

Release artifacts and updates​

The transportation theme is released on a monthly cadence. Alongside the data, the following release artifacts are provided:

  • GERS registry: Transportation features are included in the GERS registry.
  • GERS IDs: Assigned to segment and connector features.
  • Bridge files: Provided.
  • Data changelog: A changelog accompanies each release.

Data access and retrieval​

Overture's transportation theme data is freely available on both Amazon S3 and Microsoft Azure Blob Storage at these locations:

providerlocation
Amazon S3
s3://overturemaps-us-west-2/release/2026-09-23.1/theme=transportation/type=segment/*
Azure Blob Storage
https://overturemapswestus2.blob.core.windows.net/release/2026-09-23.1/theme=transportation/type=segment/*

We recommend downloading only the Overture data you need. If you have a particular geographic area of interest, there are several options for using a simple bounding box to extract data and output a GeoJSON file.

First, follow the setup guide for the Python Client.

Set type to either segment or connector and simply alter the bbox value to download a particular area.

overturemaps download --bbox=12.46,41.89,12.48,41.91 -f geojson --type=segment -o rome_segments.geojson

Querying and analysis​

Querying by properties in DuckDB​

These examples use data properties to filter the data in useful ways using DuckDB.

The class column can be used to pull out subsets of the road data. Similarly, you could use subtype to select only water, rail, or road features. This example extracts only the parking_aisle features within the bounding box.

LOAD spatial; -- noqa
LOAD httpfs; -- noqa
-- Access the data on AWS in this example
SET s3_region='us-west-2';

COPY (
SELECT
*
FROM read_parquet('s3://overturemaps-us-west-2/release/2026-09-23.1/theme=transportation/type=segment/*')
WHERE
class = 'parking_aisle' AND
bbox.xmin > 13.0897 AND bbox.xmax < 13.6976 AND
bbox.ymin > 52.3100 AND bbox.ymax < 52.7086
)
TO 'berlin_parking_aisles.parquet';

Querying by properties in Athena​

Athena can allow for faster querying of the transportation layer than DuckDB given the size of the data. These examples are designed for Athena, but could be reworked for DuckDB with some tweaking.

To properly return a linear referenced feature like a speed limit, we will need to query all the possible values of the feature as the queried value may only exist on one portion of the line. In this example, we're extracting roads with any speed limit max_speed value of 27 and unit of mph using the any_match function.

This same general query would also work for querying other similar columns such as prohibited_transitions and access_restrictions.

SELECT
id,
speed_limits,
ST_GEOMFROMBINARY(geometry) AS geometry
FROM v2026_09_23_1
WHERE type = 'segment'
AND ANY_MATCH(
speed_limits,
speed_limit->speed_limit.max_speed.value = 27
AND speed_limit.max_speed.unit = 'mph'
)

Tools and libraries​

transportation-splitter​

Overture Splitter
Conceptual diagram of the splitter tool output. The numbers following 1234@ represent start_lr and end_lr values.

The transportation-spitter tool transforms Overture road data into simpler sub-segments. It will optionally divide features at each connector point and at each change of a scoped based property, depending on configuration. Depending on your needs and map stack, the resulting dataset may be easier to manipulate than the original Overture data as each segment will only have connections at either end and have one set of properties for its entire length.

Since a GERS ID will no longer be unique with this output, the resulting data will have two additional columns: start_lr and end_lr which are linear references describing which section of the original feature this new segment comes from.

Splitter example​

To help visualize this process better, here is a real-world example of a residential street in OpenStreetMap, Overture, and after being run through the splitter tool.

OpenStreetMap Splitter Example
In OpenStreetMap this residential road is represented by two different features with the same tags with feature 1 having an additional restricted access tag.

More information and feedback​

The tool requires a Spark environment to run and has been tested using Azure Databricks and AWS Glue. For setup information the transportation-spitter GitHub will contain the most up-to-date information as the tool is in active development still.

If you have feedback, questions, etc. on the tool you can create an issue on the GitHub.