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, August 2026
railfunicularNULL1,386
raillight_railNULL17,073
railmonorailNULL3,155
railnarrow_gaugeNULL31,262
railstandard_gaugeNULL1,476,435
railsubwayNULL56,612
railtramNULL59,211
railunknownNULL396,923
roadbridlewayNULL103,573
roadcyclewaycycle_crossing70,087
roadcyclewayNULL1,372,981
roadfootwaycrosswalk2,590,093
roadfootwaysidewalk4,227,421
roadfootwayNULL17,745,182
roadliving_streetNULL3,470,023
roadmotorwaylink668,688
roadmotorwayNULL454,445
roadpathNULL14,313,271
roadpedestrianNULL479,258
roadprimarylink512,230
roadprimaryNULL6,930,472
roadresidentialNULL128,200,419
roadsecondarylink404,311
roadsecondaryNULL11,006,043
roadservicealley1,919,924
roadservicedriveway18,310,942
roadserviceparking_aisle6,714,285
roadserviceNULL34,927,467
roadstepsNULL2,057,228
roadtertiarylink308,865
roadtertiaryNULL20,508,738
roadtrackNULL26,501,164
roadtrunklink587,335
roadtrunkNULL3,589,858
roadunclassifiedNULL30,208,227
roadunknownNULL10,215,653
waterNULLNULL29,138

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-08-19.0/theme=transportation/type=segment/*
Azure Blob Storage
https://overturemapswestus2.blob.core.windows.net/release/2026-08-19.0/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-08-19.0/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_08_19_0
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.