Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Vector tiles schema notes

Likely schema

place           <- place
boundary        <- boundary
route           <- route
structure       <- power, man_made, barrier, emergency, amenity=[bench, post_box, telephone…], advertising, military, playground
poi             <- shop, tourism, historic, office, amenity=[other], healthcare, craft
transport       <- highway, railway, aerialway, traffic_sign*, public_transport, amenity=bus_station
indoor          <- indoor*, entrance*
building (z14+) <- building
outdoor         <- leisure, amenity=parking, aeroway
water           <- waterway, natural=water
land            <- landuse, landcover*, natural=[non-water]†

Maybe have

   poi_point	nodes/centroids (with labels)
   poi_area	polygons/polylines
   (also for structure, named/addressed building, outdoor)
   ...this is mostly how Mapbox Streets does it

Needs to be basically compatible with osm2pgsql default schema, but could consider some diversions for a v2.

* means not included as a column in default schema. † filter on zoom level.

not supported: geological

Top-level tags as explained in Simon’s SOTM talk

Frequent: aeroway [0.4m], amenity [13m], barrier [9m], boundary [1.8m], building [301m], emergency [1.1m], entrance [1.5m], highway [132m], historic [0.9m], landuse [22m], leisure [4.7m], man_made [2.7m], natural [32m], office [0.45m], place [5m], power [17m], public_transport [1.9m], railway [4.1m], route [0.6m], shop [3.4m], traffic_sign (:forward/:backward) [0.5m], tourism [1.8m], waterway [15m]

Less frequent: aerialway [0.1m], craft [0.1m], indoor [165k]

Very infrequent: advertising [40k], landcover [58k], military [72k], playground [29k], healthcare [67k]

Oddities: airmark [2k], attraction [20k], cemetery [13k], golf [311k], sport (!), pipeline [31k], geological [7k]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment