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, July 2026
railfunicularNULL1,391
raillight_railNULL16,760
railmonorailNULL3,122
railnarrow_gaugeNULL31,162
railstandard_gaugeNULL1,473,855
railsubwayNULL56,757
railtramNULL59,567
railunknownNULL395,546
roadbridlewayNULL103,412
roadcyclewaycycle_crossing69,228
roadcyclewayNULL1,362,782
roadfootwaycrosswalk2,565,686
roadfootwaysidewalk4,182,074
roadfootwayNULL17,555,637
roadliving_streetNULL3,462,411
roadmotorwaylink666,326
roadmotorwayNULL452,796
roadpathNULL14,233,189
roadpedestrianNULL478,146
roadprimarylink511,511
roadprimaryNULL6,909,974
roadresidentialNULL127,924,491
roadsecondarylink403,804
roadsecondaryNULL10,987,290
roadservicealley1,905,804
roadservicedriveway18,183,689
roadserviceparking_aisle6,686,059
roadserviceNULL34,716,993
roadstepsNULL2,038,003
roadtertiarylink308,067
roadtertiaryNULL20,443,534
roadtrackNULL26,362,502
roadtrunklink585,420
roadtrunkNULL3,581,288
roadunclassifiedNULL30,162,788
roadunknownNULL9,762,921
waterNULLNULL28,916

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