Mapbox Streets v7

Source ID:
mapbox.mapbox-streets-v7

This is an in-depth guide to the data inside the Mapbox Streets vector tile source to help with styling. For full examples of using Mapbox Streets vector tiles to create a map style, check out the default templates in Mapbox Studio.

Overview

OpenStreetMap

Mapbox Streets vector tiles are largely based on data from OpenStreetMap, a free & global source of geographic data built by volunteers. An understanding of the OSM data structure and tagging system is not neccessary to make use of Mapbox Streets vector tiles, though it’s helpful to understand some of the details.

When you publicly use styles or software that use Mapbox Streets vector tiles, you must display proper attribution.

Name fields

There are 7 different name fields for each of the label layers:

FieldDescription
nameThe name (or names) used locally for the place.
name_enEnglish (if available, otherwise same as name)
name_esSpanish (if available, otherwise same as name_en)
name_frFrench (if available, otherwise same as name_en)
name_deGerman (if available, otherwise same as name_en)
name_ruRussian (if available, otherwise same as name)
name_zhChinese* (if available, otherwise same as name)

* The name_zh field contains Mandarin using simplified Chinese characters for our custom label layers: #country_label, #state_label, and #marine_label. All other label layers are sourced from OpenStreetMap and may contain one of several dialects and either simplified or traditional Chinese characters in the name_zh field.

Boolean fields

Some fields represent a boolean condition; the value may be either true or false. To keep the vector tiles compact these fields may be stored as integers, where 0 = false and 1 = true.

Multiple geometry types

Mapnik vector tiles support multiple geometry types in the same layer. The Mapbox Streets source takes advantage of this for some layers.

A geometry in the vector tile can be one of 3 types:

  1. Point
  2. Linestring / multilinestring
  3. Polygon / multipolygon

In Mapbox Studio, you can select just one or two or all of the 3 types with the Geometry Type toggles:

Data updates

The current supported version of the Mapbox Streets vector tiles receives regular data updates as new information becomes available and existing information is improved.

LayerSourceUpdate frequency
most layersOpenStreetMap replication feedevery 5 minutes
#admincustom OpenStreetMap processingirregular schedule; every 2-6 months
#water (ocean parts)OpenStreetMap Datairregular schedule; every 2-6 months
#marine_label, #country_label, #state_labelcustom datararely, as needed

OSM IDs

OSM IDs are not stored as object properties but as object IDs within the vector tile. This means they are not available for styling via Mapbox Studio, but can still be interacted with via Mapbox GL JS and other vector tile libraries.

OpenStreetMap ID spaces are not unique across node, way, and relation object types. In order to make them unique for vector tiles, the IDs are transformed based on their OpenStreetMap object type and vector tile geometry type. IDs are multiplied by 10 and then increased by 0-4 depending on type.

OSM typeGeometry type OSM ID transform
node point id × 10 eg. 123 → 1230
way line (id × 10) + 1 eg. 123 → 1231
way polygon + polygon label points (id × 10) + 2 eg. 123 → 1232
relationline (id × 10) + 3 eg. 123 → 1233
relationpolygon + polygon label points (id × 10) + 4 eg. 123 → 1234

Much of the data in the vector tiles is merged or transformed such that OSM IDs are lost - such objects will have a osm_id of 0.

Changelog

A summary of the changes from v6:

Mapbox Streets v7 contains 10 major changes that may require reworking of your styles depending on how they’ve been constructed:

  1. The separate #bridge and #tunnel layers are gone and have been merged into #road. A new structure class field describes whether the road segment is a bridge, tunnel, ford, or none. When upgrading from v6, bridge and tunnel style layers should be pointed at the #road layer with appropriate filters on the structure field. Bridges and tunnels are not distinct from roads until zoom level 13.
  2. Major changes to the class fields have been made in the #road layer:
    • The main class has been seperated into trunk, primary, secondary, and tertiary classes.
    • The street class has been modified to include unclassified, residential, road and living_street.
    • The street_limited class no longer includes pedestrian streets or roads under construction.
    • New classes:
      • pedestrian - includes pedestrian streets, plazas, and public transportation platforms
      • construction - includes motor roads under construction (but not service roads, paths, etc)
      • track - contains tracks that were part of the service class in v6
      • ferry
    • The following class names have been unchanged: motorway, motorway_link, path, golf, major_rail, and minor_rail.
    • Class names main and driveway have been removed.
    • Classes construction, track, service, path, ferry and aerialway pull in additional type detail when it is available from OpenStreetMap as outlined in #road section.
  3. Road labels: new road classes will also apply to their corresponding labels.
  4. New possible combination of shield=us-highway with reflen=4. This may require a new sprite image. New networks added to the road_label layer’s shield field. These will require new sprite images.
  5. New layer #mountain_peak_label contains mountain peaks that were in the poi_label layer in v6. New fields elevation_m & elevation_ft contain the peak elevations in meters and feet, respectively. Values are rounded to the nearest integer. New values in the maki field: mountain, volcano.
  6. New layer #airport_label contains airports that were in the poi_label layer in v6.
  7. New layer #rail_station_label contains rail stations that were in the #poi_label layer in v6. Major changes have been made to network field values. New networks have been added and existing networks renamed for clarity. If you are using this field to style rail station icons you will need to rename existing sprite images and add new ones. See outlined below in #rail_station_label.
  8. National parks and similar parks are now in their own class national_park in the landuse_overlay layer, whereas in v6 they were part of the park class of the landuse layer.
  9. New type values have been added to the place_label layer: island (moved from poi_label), islet (moved from poi_label), archipelago, residential, and aboriginal_lands.
  10. OSM ID tranformation algorithm has changed (see previous section) and are stored as vector tile object IDs rather than standalone fields.

Additionally, v7 includes the following more specific/limited changes:

  • Landuse: class=aboriginal_lands has been added here from boundary=aboriginal_lands and boundary:type=aboriginal_lands in OSM.
  • POI labels: the name field of the poi_label layer may be null (in v6, nameless POIs were not included). Nameless POIs will have never have a maki value of marker (the generic default).
  • POI labels: adjustments to existing maki values:
    • grocery: now includes marketplaces
    • shop: now includes camera and photo shops (camera value is removed)
  • Gullies: the class=cliff features in the barrier_line layer now include natural=earth_bank (aka gully) objects from OSM.
  • Road labels: ‘Park’ is no longer abbreviated to ‘Pk’.
  • Bridges and tunnels are not distinct from roads until zoom level 13.
  • Underground buildings: the building layer includes a new underground field that is either true or false depending on whether the building is underground (eg a subway station)

Layer Reference

#landuse
buffer: 4

This layer includes polygons representing both land-use and land-cover.

It’s common for many different types of landuse/landcover to be overlapping, so the polygons in this layer are ordered by the area of their geometries to ensure smaller objects will not be obscured by larger ones. Pay attention to use of transparency when styling - the overlapping shapes can cause muddied or unexpected colors.

Classes

The main field used for styling the landuse layer is class.

ValueDescription
'aboriginal_lands'The boundary of aboriginal lands.
'agriculture'Various types of crop and farmland
'cemetery'Cemeteries and graveyards
'glacier'Glaciers or permanent ice/snow
'grass'Grasslands, meadows, fields, lawns, etc
'hospital'Hospital grounds
'industrial'Currently only includes airport areas
'park'City parks, village greens, playgrounds, national parks, nature reserves, etc
'pitch'Sports fields & courts of all types
'rock'Bare rock, scree, quarries
'sand'Sand, beaches, dunes
'school'Primary, secondary, post-secondary school grounds
'scrub'Bushes, scrub, heaths
'wood'Woods and forestry areas

#waterway
buffer: 4

The waterway layer contains classes for rivers, streams, canals, etc represented as lines. These classes can represent a wide variety of possible widths. It’s best to have your line stying biased toward the smaller end of the scales since larger rivers and canals are usually also represented by polygons in the #water layer. Also works best under #water layer.

Classes and types

The waterway layer has two fields for styling - class and type - each with similar values.

ValueDescription
'river'Everything from the Amazon down to small creeks a couple meters wide
'canal'Medium to large artificial waterway
'stream'Very small waterway, usually no wider than a meter or two
'stream_intermittent'Class only. A stream that does not always have water flowing through it.
'drain'Medium to small artificial channel for rainwater drainage, often concrete lined.
'ditch'Small artificial channel dug in the ground for rainwater drainage.

#water
buffer: 8

This is a simple polygon layer with no differentiating types or classes. Water bodies are filtered and simplified according to scale - only oceans and very large lakes are shown at the lowest zoom levels, while smaller and smaller lakes and ponds appear as you zoom in.

#aeroway
buffer: 4

The aeroway layer includes both lines and polygons representing runways, helipads, etc.

Types

The type field separates different types of aeroways for styling.

ValueDescription
'runway'Where planes take off & land
'taxiway'Where planes move between runways, gates, and hangars
'apron'Where planes park, refuel, load
'helipad'Where helicopters take off & land

#barrier_line
buffer: 4

This layer includes lines and polygons for barriers - things such as walls and fences.

Classes

ValueDescription
'cliff'The precipice of a vertical or very steep drop, gullies are included
'fence'Include various types of fence and wall barriers
'gate'Only gates that are lines or areas are included
'hedge'A line of closely spaced shrubs and tree species, which form a barrier or mark the boundary of an area
'land'Includes breakwaters and piers

Cliff data from OSM is designed such that the left-hand side of the line is the top of the cliff, and the right-hand side is the bottom.

#building
buffer: 2

Large buildings appear at zoom level 13, and all buildings are included in zoom level 14 and up.

Underground buildings

The underground field is usually false, but will be true for buildings that are underground (for example, some subway stations).

Building types

The type field lets you differentiate building parts from building outlines. Building part polygons intended primarily for 3D rendering have a value of building:part. Building outlines (covering the full footprint of a building) will have a value of building if tagged as building=yes on OpenStreetMap, otherwise the value will match the building tag from OpenStreetMap (see TagInfo for common values).

Building heights

The height field contains the height of a building or building part in meters (rounded to the nearest integer). In many cases this value is derived from the building:levels tag on OpenStreetMap - we estimate 3 meters per level if no exact height is specified.

The min_height field contains the height in meters from the ground to the bottom of a building part, for cases where the bottom of the part is not on the ground. This allows for proper extrusion rendering of things such as sky bridges and cantilevered building parts.

The extrude field is true or false depending one whether the object should be included in 3D-extrusion renderings. For example a complex building might have various building:part objects mapped with different heights, in addition to a building object representing the footprint of the entire building. Only the building:part objects are needed for 3D rendering, so the full footprint outline will have an extrude value of false.

#landuse_overlay
buffer: 8

This layer is for landuse / landcover polygons that should be drawn above the #water layer.

Classes

The main field used for styling the landuse_overlay layer is class.

ValueDescription
'national_park'Relatively large area of land set aside by a government for human recreation and enjoyment, animal and environmental protection
'wetland'Wetlands that may include vegetation (marsh, swamp, bog)
'wetland_noveg'Wetlands that probably don't contain vegetation (mud, tidal flat)

#road
buffer: 4

The roads layers are some of the most complex ones in Mapbox Streets. Separate bridge and tunnel layers are gone and have been merged into road. structure field describes whether the road segment is a bridge, tunnel, ford, or none. Bridges and tunnels are not distinct from roads until zoom level 13.

Classes

The main field used for styling the road layers is class.

ValueDescription
'motorway'High-speed, grade-separated highways
'motorway_link'Interchanges / on & off ramps
'trunk'Important roads that are not motorways.
'primary'A major highway linking large towns.
'secondary'A highway linking large towns.
'tertiary'A road linking small settlements, or the local centres of a large town or city.
'link'Contains link roads
'street'Standard unclassified, residential, road, and living_street road types
'street_limited'Streets that may have limited or no access for motor vehicles.
'pedestrian'Includes pedestrian streets, plazas, and public transportation platforms.
'construction'Includes motor roads under construction (but not service roads, paths, etc).
'track'Roads mostly for agricultural and forestry use etc.
'service'Access roads, alleys, agricultural tracks, and other services roads. Also includes parking lot aisles, public & private driveways.
'ferry'Those that serves automobiles and no or unspecified automobile service.
'path'Foot paths, cycle paths, ski trails.
'major_rail'Railways, including mainline, commuter rail, and rapid transit.
'minor_rail'Yard and service railways.
'aerialway'Ski lifts, gondolas, and other types of aerialway.
'golf'The approximate centerline of a golf course hole

One-way roads

The oneway field will have a value of either 'true' or 'false' to indicate whether the motor traffic on the road is one-way or not. If the road is one-way, traffic travels in the same direction as the linestring.

Types

The type field is the value of the road’s “primary” OpenStreetMap tag. For most roads this is the highway tag, but for aerialways it will be the aerialway tag, and for golf holes it will be the golf tag. See Taginfo for a list of used tag values. Several classes pull in additional detail when it is available from OpenStreetMap.

Possible construction class type values:

'construction:motorway' 'construction:motorway_link' 'construction:trunk' 'construction:trunk_link' 'construction:primary' 'construction:primary_link' 'construction:secondary' 'construction:secondary_link' 'construction:tertiary' 'construction:tertiary_link' 'construction:unclassifed' 'construction:residential' 'construction:road' 'construction:living_street' 'construction:pedestrian' 'construction'

Possible track class type values:

'track:grade1' 'track:grade2' 'track:grade3' 'track:grade4' 'track:grade5' 'track'

Possible service class type values:

'service:alley' 'service:emergency_access' 'service:drive_through' 'service:driveway' 'service:parking' 'service:parking_aisle' 'service'

For the path class, some custom type assignments have been made based on insight from various categorical, physical, and access tags from OpenStreetMap.

ValueDescription
'steps'aka stairs
'corridor'An indoors passageway
'sidewalk'aka 'pavement' in many places outside North America
'crossing'Usually connects sidewalk lines across a road
'piste'Ski & snowboard trails, both downhill and cross-country.
'mountain_bike'Trails used primarily or exclusively for mountain biking
'hiking'Hiking trails or otherwise rough pedestrian paths
'trail'May be suitable for either hiking or mountain biking
'cycleway'Paths primarily or exclusively for cyclists
'footway'Paths primarily or exclusively for pedestrians
'path'Unspecified or mixed-use paths
'bridleway'Equestrian trails

Possible ferry class type values:

ValueDescription
'ferry_auto'Ferry serves automobiles
'ferry'No or unspecified automobile service

Possible aerialway class type values:

ValueDescription
'aerialway:cablecar'Just one or two large cars. The cable forms a loop, but the cars do not loop around, they just move up and down on their own side.
'aerialway:gondola'Many cars on a looped cable.
'aerialway:mixed_lift'Mix of chair lifts and gondolas on the same line; may change seasonally.
'aerialway:chair_lift'Looped cable with a series of single chairs and exposed to the open air.
'aerialway:drag_lift'Includes t-bars, j-bars, platter/button lifts, and tow ropes
'aerialway:magic_carpet'Conveyor belt installed at the level of the snow, some include a canopy or tunnel.
'aerialway'Other or unspecified type of aerialway

Layers

The layer field is used to determine drawing order of overlapping road segments in the tunnel and bridge layers. 95% of values are -1, 1, or 0, and 99.9999% of values are between -5 and 5.

#admin
buffer: 4

Administrative boundary lines. These are constructed from the OSM data in such a way that there are no overlapping lines where multiple boundary areas meet.

Administrative level

The admin_level field separates different levels of boundaries, using a similar numbering scheme to OpenStreetMap.

ValueDescription
2Countries
3Some subnational regions or groupings: regions of Papua New Guinea, The Philippines, Venezuela; governorates of Lebanon; federal districts of Russia; some disputed and semi-autonomous regions.
4Most first-level subnational boundaries (states, provinces, etc.)

Disputes

The disputed field should be used to apply a dashed or otherwise distinct style to disputed boundaries. No single map of the world will ever keep everybody happy, but acknowledging disputes where they exist is an important aspect of good cartography.

Maritime boundaries

The maritime field can be used as a filter to downplay or hide maritime boundaries, which are often not shown on maps. Note that the practice of tagging maritime boundaries is not entirely consitent or complete within OSM, so some boundaries may not have this field set correctly (this mostly affects admin levels 3 & 4).

ISO 3166-1 Codes

The iso_3166_1 field contains the ISO 3166-1 alpha-2 code or codes that apply to a boundary. For subnational boundaries this will be a single code of the parent country. For international boundaries between two countries, the value will be the codes of both countries in alphabetical order, separated by a dash (-).

#country_label
buffer: 256

This layer contains points used for labeling countries. The points are placed for minimal overlap with small to medium-sized text.

Names

See Name fields in the overview for information about names and translations.

ISO 3166-1 Code

The iso_code field contains the ISO 3166-1 2-letter country code.

Administrative Code

For territories and other special entities in the countries layer, the admin_code field contains the ISO 3166-1 2-letter country code of the administering or “parent” state.

Scalerank

The scalerank field is intended to help assign different label styles based on the size and available room to label different countries. The possible values are 1 through 6.

#marine_label
buffer: 256

Points and lines for labeling major marine features such as oceans, seas, large lakes & bays.

Names

See Name fields in the overview for information about names and translations.

Labelrank & placement

The labelrank field is intended to help assign different label styles based on the size and available room to label different water bodies. The possible values are whole numbers 1 through 6.

The value of the placement field will be either point or line depending on the geometry type of the object. (You can also make this distinction with a Geometry Type filter.)

#state_label
buffer: 256

Points for labeling states and provinces. Currently only a small number of countries are included.

Names

See Name fields in the overview for information about names and translations.

Abbreviations

The abbr field contains abbreviated versions of the names suitable for labeling at lower zoom levels.

Area

The area field is the physical area of the entity in square kilometers. Use it to help filter and size your state labels at different zoom levels.

#place_label
buffer: 128

This layer contains points for labeling human settlements.

Names

See Name fields in the overview for information about names and translations.

Types

The main field for styling labels for different kinds of places is type.

ValueDescription
'city'Settlement of about 100,000 or more people.
'town'Urban or rural settlement of about 10,000-100,000 people
'village'Usually rural settlement of less than about 10,000
'hamlet'Rural settlement with a population of about 200 or fewer
'suburb'A distinct section of an urban settlement such as an annexed town, historical district, or large & important neighborhood.
'neighbourhood'A named part of a larger settlement
'island'
'islet'A very small island.
'archipelago'Collective name for a group of islands
'residential'Named residential areas, including subdivisions and apartment complexes
'aboriginal_lands'Reservations and other aboriginal lans

Capitals

The capital field allows distinct styling of labels or icons for the capitals of countries, regions, or states & provinces. The value of this field may be 2, 3, 4, 5, or 6. National capitals are 2, and 3 through 6 represent capitals of various sub-national administrative entities. These levels come from OpenStreetMap and have different meanings in different countries - see the OpenStreetMap wiki for specific details.

Scalerank

The scalerank field can be used to adjust the prominence of label styles for larger and more prominent cities. The value number from 0 through 9, where 0 is the large end of the scale (eg New York City). All places other than large cities will have a scalerank of null.

Localrank

The localrank field can be used to adjust the label density by showing fewer labels. It is a whole number greater than 0 calculated by grouping places into a 128 pixel grid at each zoom level, then assigning each place a ranking within that grid. The most important place in that 128 pixels will get a localrank of 1, the second most important is 2, and so on. Therefore to reduce the label density to 4 labels per tile, you can add the filter [localrank=1].

Label direction

The ldir field can be used as a hint for label offset directions at lower zoom levels. For places with a scalerank value set, the ldir will be a cardinal direction such as 'N', 'E', 'SW'.

#water_label
buffer: 64

This layer contains points for labeling bodies of water such as lakes and ponds.

Names

See Name fields in the overview for information about names and translations.

Area

The area field holds the area of the associated water polygon in square meters (Mercator-projected units rounded to the nearest whole number, not real-world area). You can use it to adjust label size and visibility.

#poi_label
buffer: 64

This layer is used to place icons and labels for various points of interest (POIs).

Names

See Name fields in the overview for information about names and translations.

Maki icons

The maki field is designed to make it easy to add icons to POIs using the Maki icon project, or with other icons that follow the same naming scheme.

Not all Maki icons are used, and different types of related POIs will sometimes have the same maki value (eg universities and colleges, or art supply shops and art galleries). Nameless POIs will have never have a maki value of marker (the generic default). The possible values for the maki field are listed below.

null 'airfield' 'alcohol-shop' 'amusement-park' 'aquarium' 'art-gallery' 'attraction' 'bakery' 'bank' 'bar' 'beer' 'bicycle' 'bicycle-share' 'bus' 'cafe' 'car' 'campsite' 'castle' 'cemetery' 'cinema' 'clothing-store' 'college' 'dentist' 'doctor' 'dog-park' 'drinking-water' 'embassy' 'entrance' 'fast-food' 'ferry' 'fire-station' 'fuel' 'garden' 'golf' 'grocery' 'harbor' 'heliport' 'hospital' 'ice-cream' 'information' 'laundry' 'library' 'lodging' 'monument' 'museum' 'music' 'park' 'pharmacy' 'picnic-site' 'place-of-worship' 'playground' 'police' 'post' 'prison' 'religious-christian' 'religious-jewish' 'religious-muslim' 'restaurant' 'rocket' 'school' 'shop' 'stadium' 'swimming' 'suitcase' 'theatre' 'toilet' 'town-hall' 'veterinary' 'zoo'

Type

The type field contains a more specific classification intended for display - eg ‘Cafe’, ‘Hotel’, ‘Laundry’. These values come from the original OpenStreetMap tags and are not a limited set.

Scalerank

The scalerank field is intended to help assign different label styles based on the prominence of different features.

ValueDescription
1The POI has a very large area
2The POI has a medium-large area
3The POI has a small area, or is of a type that is commonly large and important (eg hospital, university)
4The POI has no known area
5The POI has no name

Controlling label density

The localrank field can be used to adjust the label density by showing fewer labels. It is a whole number >=1 calculated by grouping places into a ~300m projected grid, then assigning each place a ranking within that grid. The most important place in each cell will get a localrank of 1, the second most important is 2, and so on.

#road_label
buffer: 8

Names

See Name fields in the overview for information about names and translations.

Route numbers

In addition to the standard name fields, there is also a ref field that holds any reference codes or route numbers a road may have. From zoom levels 6 through 10, all geometries are points and the only labels are highways shields. From zoom level 11 and up the geometries are all lines.

The shield field indicates the style of shield needed for the route. Current possibilities are:

ValueDescription
default
at-motorwayAustria (Autobahnen)
at-expresswayAustria (Schnellstraßen)
at-state-bAustria (Landesstraßen B)
br-federalBrazil
br-stateBrazil
bg-motorwayBulgaria
bg-nationalBulgaria
hr-motorwayCroatia
hr-stateCroatia
hr-countyCroatia
cz-motorwayCzech Republic
cz-expresswayCzech Republic
cz-roadCzech Republic
dk-primaryDenmark
dk-secondaryDenmark
fi-mainFinland
fi-trunkFinland
fi-regionalFinland
de-motorwayGermany (Autobahnen)
de-federalGermany (Bundesstraßen)
gr-motorwayGreece
gr-nationalGreece
hu-motorwayHungary
hu-mainHungary
in-nationalIndia
in-stateIndia
nz-stateNew Zealand
pe-nationalPeru
pe-regionalPeru
pl-motorwayPoland
pl-expresswayPoland
pl-nationalPoland
pl-voivodeshipPoland
ro-motorwayRomania
ro-nationalRomania
ro-countyRomania
ro-communalRomania
rs-motorwaySerbia
rs-state-1bSerbia
rs-state-2aSerbia
rs-state-2bSerbia
sk-highwaySlovakia
sk-roadSlovakia
si-motorwaySlovenia
si-expresswaySlovenia
si-mainSlovenia
za-nationalSouth Africa
za-provincialSouth Africa
za-regionalSouth Africa
za-metropolitanSouth Africa
se-mainSweden
ch-motorwaySwitzerland
ch-mainSwitzerland
mx-federalUnited States
mx-stateUnited States
us-interstateUnited States
us-interstate-duplexUnited States
us-interstate-businessUnited States
us-interstate-truckUnited States
us-highwayUnited States
us-highway-duplexUnited States
us-highway-alternateUnited States
us-highway-businessUnited States
us-highway-bypassUnited States
us-highway-truckUnited States
us-stateUnited States
e-roadEuropean E-roads

To aid with shield styling the reflen field conveys the number of characters present in the ref field. Values can be 1-4. If the ref is ‘M27’, then the reflen is 3.

Classes

The class field for road labels matches the #road layers.

ValueDescription
'motorway'High-speed, grade-separated highways
'motorway_link'Interchanges / on & off ramps
'trunk'Important roads that are not motorways.
'primary'A major highway linking large towns.
'secondary'A highway linking large towns.
'tertiary'A road linking small settlements, or the local centres of a large town or city.
'link'Contains link roads
'street'Standard unclassified, residential, road, and living_street road types
'street_limited'Streets that may have limited or no access for motor vehicles.
'pedestrian'Includes pedestrian streets, plazas, and public transportation platforms.
'construction'Includes motor roads under construction (but not service roads, paths, etc).
'track'Roads mostly for agricultural and forestry use etc.
'service'Access roads, alleys, agricultural tracks, and other services roads. Also includes parking lot aisles, public & private driveways.
'ferry'Those that serves automobiles and no or unspecified automobile service.
'path'Foot paths, cycle paths, ski trails.
'major_rail'Railways, including mainline, commuter rail, and rapid transit.
'minor_rail'Yard and service railways.
'aerialway'Ski lifts, gondolas, and other types of aerialway.
'golf'The approximate centerline of a golf course hole

Additional information

The len field stores the length of the road segment in projected meters, rounded to the nearest whole number. This can be useful for limiting some label styles to longer roads.

#motorway_junction
buffer: 8

This layer contains point geometries for labeling motorway junctions (aka highway exits). Classes and types match the types in the road layer.

Label text

The motorway junction layer has a ref field and a name field for styling labels. The reflen field tells you how long the ref value is in case you want to style this layer with shields.

Classes & types

The class and type fields tell you what kind of road the junction is on. See the #road layer for possible values.

#waterway_label
buffer: 8

This layer contains line geometries that match those in the #waterway layer but with name fields for label rendering.

Label text

See Name fields in the overview for information about names and translations.

Classes & types

The class and type fields match those in the #waterway layer.

ValueDescription
'river'Everything from the Amazon down to small creeks a couple meters wide
'canal'Medium to large artificial waterway
'stream'Very small waterway, usually no wider than a meter or two
'stream_intermittent'Class only. A stream that does not always have water flowing through it.
'drain'Medium to small artificial channel for rainwater drainage, often concrete lined.
'ditch'Small artificial channel dug in the ground for rainwater drainage.

#airport_label
buffer: 64

This layer contains point geometries that are one of: airport, airfield, heliport, and rocket.

Label text

See Name fields in the overview for information about names and translations.

Airport Codes

The ref field contains short identifier codes for many airports. These are pulled from the OpenStreetMap tags iata, ref, icao, or faa (in order of preference).

Maki

The maki field lets you assign different icons to different types of airports.

ValueDescription
'airport'Most commercial airports
'airfield'Smaller airports & private airfields
'heliport'For helicopters
'rocket'Spaceflight facilities

Scalerank

The scalerank field is a number representing the size / importance of the airport. Possible values are 1 (very large airport) through 4 (very small airport).

#rail_station_label
buffer: 64

This layer contains point geometries with name fields for label rendering.

Label text

See Name fields in the overview for information about names and translations.

Maki

The maki field lets you assign icons to the rail station based on a few basic station types:

ValueDescription
'rail'Default rail station
'rail-metro'Station for a subway, metro, or other rapid-transit system
'rail-light'Light rail station
'entrance'Specific station entrance points (eg stairs, escalators, elevators)

Network

The network field lets you assign more specific icons for rail stations that are part of specific local or regional transit systems. They don’t necessarily correspond to a specific network - eg de-u-bahn applies to any U-Bahn network in Germany since these can all use the same icon in a map style. Some stations serve multiple networks; in these cases, multiple network names are joined with a dot (in alphabetical order).

If none of the specific networks below apply to a station, the network value will be the same as the maki value (see previous section).

ValueDescription
'barcelona-metro'Barcelona, Spain
'boston-t'Boston, Massachusetts
'chongqing-rail-transit'Chongqing, China
'de-s-bahn'Germany
'de-s-bahn.de-u-bahn'Germany
'de-u-bahn'Germany
'delhi-metro'Delhi, India
'gb-national-rail'London, United Kingdom
'gb-national-rail.london-dlr'London, United Kingdom
'gb-national-rail.london-dlr.london-overground.london-tfl-rail.london-underground'London, United Kingdom
'gb-national-rail.london-dlr.london-overground.london-underground'London, United Kingdom
'gb-national-rail.london-dlr.london-underground'London, United Kingdom
'gb-national-rail.london-overground'London, United Kingdom
'gb-national-rail.london-overground.london-tfl-rail.london-underground'London, United Kingdom
'gb-national-rail.london-overground.london-underground'London, United Kingdom
'gb-national-rail.london-tfl-rail'London, United Kingdom
'gb-national-rail.london-tfl-rail.london-overground'London, United Kingdom
'gb-national-rail.london-tfl-rail.london-underground'London, United Kingdom
'gb-national-rail.london-underground'London, United Kingdom
'hong-kong-mtr'Hong Kong
'kiev-metro'Kiev, Ukraine
'london-dlr'Docklands Light Rail, London, United Kingdom
'london-dlr.london-tfl-rail'London, United Kingdom
'london-dlr.london-tfl-rail.london-underground'London, United Kingdom
'london-dlr.london-underground'London, United Kingdom
'london-overground'London Overground, United Kingdom
'london-overground.london-tfl-rail'London Overground, United Kingdom
'london-overground.london-tfl-rail.london-underground'London Overground, United Kingdom
'london-overground.london-underground'London, United Kingdom
'london-tfl-rail'London, United Kingdom
'london-tfl-rail.london-underground'London, United Kingdom
'london-underground'London Underground, United Kingdom
'madrid-metro'Madrid, Spain
'mexico-city-metro'Mexico City, Mexico
'milan-metro'Milan, Italy
'moscow-metro'Moscow Metro, Russia
'new-york-subway'New York City, New York
'osaka-subway'Osaka, Japan
'oslo-metro'Oslo, Norway
'paris-metro'Paris Metro, France
'paris-rer'Paris regional commuter rail, France
'paris-metro.paris-rer'Paris, France
'paris-rer.paris-transilien'Paris, France
'paris-transilien'Paris suburban rail, France
'philadelphia-septa'Philadelphia, Pennsylvania
'san-francisco-bart'San Francisco, California
'singapore-mrt'Singapore
'stockholm-metro'stockholm, Sweden
'taipei-metro'Taipei, Taiwan
'tokyo-metro'Tokyo, Japan
'vienna-u-bahn'Vienna, Austria
'washington-metro'Washington DC Metro

#mountain_peak_label
buffer: 64

This layer contains point geometries that are contains mountain peaks. Include fields elevation_m & elevation_ft which contain the peak elevations in meters and feet, respectively. Values are rounded to the nearest integer.

Label text

See Name fields in the overview for information about names and translations.

Maki

The maki field lets you distinguish volcanoes from other types of peaks.

ValueDescription
'volcano'Volcanoes
'mountain'All other types of peaks (necessarily just mountains)

Elevations

The elevation_m and elevation_ft fields hold the peak elevation in meters and feet, respectively. Values are rounded to the nearest whole number and do not include units. Use a text field such as {elevation_ft} feet or {elevation_m}m in Mapbox Studio to display the units.

#housenum_label
buffer: 64

This layer contains points used to label the street number parts of specific addresses.

The house_num field countains house and building numbers. These are commonly integers but may include letters or be only letters, eg “1600”, “31B”, “D”. If an address has no number tag but has a house name or building name, the house_num field will be the name instead.