DRAFT Vector Tile Schema 1.1
DRAFT
This is a DRAFT version of the 1.1 specification and subject to change.
About
The Shortbread vector tile schema is intended to be a basic, lean, general-purpose vector tile schema for OpenStreetMap data.
It does not, and is not intended to, cover the full breadth and depth of OpenStreetMap tagging.
This document describes the layers that are defined in the vector tile schema, and the features and attributes available on each layer.
Feature sorting
Some layers have their features sorted by importance or rendering order. This allows you to use rendering engines which do not support feature sorting themselves.
Zooms
Shortbread vector tiles have a minzoom of 0 and a maxzoom of 14. Higher client zooms are achieved with overzoomed zoom 14 tiles.
Water
Layer “ocean”
This layer contains oceans. There are no attributes.
Layer “water_polygons”
This layer contains inland water bodies and glaciers.
Properties
| Field Name |
Type |
Description |
kind |
string |
type of water body |
way_area |
float |
area in square meters (Mercator Projection) |
Features
Layer “water_polygons_labels”
Holds point geometries and names for all named water polygons available in the water_polygons layer.
The way_area attributes allows you to prefer labels of larger areas. Features are sorted by way_area in
descending order.
Properties
| Field name |
Type |
Description |
kind |
string |
type of water body (see water_polygons layer for a list of values) |
way_area |
float |
area in square meter (Mercator Projection) |
name |
string |
value of OSM
name=*
tag |
name_en |
string |
value of OSM
name:en=*
tag |
name_de |
string |
value of OSM
name:de=*
tag |
Layer “water_lines”
Holds waterway line geometries. Features are sorted by their
layer=*
tags in OpenStreetMap in ascending order (default 0).
Properties
Features
| Type of feature |
Value of kind |
OSM tag |
Geometry |
Zoom |
| Canals |
canal |
waterway=canal
|
line |
Canals are available if their line is longer than 0.25 pixel but not below 9. |
| Rivers |
river |
waterway=river
|
line |
Rivers are available if their line is longer than 0.25 pixel but not below 9. |
| Streams |
stream |
waterway=stream
|
line |
14+ |
| Ditches |
ditch |
waterway=ditch
|
line |
14+ |
Layer “water_lines_labels”
Hold line geometries and names for named water lines.
Minimum Zoom Levels
| Type of feature |
Zoom |
| Canals |
Canals are available if their line is longer than 0.25 pixel but not below 12. |
| Rivers |
Rivers are available if their line is longer than 0.25 pixel but not below 12. |
| Streams |
14+ |
| Ditches |
14+ |
Properties
| Field Name |
Type |
Default |
Description |
kind |
string |
|
type of water body (see water_lines layer for a list of values) |
name |
string |
|
value of OSM
name=*
tag |
name_en |
string |
|
value of OSM
name:en=*
tag |
name_de |
string |
|
value of OSM
name:de=*
tag |
tunnel |
boolean |
false |
true for
tunnel=yes,building_passage
or
covered=yes
, false otherwise |
bridge |
boolean |
false |
true for
bridge=yes,viaduct,boardwalk,cantilever,covered,low_water_crossing,movable,trestle
, false otherwise |
Layer “dam_lines”
Holds line geometries of dams (not dykes).
Properties
| Field Name |
Type |
kind |
string |
Features
| Type of feature |
Value of kind |
OSM tag |
Geometry |
Zoom |
| Dam lines |
dam |
waterway=dam
|
line |
12+ |
Layer “dam_polygons”
Holds polygon geometries of dams (not dykes).
Properties
| Field Name |
Type |
kind |
string |
Features
| Type of feature |
Value of kind |
OSM tag |
Geometry |
Zoom |
| Dam areas |
dam |
waterway=dam
|
polygon |
12+ |
Layer “pier_lines”
This layer contains piers, breakwaters and groynes mapped as lines. See the pier_polygons layer for those mapped as polygons.
Properties
| Field Name |
Type |
Description |
| kind |
string |
see Features section for possible values |
Features
Layer “pier_polygons”
This layer contains piers, breakwaters and groynes mapped as polygons. See the pier_lines layer for those mapped as lines.
Properties
| Field Name |
Type |
Description |
| kind |
string |
see Features section for possible values |
Features
Countries, States, Cities
Layer “boundaries”
Holds boundary lines of countries and states.
Properties
| Field name |
Type |
Description |
admin_level |
integer |
highest administrative boundary this line belongs to |
maritime |
boolean |
Boundary line is located on sea, base on OSM
maritime=*
tag, or is the coastline (way tagged with
natural=coastline
) |
disputed |
boolean |
Boundary line is tagged with
disputed=yes
or member of a relation with
boundary=disputed
and admin_level unset or between 2 and 4. |
Features
| Type of feature |
Value of admin_level |
Geometry |
Zoom |
| Country boundaries |
2 |
line |
0+ |
| State boundaries |
4 |
line |
7+ |
Layer “boundary_labels”
Holds label points for boundary polygons of countries and states. Features are sorted by way_area in
descending order.
Properties
| Field name |
Type |
Description |
admin_level |
integer |
value of OSM
admin_level=*
tag, see Features section for possible values |
way_area |
float |
area in ha |
name |
string |
value of OSM
name=*
tag |
name_en |
string |
value of OSM
name:en=*
tag |
name_de |
string |
value of OSM
name:de=*
tag |
Features
| Type of feature |
Value of admin_level |
Geometry |
Minimum Area |
Zoom |
| Country boundaries |
2 |
point |
2*10^6 km² |
2+ |
| Country boundaries |
2 |
point |
7*10^5 km² |
3+ |
| Country boundaries |
2 |
point |
1*10^5 km² |
4+ |
| Country boundaries |
2 |
point |
none |
5+ |
| State boundaries |
4 |
point |
7*10^5 km² |
3+ |
| State boundaries |
4 |
point |
1*10^5 km² |
4+ |
| State boundaries |
4 |
point |
none |
5+ |
Layer “place_labels”
Holds label points for populated places. Features are sorted by population in descending order.
Properties
| Field Name |
Type |
Description |
kind |
string |
value of OSM
place=*
tag, see Features section for possible values |
name |
string |
value of OSM
name=*
tag |
name_en |
string |
value of OSM
name:en=*
tag |
name_de |
string |
value of OSM
name:de=*
tag |
population |
integer |
value of OSM
population=*
tag, else defaults (see below) |
Features
Land Use, Land Cover, Buildings
Layer “land”
This layer contains basic land cover that is usually drawn first.
Properties
| Field Name |
Type |
Description |
| kind |
string |
see Features section for possible values |
Features
Layer “sites”
This layer is for types of land use that will usually be above the basic
land layer, but below buildings.
Properties
| Field Name |
Type |
Description |
| kind |
string |
see Features section for possible values |
Features
Layer “buildings”
Has polygons for everything with a building tag (not building=no) from
zoom 14 on.
There is a property for all features on this layer, called dummy, a number
which is always 1.
Layer “addresses”
Has points for everything with an address from zoom 14+. Polygons are represented by a point.
If a feature is available in the pois layer, it will not be duplicated in the addresses layer.
Properties
Streets and Transport
Layer “streets”
Holds line geometries of the whole road network. Features are ordered by the so-called z-order value which is computed
from road class, OSM
layer=*
,
bridge=*
and
tunnel=*
tags. More important roads are are sorted before less important roads, tunnels before bridges.
Properties
| Field Name |
Type |
Zoom |
Default |
Description |
kind |
string |
5+ |
always set |
Feature class, contains value of
highway=*
,
aeroway=*
or
railway=*
|
link |
boolean |
11+ |
false |
true for link roads (
highway=motorway_link,trunk_link,primary_link,secondary_link,tertiary_link
) |
rail |
boolean |
5+ |
false |
true for railways, false otherwise |
tunnel |
boolean |
11+ |
false |
true for
tunnel=yes,building_passage
or
covered=yes
, false otherwise |
bridge |
boolean |
11+ |
false |
true for
bridge=yes,viaduct,boardwalk,cantilever,covered,low_water_crossing,movable,trestle
, false otherwise |
oneway |
boolean |
14+ |
false |
true for
oneway=yes,1,true,-1
; always false for rail features |
oneway_reverse |
boolean |
14+ |
false |
true for reverse (not reversible) oneways (
oneway=-1
); always false for rail features |
tracktype |
string |
11+ |
field not available |
value of
tracktype=*
|
surface |
string |
11+ |
empty string |
value of
surface=*
|
service |
string |
11+ |
field not available |
value of
service=*
|
bicycle |
string |
14+ |
empty string |
value of
bicycle=*
|
horse |
string |
14+ |
empty string |
value of
horse=*
|
Features
The following features are available in this layer:
| Type of feature |
Value of kind |
Zoom |
Comment |
| Motorways and their links |
motorway |
5+ |
Use link flag to differentiate between main roads type and their links. |
| Trunk roads and their links |
trunk |
6+ |
Use link flag to differentiate between main roads type and their links. |
| Primary roads and their links |
primary |
8+ |
Use link flag to differentiate between main roads type and their links. |
| Secondary roads and their links |
secondary |
9+ |
Use link flag to differentiate between main roads type and their links. |
| Tertiary roads and their links |
tertiary |
10+ |
Use link flag to differentiate between main roads type and their links. |
| Side roads |
unclassified |
12+ |
|
| Residential roads |
residential |
12+ |
|
| Roads exclusively for buses |
busway |
12+ |
|
| Bus guideways |
bus_guideway |
12+ |
|
| Residential roads w/traffic calming |
living_street |
13+ |
|
| Service roads |
service |
13+ |
|
| Pedestrian roads |
pedestrian |
13+ |
|
| Tracks |
track |
13+ |
|
| Footpaths |
footway |
13+ |
|
| Steps |
steps |
13+ |
|
| Unspecified paths |
path |
13+ |
use the bicycle and horse attributes for details about permitted use of the path |
| Bicycle paths |
cycleway |
13+ |
|
| Runway |
runway |
11+ |
|
| Taxiway |
taxiway |
13+ |
|
| Railway |
rail |
8/10+ |
ways with
service=*
on zoom level 10+, other ways on zoom level 8+ |
| Narrow gauge railway |
narrow_gauge |
8/10+ |
ways with
service=*
on zoom level 10+, other ways on zoom level 8+ |
| Tram |
tram |
10+ |
|
| Light railway |
light_rail |
10+ |
|
| Funicular |
funicular |
10+ |
|
| Subway |
subway |
10+ |
|
| Monorail |
monorail |
10+ |
|
Layer “street_polygons”
Holds polygons geometries of certain streets mapped as polygons. Features are ordered by the so-called z-order value which is computed
from road class, OSM
layer=*
,
bridge=*
and
tunnel=*
tags. More important roads are are sorted before less important roads, tunnels before bridges.
Properties
| Field Name |
Type |
Default |
Description |
kind |
string |
always set |
Feature class, contains value of
highway=*
or
area:aeroway=*
|
bridge |
boolean |
false |
true for
bridge=yes,viaduct,boardwalk,cantilever,covered,low_water_crossing,movable,trestle
, false otherwise |
rail |
boolean |
false |
always false |
service |
string |
empty string |
value of
service=*
|
surface |
string |
empty string |
value of
surface=*
|
tunnel |
boolean |
false |
true for
tunnel=yes,building_passage
or
covered=yes
, false otherwise |
Features
The following features are available in this layer:
| Type of feature |
Value of kind |
Zoom |
| Pedestrian areas |
pedestrian |
14+ |
| Service roads |
service |
14+ |
| Runways |
runway |
11+ |
| Taxiways |
taxiway |
13+ |
Layer “street_labels”
This layer holds street geometries for labelling. It contains their names and reference numbers.
Properties
| Field Name |
Type |
OSM Key |
kind |
string |
value of OSM
highway=*
,
aeroway=*
or
taxiway=*
tag |
ref |
string |
value of OSM
ref=*
tag, semicolons replaced by newline characters (ASCII character 10) |
ref_rows |
integer |
number of lines of the ref value |
ref_cols |
integer |
maximum line length of the ref value |
name |
string |
value of OSM
name=*
tag |
name_en |
string |
value of OSM
name:en=*
tag |
name_de |
string |
value of OSM
name:de=*
tag |
tunnel |
boolean |
true for
tunnel=yes,building_passage
or
covered=yes
. false otherwise |
Features
| Type of feature |
Value of kind |
Zoom |
| Motorway |
motorway |
10+ |
| Motorway links |
motorway_link |
13+ |
| Trunk roads |
trunk |
12+ |
| Trunk roads |
trunk_link |
13+ |
| Primary roads |
primary |
12+ |
| Primary links |
primary_link |
13+ |
| Secondary roads |
secondary |
13+ |
| Secondary links |
secondary_link |
13+ |
| Tertiary roads |
tertiary |
13+ |
| Tertiary links |
tertiary_link |
14+ |
| Side roads |
unclassified |
14+ |
| Residential roads |
residential |
14+ |
| Residential roads w/traffic calming |
living_street |
14+ |
| Roads exclusively for buses |
busway |
14+ |
| Bus guideways |
bus_guideway |
14+ |
| Service roads |
service |
14+ |
| Pedestrian roads |
pedestrian |
14+ |
| Tracks |
track |
14+ |
| Footpaths |
footway |
14+ |
| Steps |
steps |
14+ |
| Unspecified paths |
path |
14+ |
| Bicycle paths |
cycleway |
14+ |
| Runway |
runway |
11+ |
| Taxiway |
taxiway |
13+ |
| Railway |
rail |
10+ |
| Narrow gauge railway |
narrow_gauge |
10+ |
| Tram |
tram |
10+ |
| Light railway |
light_rail |
10+ |
| Funicular |
funicular |
10+ |
| Subway |
subway |
10+ |
| Monorail |
monorail |
10+ |
Layer “streets_polygons_labels”
Holds labelling points of the polygons of the “streets_polygons” layer.
Properties
| Field Name |
Type |
OSM Key |
kind |
string |
value of OSM
highway=*
or
aeroway=*
tag |
name |
string |
value of OSM
name=*
tag |
name_en |
string |
value of OSM
name:en=*
tag |
name_de |
string |
value of OSM
name:de=*
tag |
Features
The following features are available in this layer:
| Feature Class |
value of kind |
Zoom |
| pedestrian |
pedestrian |
14+ |
| service roads |
service |
14+ |
| runway |
runway |
14+ |
| taxiway |
taxiway |
14+ |
Layer “street_labels_points”
This layer holds motorway exit labels.
Properties
| Field Name |
Type |
OSM Key |
kind |
string |
value of OSM
highway=*
tag |
ref |
string |
value of OSM
ref=*
tag |
name |
string |
value of OSM
name=*
tag |
name_en |
string |
value of OSM
name:en=*
tag |
name_de |
string |
value of OSM
name:de=*
tag |
Features
The following features are available in this layer:
| Feature Class |
Value of kind |
Zoom |
| Motorway exits |
motorway_junction |
12+ |
Layer “bridges”
This layer contains bridges mapped as polygons. There is no distinction which type of road, railway, runway or
waterway uses this bridge.
Please mind that only some bridges are mapped as polygons but almost all roads located on a bridge have their
location on a bridge as an attribute (see streets layer for details).
Properties
| Field Name |
Type |
Description |
kind |
string |
see Features section for possible values |
Features
| Type of feature |
Value of kind |
OSM tag |
Geometry |
Zoom |
| Bridge areas |
bridge |
man_made=bridge
|
polygon |
12+ |
Layer “aerialways”
Holds aerialways as lines.
Properties
| Field Name |
Type |
OSM Key |
kind |
string |
aerialway=*
|
Features
Layer “ferries”
Holds line geometries of ferries.
Properties
| Field Name |
Type |
OSM Key |
kind |
string |
|
name |
string |
value of OSM
name=*
tag |
name_en |
string |
value of OSM
name:en=*
tag |
name_de |
string |
value of OSM
name:de=*
tag |
Features
The following features are available in this layer:
| Type of feature |
value of kind |
OSM tag |
Zoom |
| Motor vehicle ferries |
ferry |
route=ferry
+ motor_vehicle!=no |
10+ |
| All other ferries |
ferry |
route=ferry
|
12+ |
Points of interest
Layer “public_transport”
Holds public transport stops as points. Areas in OSM are represented by a point.
Properties
| Field Name |
Type |
Description |
kind |
string |
feature class |
name |
string |
value of OSM
name=*
tag |
name_en |
string |
value of OSM
name:en=*
tag |
name_de |
string |
value of OSM
name:de=*
tag |
iata |
string |
value of OSM
iata=*
tag |
Features
Layer “pois”
Holds points of interest as point geometries. Areas in OSM are represented by a point.
All features are available on zoom level 14 only.
Properties
| Field Name |
Type |
Default |
Description |
amenity |
string |
null |
value of OSM
amenity=*
tag if listed in the “Features” subsection below |
leisure |
string |
null |
value of OSM
leisure=*
tag if listed in the “Features” subsection below |
tourism |
string |
null |
value of OSM
tourism=*
tag if listed in the “Features” subsection below |
shop |
string |
null |
value of OSM
shop=*
tag if listed in the “Features” subsection below |
man_made |
string |
null |
value of OSM
man_made=*
tag if listed in the “Features” subsection below |
historic |
string |
null |
value of OSM
historic=*
tag if listed in the “Features” subsection below |
emergency |
string |
null |
value of OSM
emergency=*
tag if listed in the “Features” subsection below |
highway |
string |
null |
value of OSM
highway=*
tag if listed in the “Features” subsection below |
office |
string |
null |
value of OSM
office=*
tag if listed in the “Features” subsection below |
name |
string |
null |
value of OSM
name=*
tag |
name_en |
string |
null |
value of OSM
name:en=*
tag |
name_de |
string |
null |
value of OSM
name:de=*
tag |
housename |
string |
null |
addr:housename=*
|
housenumber |
string |
null |
addr:housenumber=*
|
The following attributes are set for selected features only. Their value comes from the equally named OSM keys.
The following attributes are set for selected features only. They are true if the specified OSM key has the value yes.
Features
The following key-value combinations are included in this layer:
Types
Where a field is assigned a type, it is the name of a type in the MVT specification, except that when integer is specificed any of the integer types in the specification may be used.