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]†
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]