Die Beispiele, über die planetiler verify vor jedem Bau läuft. Die übernommenen belegen, dass die Negativliste außer leisure=marina nichts verändert; die eigenen belegen, dass sie diese eine Auszeichnung tatsächlich herauswirft — mit Gegenproben in der Überzahl.
Die Dateien sind eine Kopie aus dem Verzeichnis basemap/ des XAPE-Repositoriums, übernommen am 16. August 2026. Sie liegen hier eingebettet und nicht als Verweis auf ein fremdes System, weil eine Offenlegung, die von der Erreichbarkeit eines Dritten abhängt, keine verlässliche ist.
basemap/schema/xape-negativliste.spec.yml
Die eigenen Proben: zwei belegen, dass Hafenbecken und Marina-POI verschwinden, sechs sind Gegenproben, dass Hafengelände, Hafengebäude, seamark:type=harbour, dock, lighthouse und ferry_terminal bleiben.
gepflegt150 Zeilen4203 Bytenach 4.6(b) geschuldet
SHA-256 bd44b6cb10f9a43482624ec3a9fbba6bdebdfa8f8e3980defa6da28dc5495591
# Proben fuer die Tag-Negativliste.
#
# Der Erzeuger (werkzeug/schema-bauen.sh) haengt diese Faelle an die unveraendert
# uebernommenen Beispiele und schreibt beides nach xape.spec.yml. Gelaufen wird
# beides in einem Zug mit:
#
# planetiler verify xape.yml
#
# WARUM DIE FAELLE KOMBINIERT AUSGEZEICHNET SIND
# Ein Objekt, das NUR leisure=marina traegt, gibt das uebernommene Schema
# ohnehin nicht aus -- ein solcher Fall bestuende auch ohne Negativliste und
# belegt nichts. Im Bestand ist die Auszeichnung aber fast immer kombiniert: das
# Hafenbecken traegt natural=water UND leisure=marina, das Hafengelaende
# landuse=industrial UND harbour=yes. Diese Merkmale gibt Shortbread aus. Genau
# dort beisst die Liste, und nur dort laesst sie sich beweisen.
#
# Wird die Negativliste geleert und neu erzeugt, muessen diese Faelle fehlschlagen.
# Die Gegenproben am Ende muessen dabei gruen bleiben -- sie sichern, dass der
# Ausschluss eng gefasst ist und nicht die halbe Karte mitnimmt.
#
# SEIT DEM 15.08.2026 ENTHAELT DIE LISTE NUR NOCH leisure=marina.
# Die frueheren Ausschlussproben fuer harbour=*, landuse=harbour und
# seamark:type=harbour sind deshalb ins Gegenteil gedreht: sie belegen jetzt,
# dass der Hafen in den Kacheln BLEIBT. Der Hafen ist nicht die Marina.
examples:
- name: 'XAPE-Negativliste: Hafenbecken (natural=water + leisure=marina) faellt raus'
input:
source: osm
geometry: polygon
tags:
natural: water
leisure: marina
name: Yachthafen Wedel
output: []
- name: 'XAPE-Gegenprobe: Hafengelaende (landuse=industrial + harbour=yes) bleibt'
input:
source: osm
geometry: polygon
tags:
landuse: industrial
harbour: 'yes'
name: Hafen Cuxhaven
output:
# min_zoom 10 statt der 11 der uebrigen Landflaechen: das uebernommene
# Schema uebersteuert landuse=industrial ausdruecklich.
- layer: land
geometry: polygon
min_zoom: 10
tags:
kind: industrial
- name: 'XAPE-Gegenprobe: Hafengebaeude (building=yes + harbour=yes) bleibt'
input:
source: osm
geometry: polygon
tags:
building: 'yes'
harbour: 'yes'
output:
- layer: buildings
geometry: polygon
min_zoom: 14
- name: 'XAPE-Negativliste: Marina-POI (amenity=cafe + leisure=marina) faellt raus'
input:
source: osm
geometry: point
tags:
amenity: cafe
leisure: marina
name: Hafenkiosk
output: []
- name: 'XAPE-Gegenprobe: seamark:type=harbour bleibt'
input:
source: osm
geometry: polygon
tags:
natural: water
'seamark:type': harbour
name: Hafen
output:
- layer: water_polygons
geometry: polygon
min_zoom: 4
tags:
kind: water
- layer: water_polygons_labels
geometry: point
min_zoom: 14
tags:
kind: water
name: Hafen
# --- Gegenproben: der Ausschluss ist eng gefasst ---
- name: 'XAPE-Gegenprobe: waterway=dock bleibt'
input:
source: osm
geometry: polygon
tags:
waterway: dock
name: Trockendock
# min_zoom 10 statt der 4 der uebrigen Wasserflaechen: das uebernommene Schema
# uebersteuert waterway=[dock, canal] ausdruecklich auf 10.
output:
- layer: water_polygons
geometry: polygon
min_zoom: 10
tags:
kind: dock
- layer: water_polygons_labels
geometry: point
min_zoom: 10
tags:
kind: dock
name: Trockendock
- name: 'XAPE-Gegenprobe: man_made=lighthouse bleibt'
input:
source: osm
geometry: point
tags:
man_made: lighthouse
name: Roter Sand
# Die POI-Ebene kennt kein kind: sie schreibt den auszeichnenden Schluessel
# selbst, hier also man_made.
output:
- layer: pois
geometry: point
min_zoom: 14
tags:
man_made: lighthouse
name: Roter Sand
- name: 'XAPE-Gegenprobe: amenity=ferry_terminal bleibt'
input:
source: osm
geometry: point
tags:
amenity: ferry_terminal
name: Faehranleger Norddeich
output:
- layer: public_transport
geometry: point
min_zoom: 12
tags:
kind: ferry_terminal
name: Faehranleger Norddeich
basemap/schema/xape.spec.yml
Die zusammengeführten Beispiele, über die planetiler verify läuft. Erzeugt aus den beiden Probendateien.
erzeugt1356 Zeilen26391 Bytenach 4.6(b) geschuldet
SHA-256 d9bf7b4ad9d056c079348386d4577a9f9371108b253caf623ffd1900b8b6ef3d
# ERZEUGT -- nicht von Hand aendern.
# shortbread.upstream.spec.yml (unveraendert) + xape-negativliste.spec.yml
examples:
- name: ocean polygons
input:
source: ocean
geometry: polygon
tags:
x: 1
y: 2
output:
layer: ocean
geometry: polygon
min_zoom: 0
tags: # no tags
- name: natural=glacier
input:
source: osm
geometry: polygon
tags:
natural: glacier
name: The glacier
name:en: The glacier (en)
name:de: The glacier (de)
output:
- layer: water_polygons
geometry: polygon
min_zoom: 4
tags:
kind: glacier
- layer: water_polygons_labels
geometry: point
min_zoom: 14
tags:
kind: glacier
name: The glacier
name_en: The glacier (en)
name_de: The glacier (de)
- name: waterway=dock
input:
source: osm
geometry: POLYGON ((-0.5 -0.5, 0.5 -0.5, 0.5 0.5, -0.5 0.5, -0.5 -0.5))
tags:
waterway: dock
output:
layer: water_polygons
geometry: polygon
min_zoom: 10
tags:
kind: dock
# verified with a naive "projection" and sizes from https://www.thoughtco.com/degree-of-latitude-and-longitude-distance-4070616
# 1° lat ~ 110.567km at the equator
# 1° lon ~ 111.321km at the equator
# => ~12308.429km² = ~12308.429e^6 m² = ~1.2308429e^10 m²
way_area: 1.236418893560872E10
- name: waterway=canal linestring
input:
source: osm
geometry: line
tags:
waterway: canal
tunnel: yes
name: The Canal
name:en: The Canal (en)
name:de: The Canal (de)
output:
- layer: water_lines
geometry: line
min_zoom: 9
tags:
kind: canal
tunnel: true
bridge: false
- layer: water_lines_labels
geometry: line
min_zoom: 12
tags:
kind: canal
tunnel: true
bridge: false
name: The Canal
name_en: The Canal (en)
name_de: The Canal (de)
- name: waterway=stream linestring
input:
source: osm
geometry: line
tags:
waterway: stream
name: The Stream
name:en: The Stream (en)
name:de: The Stream (de)
output:
- layer: water_lines
geometry: line
min_zoom: 14
tags:
kind: stream
tunnel: false
bridge: false
- layer: water_lines_labels
geometry: line
min_zoom: 14
tags:
kind: stream
tunnel: false
bridge: false
name: The Stream
name_en: The Stream (en)
name_de: The Stream (de)
- name: waterway=dam line
input:
source: osm
geometry: line
tags:
waterway: dam
output:
- layer: dam_lines
geometry: line
min_zoom: 12
tags:
kind: dam
- name: waterway=dam polygon
input:
source: osm
geometry: polygon
tags:
waterway: dam
output:
- layer: dam_polygons
geometry: polygon
min_zoom: 12
tags:
kind: dam
- name: dykes are not dams
input:
source: osm
geometry: polygon
tags:
man_made: dyke
embankment: dyke
geological: dyke
output: []
- name: man_made=pier polygon
input:
source: osm
geometry: polygon
tags:
man_made: pier
output:
- layer: pier_polygons
geometry: polygon
min_zoom: 12
tags:
kind: pier
- name: man_made=pier line
input:
source: osm
geometry: line
tags:
man_made: pier
output:
- layer: pier_lines
geometry: line
min_zoom: 12
tags:
kind: pier
- name: landuse=grass
input:
source: osm
geometry: polygon
tags:
landuse: grass
output:
- layer: land
geometry: polygon
min_zoom: 11
tags:
kind: grass
- name: landuse=forest
input:
source: osm
geometry: polygon
tags:
landuse: forest
output:
- layer: land
geometry: polygon
min_zoom: 7
tags:
kind: forest
- name: natural=wood override kind to forest
input:
source: osm
geometry: polygon
tags:
natural: wood
output:
- layer: land
geometry: polygon
min_zoom: 7
tags:
kind: forest
- name: amenity=parking
input:
source: osm
geometry: polygon
tags:
amenity: parking
output:
- layer: sites
geometry: polygon
min_zoom: 14
tags:
kind: parking
- name: building=yes
input:
source: osm
geometry: polygon
tags:
building: yes
output:
- layer: buildings
geometry: polygon
min_zoom: 14
- name: building=house
input:
source: osm
geometry: polygon
tags:
building: house
output:
- layer: buildings
geometry: polygon
min_zoom: 14
- name: address polygon with house number
input:
source: osm
geometry: polygon
tags:
addr:housenumber: 123
output:
- layer: addresses
geometry: point
min_zoom: 14
tags:
housenumber: 123
- name: address point with house name
input:
source: osm
geometry: point
tags:
addr:housename: the 123 house
output:
- layer: addresses
geometry: point
min_zoom: 14
tags:
housename: the 123 house
- name: B27 highway
input:
source: osm
geometry: line
tags:
change:lanes:backward: no
change:lanes:forward: not_left|not_right
embankment: yes
highway: primary
lanes: 3
lanes:backward: 1
lanes:forward: 2
maxspeed: 100
overtaking:backward: no
priority_road: designated
ref: B 27
sidewalk: no
source:maxspeed: DE:rural
surface: asphalt
zone:traffic: DE:rural
output:
- layer: streets
geometry: line
min_zoom: 8
min_size: 0
tags:
bridge: false
kind: primary
link: false
rail: false
surface: asphalt
tunnel: false
- layer: street_labels
geometry: line
min_zoom: 12
allow_extra_tags: false
tags:
kind: primary
ref: B 27
ref_rows: 1
ref_cols: 4
tunnel: false
- name: B39A link
input:
source: osm
geometry: line
tags:
cycleway:right: no
destination: Löwenstein;Obersulm;Ellhofen;Breitenauer See
destination:colour: ;;;brown
foot: no
hazard: traffic_signals
highway: primary_link
lanes: 1
lit: no
maxspeed: 50
oneway: yes
ref: B 39;B 39A
sidewalk: no
surface: asphalt
turn: right
output:
- layer: streets
geometry: line
min_zoom: 8
allow_extra_tags: false
min_size: 0
tags:
bridge: false
kind: primary
link: true
rail: false
surface: asphalt
tunnel: false
oneway: true
oneway_reverse: false
- layer: street_labels
geometry: line
min_zoom: 13
allow_extra_tags: false
tags:
kind: primary_link
ref: "B 39\nB 39A"
ref_rows: 2
ref_cols: 5
tunnel: false
- name: rail with service
input:
source: osm
geometry: line
tags:
railway: rail
service: service_value
output:
layer: streets
geometry: line
min_zoom: 8
allow_extra_tags: false
min_size: 0
tags:
bridge: false
kind: rail
link: false
rail: true
tunnel: false
service: service_value
oneway: false
oneway_reverse: false
- name: narrow_gauge without service
input:
source: osm
geometry: line
tags:
railway: narrow_gauge
output:
layer: streets
geometry: line
min_zoom: 10
allow_extra_tags: false
tags:
bridge: false
kind: narrow_gauge
link: false
rail: true
tunnel: false
oneway: false
oneway_reverse: false
- name: 'track with grade'
input:
source: osm
geometry: line
tags:
highway: track
tracktype: grade2
output:
layer: streets
geometry: line
min_zoom: 13
at_zoom: 11
allow_extra_tags: false
tags:
bridge: false
kind: track
link: false
rail: false
tracktype: grade2
tunnel: false
- name: 'named path'
input:
source: osm
geometry: line
tags:
highway: path
name: Name
name:en: English Name
name:de: German Name
output:
- layer: streets
geometry: line
tags:
kind: path
- layer: street_labels
geometry: line
tags:
kind: path
name: Name
name_en: English Name
name_de: German Name
- name: 'motorway attributes drop below z11'
input:
source: osm
geometry: line
tags:
highway: motorway
tracktype: grade2
output:
layer: streets
geometry: line
min_zoom: 5
at_zoom: 10
allow_extra_tags: false
tags:
kind: motorway
rail: false
- name: 'path bridge'
input:
source: osm
geometry: line
tags:
highway: path
bridge: yes
output:
layer: streets
geometry: line
min_zoom: 13
allow_extra_tags: false
tags:
kind: path
bridge: true
link: false
oneway: false
oneway_reverse: false
rail: false
tunnel: false
- name: 'pedestrian tunnel'
input:
source: osm
geometry: line
tags:
highway: pedestrian
tunnel: yes
output:
layer: streets
geometry: line
min_zoom: 13
allow_extra_tags: false
tags:
kind: pedestrian
tunnel: true
bridge: false
link: false
oneway: false
oneway_reverse: false
rail: false
- name: 'horse'
input:
source: osm
geometry: line
tags:
highway: track
horse: definitely
output:
layer: streets
geometry: line
min_zoom: 13
allow_extra_tags: false
tags:
kind: track
horse: definitely
tunnel: false
bridge: false
link: false
oneway: false
oneway_reverse: false
rail: false
- name: 'bicycle'
input:
source: osm
geometry: line
tags:
highway: track
bicycle: definitely
output:
layer: streets
geometry: line
min_zoom: 13
allow_extra_tags: false
tags:
kind: track
bicycle: definitely
tunnel: false
bridge: false
link: false
oneway: false
oneway_reverse: false
rail: false
- name: 'aeroway=taxiway'
input:
source: osm
geometry: line
tags:
aeroway: taxiway
ref: N
output:
- layer: streets
geometry: line
allow_extra_tags: false
min_zoom: 13
tags:
kind: taxiway
bridge: false
tunnel: false
link: false
rail: false
oneway: false
oneway_reverse: false
- layer: street_labels
geometry: line
allow_extra_tags: false
min_zoom: 13
tags:
kind: taxiway
ref: N
ref_rows: 1
ref_cols: 1
tunnel: false
- name: 'aeroway=runway'
input:
source: osm
geometry: line
tags:
aeroway: runway
ref: 07/25
surface: concrete:lanes
output:
- layer: streets
geometry: line
min_zoom: 11
allow_extra_tags: false
tags:
kind: runway
surface: concrete:lanes
bridge: false
tunnel: false
link: false
rail: false
oneway: false
oneway_reverse: false
- layer: street_labels
geometry: line
min_zoom: 11
allow_extra_tags: false
tags:
kind: runway
ref: 07/25
ref_rows: 1
ref_cols: 5
tunnel: false
- name: 'pedestrian polygon'
input:
source: osm
geometry: polygon
tags:
area: yes
highway: pedestrian
lit: yes
surface: paving_stones
name: 'Name'
name:en: 'Name (en)'
output:
- layer: street_polygons
geometry: polygon
min_zoom: 14
allow_extra_tags: false
tags:
bridge: false
kind: pedestrian
rail: false
surface: paving_stones
tunnel: false
- layer: streets_polygons_labels
geometry: point
min_zoom: 14
allow_extra_tags: false
tags:
kind: pedestrian
name: 'Name'
name_en: 'Name (en)'
- name: 'pedestrian polygon without area=yes gets also interpreted as an polygon'
input:
source: osm
geometry: polygon
tags:
highway: pedestrian
name: 'Name'
name:en: 'Name (en)'
output:
- layer: street_polygons
geometry: polygon
allow_extra_tags: false
min_zoom: 14
tags:
kind: pedestrian
bridge: false
tunnel: false
rail: false
- layer: streets_polygons_labels
geometry: point
allow_extra_tags: false
min_zoom: 14
tags:
kind: pedestrian
name: 'Name'
name_en: 'Name (en)'
- name: 'pedestrian polygon bridge'
input:
source: osm
geometry: polygon
tags:
area: yes
highway: service
bridge: yes
output:
layer: street_polygons
geometry: polygon
allow_extra_tags: false
min_zoom: 14
tags:
kind: service
bridge: true
rail: false
tunnel: false
- name: 'motorway junction'
input:
source: osm
geometry: point
tags:
highway: motorway_junction
name: 'Name'
ref: 'ref'
output:
layer: street_labels_points
geometry: point
allow_extra_tags: false
min_zoom: 12
tags:
kind: motorway_junction
name: 'Name'
ref: 'ref'
- name: 'bridge as polygon'
input:
source: osm
geometry: polygon
tags:
man_made: bridge
output:
layer: bridges
geometry: polygon
min_zoom: 12
tags:
kind: bridge
- name: 'gondola'
input:
source: osm
geometry: line
tags:
aerialway: gondola
name: 'Name'
output:
layer: aerialways
geometry: line
min_zoom: 12
tags:
kind: gondola
- name: ferry without motor at z12
input:
source: osm
geometry: line
tags:
route: ferry
motor_vehicle: no
name: Name
name:en: 'Name (en)'
name:de: 'Name (de)'
output:
layer: ferries
geometry: line
min_zoom: 12
at_zoom: 12
tags:
kind: ferry
name: Name
name_en: 'Name (en)'
name_de: 'Name (de)'
- name: ferry without motor at z11
input:
source: osm
geometry: line
tags:
route: ferry
motor_vehicle: no
name: Name
output:
at_zoom: 11
- name: ferry with motor at z11
input:
source: osm
geometry: line
tags:
route: ferry
name: Name
output:
layer: ferries
geometry: line
min_zoom: 10
at_zoom: 11
tags:
kind: ferry
name: Name
- name: 'pois can have names and adresses. This makes them not show up on the addresses layer'
input:
source: osm
geometry: point
tags:
office: diplomatic
name: 'Name'
addr:housename: 'Housename'
addr:housenumber: 'Housenumber'
output:
- layer: pois
geometry: point
allow_extra_tags: false
tags:
office: diplomatic
name: 'Name'
housename: 'Housename'
housenumber: 'Housenumber'
- name: 'arts_centre poi with invalid tag (man_made=beauty) is not emmitted as such'
input:
source: osm
geometry: point
tags:
amenity: arts_centre
man_made: beauty
output:
layer: pois
geometry: point
allow_extra_tags: false
tags:
amenity: arts_centre
- name: 'place_of_worship poi'
input:
source: osm
geometry: point
tags:
amenity: place_of_worship
religion: some_religion
denomination: some_denomination
output:
layer: pois
geometry: point
allow_extra_tags: false
tags:
amenity: place_of_worship
religion: some_religion
denomination: some_denomination
- name: 'recycling poi with invalid tag does not cause this to be emmitted'
input:
source: osm
geometry: point
tags:
amenity: recycling
recycling:glass_bottles: yes
recycling:paper: yes
recycling:clothes: yes
recycling:scrap_metal: yes
output:
layer: pois
geometry: point
allow_extra_tags: false
tags:
amenity: recycling
recycling:glass_bottles: true
recycling:paper: true
recycling:clothes: true
recycling:scrap_metal: true
- name: 'recycling poi without recycling tags set'
input:
source: osm
geometry: point
tags:
amenity: recycling
output:
layer: pois
geometry: point
allow_extra_tags: false
tags:
amenity: recycling
recycling:glass_bottles: false
recycling:paper: false
recycling:clothes: false
recycling:scrap_metal: false
- name: 'poi bank without atm'
input:
source: osm
geometry: point
tags:
atm: yes
amenity: bank
output:
layer: pois
geometry: point
allow_extra_tags: false
tags:
atm: true
amenity: bank
- name: 'poi bank with atm'
input:
source: osm
geometry: point
tags:
atm: no
amenity: bank
output:
layer: pois
geometry: point
allow_extra_tags: false
tags:
atm: false
amenity: bank
- name: 'poi on polygon'
input:
source: osm
geometry: polygon
tags:
historic: battlefield
output:
layer: pois
geometry: point
allow_extra_tags: false
tags:
historic: battlefield
- name: 'train station point'
input:
source: osm
geometry: point
tags:
railway: station
name: 'Name'
output:
layer: public_transport
geometry: point
allow_extra_tags: false
tags:
kind: station
name: 'Name'
- name: 'airport polygon'
input:
source: osm
geometry: polygon
tags:
aeroway: aerodrome
name: 'Name'
iata: eye eight a
output:
layer: public_transport
geometry: point
allow_extra_tags: false
tags:
kind: aerodrome
name: 'Name'
iata: eye eight a
- name: 'aerialway=station'
input:
source: osm
geometry: point
tags:
aerialway: station
output:
layer: public_transport
min_zoom: 13
geometry: point
allow_extra_tags: false
tags:
kind: aerialway_station
- name: 'railway=station'
input:
source: osm
geometry: point
tags:
railway: station
output:
layer: public_transport
min_zoom: 13
geometry: point
allow_extra_tags: false
tags:
kind: station
- name: 'unnamed hamlet'
input:
source: osm
geometry: point
tags:
place: hamlet
output: [ ]
- name: 'non administrative boundarys are not boundary labels'
input:
source: osm
geometry: POLYGON ((-0.5 -0.5, 0.5 -0.5, 0.5 0.5, -0.5 0.5, -0.5 -0.5))
tags:
admin_level: 4
government: transportation
short_name: DMV
name: New York State Department of Motor Vehicles
output: []
- name: 'boundary_labels'
input:
source: osm
geometry: POLYGON ((-0.5 -0.5, 0.5 -0.5, 0.5 0.5, -0.5 0.5, -0.5 -0.5))
tags:
admin_level: 2
boundary: administrative
name: Name
name:en: ''
name:de: Name (de)
output:
layer: boundary_labels
geometry: point
allow_extra_tags: false
min_zoom: 5
tags:
admin_level: 2
name: Name
name_de: Name (de)
# verified with a naive "projection" and sizes from https://www.thoughtco.com/degree-of-latitude-and-longitude-distance-4070616
# 1° lat ~ 110.567km at the equator
# 1° lon ~ 111.321km at the equator
# => ~12308.429km² = ~1230842,9 ha
# similar enough to ~1236418 ha adjusting for projection
way_area: 1236418.8935608722
- name: 'boundary_labels admin_level=2 z4'
input:
source: osm
geometry: POLYGON ((-1.5 -1.5, 1.5 -1.5, 1.5 1.5, -1.5 1.5, -1.5 -1.5))
tags:
admin_level: 2
boundary: administrative
name: Name
output:
layer: boundary_labels
geometry: point
min_zoom: 4
tags:
way_area: 1.112664016653054E7
admin_level: 2
- name: 'boundary_labels admin_level=2 z3'
input:
source: osm
geometry: POLYGON ((-4 -4, 4 -4, 4 4, -4 4, -4 -4))
tags:
admin_level: 2
boundary: administrative
name: Name
output:
layer: boundary_labels
geometry: point
min_zoom: 3
tags:
way_area: 7.906754940857396E7
admin_level: 2
- name: 'boundary_labels admin_level=2 z2'
input:
source: osm
geometry: POLYGON ((-10 -10, 10 -10, 10 10, -10 10, -10 -10))
tags:
admin_level: 2
boundary: administrative
name: Name
output:
layer: boundary_labels
geometry: point
min_zoom: 2
tags:
way_area: 4.920667262278699E8
admin_level: 2
- name: 'boundary_labels admin_level=4 z3'
input:
source: osm
geometry: POLYGON ((-10 -10, 10 -10, 10 10, -10 10, -10 -10))
tags:
admin_level: 4
boundary: administrative
name: Name
output:
layer: boundary_labels
geometry: point
min_zoom: 3
tags:
way_area: 4.920667262278699E8
admin_level: 4
- name: 'country boundary'
input:
source: osm
geometry: line
# TODO from relation
tags:
boundary: administrative
admin_level: '2'
maritime: yes
output:
layer: boundaries
geometry: line
min_zoom: 0
min_size: 0
tags:
maritime: true
admin_level: 2
disputed: false
- name: 'country coastline'
input:
source: osm
geometry: line
# TODO from relation
tags:
boundary: administrative
admin_level: '2'
natural: coastline
output:
layer: boundaries
geometry: line
min_zoom: 0
min_size: 0
tags:
maritime: true
admin_level: 2
disputed: false
- name: 'state boundary'
input:
source: osm
geometry: line
# TODO from relation
tags:
boundary: administrative
admin_level: 4
output:
layer: boundaries
geometry: line
min_zoom: 7
min_size: 0
tags:
maritime: false
admin_level: 4
disputed: false
# TODO take min admin level
- name: 'hamlet'
input:
source: osm
geometry: point
tags:
place: hamlet
name: 'Name'
output:
layer: place_labels
geometry: point
allow_extra_tags: false
min_zoom: 10
tags:
kind: hamlet
name: 'Name'
population: 50
- name: 'city with population'
input:
source: osm
geometry: point
tags:
place: city
name: 'Name'
population: '1300'
output:
layer: place_labels
geometry: point
allow_extra_tags: false
min_zoom: 6
tags:
kind: city
name: 'Name'
population: 1300
- name: 'state capital'
input:
source: osm
geometry: point
tags:
place: city
capital: '4'
name: 'Name'
output:
layer: place_labels
geometry: point
allow_extra_tags: false
min_zoom: 4
tags:
kind: state_capital
name: 'Name'
population: 100000
- name: 'capital'
input:
source: osm
geometry: point
tags:
place: city
capital: yes
name: 'Name'
output:
layer: place_labels
geometry: point
allow_extra_tags: false
min_zoom: 4
tags:
kind: capital
name: 'Name'
population: 100000
- name: 'population with comma'
input:
source: osm
geometry: point
tags:
place: city
population: 123,123
name: 'Name'
output:
layer: place_labels
geometry: point
tags:
kind: city
population: 123123
- name: 'XAPE-Negativliste: Hafenbecken (natural=water + leisure=marina) faellt raus'
input:
source: osm
geometry: polygon
tags:
natural: water
leisure: marina
name: Yachthafen Wedel
output: []
- name: 'XAPE-Gegenprobe: Hafengelaende (landuse=industrial + harbour=yes) bleibt'
input:
source: osm
geometry: polygon
tags:
landuse: industrial
harbour: 'yes'
name: Hafen Cuxhaven
output:
# min_zoom 10 statt der 11 der uebrigen Landflaechen: das uebernommene
# Schema uebersteuert landuse=industrial ausdruecklich.
- layer: land
geometry: polygon
min_zoom: 10
tags:
kind: industrial
- name: 'XAPE-Gegenprobe: Hafengebaeude (building=yes + harbour=yes) bleibt'
input:
source: osm
geometry: polygon
tags:
building: 'yes'
harbour: 'yes'
output:
- layer: buildings
geometry: polygon
min_zoom: 14
- name: 'XAPE-Negativliste: Marina-POI (amenity=cafe + leisure=marina) faellt raus'
input:
source: osm
geometry: point
tags:
amenity: cafe
leisure: marina
name: Hafenkiosk
output: []
- name: 'XAPE-Gegenprobe: seamark:type=harbour bleibt'
input:
source: osm
geometry: polygon
tags:
natural: water
'seamark:type': harbour
name: Hafen
output:
- layer: water_polygons
geometry: polygon
min_zoom: 4
tags:
kind: water
- layer: water_polygons_labels
geometry: point
min_zoom: 14
tags:
kind: water
name: Hafen
# --- Gegenproben: der Ausschluss ist eng gefasst ---
- name: 'XAPE-Gegenprobe: waterway=dock bleibt'
input:
source: osm
geometry: polygon
tags:
waterway: dock
name: Trockendock
# min_zoom 10 statt der 4 der uebrigen Wasserflaechen: das uebernommene Schema
# uebersteuert waterway=[dock, canal] ausdruecklich auf 10.
output:
- layer: water_polygons
geometry: polygon
min_zoom: 10
tags:
kind: dock
- layer: water_polygons_labels
geometry: point
min_zoom: 10
tags:
kind: dock
name: Trockendock
- name: 'XAPE-Gegenprobe: man_made=lighthouse bleibt'
input:
source: osm
geometry: point
tags:
man_made: lighthouse
name: Roter Sand
# Die POI-Ebene kennt kein kind: sie schreibt den auszeichnenden Schluessel
# selbst, hier also man_made.
output:
- layer: pois
geometry: point
min_zoom: 14
tags:
man_made: lighthouse
name: Roter Sand
- name: 'XAPE-Gegenprobe: amenity=ferry_terminal bleibt'
input:
source: osm
geometry: point
tags:
amenity: ferry_terminal
name: Faehranleger Norddeich
output:
- layer: public_transport
geometry: point
min_zoom: 12
tags:
kind: ferry_terminal
name: Faehranleger Norddeich
basemap/schema/shortbread.upstream.spec.yml
Die übernommenen Beispiele aus Planetiler v0.10.2, Byte für Byte unverändert.
unverändert übernommen1229 Zeilen23363 Bytenach 4.6(b) geschuldet
SHA-256 59c8b133fd511a93d28b4c9e172c658950118eac6db0e7b843486b93a555f00b
in WERKZEUG.md veröffentlicht 59c8b133fd511a93d28b4c9e172c658950118eac6db0e7b843486b93a555f00b — stimmt überein
examples:
- name: ocean polygons
input:
source: ocean
geometry: polygon
tags:
x: 1
y: 2
output:
layer: ocean
geometry: polygon
min_zoom: 0
tags: # no tags
- name: natural=glacier
input:
source: osm
geometry: polygon
tags:
natural: glacier
name: The glacier
name:en: The glacier (en)
name:de: The glacier (de)
output:
- layer: water_polygons
geometry: polygon
min_zoom: 4
tags:
kind: glacier
- layer: water_polygons_labels
geometry: point
min_zoom: 14
tags:
kind: glacier
name: The glacier
name_en: The glacier (en)
name_de: The glacier (de)
- name: waterway=dock
input:
source: osm
geometry: POLYGON ((-0.5 -0.5, 0.5 -0.5, 0.5 0.5, -0.5 0.5, -0.5 -0.5))
tags:
waterway: dock
output:
layer: water_polygons
geometry: polygon
min_zoom: 10
tags:
kind: dock
# verified with a naive "projection" and sizes from https://www.thoughtco.com/degree-of-latitude-and-longitude-distance-4070616
# 1° lat ~ 110.567km at the equator
# 1° lon ~ 111.321km at the equator
# => ~12308.429km² = ~12308.429e^6 m² = ~1.2308429e^10 m²
way_area: 1.236418893560872E10
- name: waterway=canal linestring
input:
source: osm
geometry: line
tags:
waterway: canal
tunnel: yes
name: The Canal
name:en: The Canal (en)
name:de: The Canal (de)
output:
- layer: water_lines
geometry: line
min_zoom: 9
tags:
kind: canal
tunnel: true
bridge: false
- layer: water_lines_labels
geometry: line
min_zoom: 12
tags:
kind: canal
tunnel: true
bridge: false
name: The Canal
name_en: The Canal (en)
name_de: The Canal (de)
- name: waterway=stream linestring
input:
source: osm
geometry: line
tags:
waterway: stream
name: The Stream
name:en: The Stream (en)
name:de: The Stream (de)
output:
- layer: water_lines
geometry: line
min_zoom: 14
tags:
kind: stream
tunnel: false
bridge: false
- layer: water_lines_labels
geometry: line
min_zoom: 14
tags:
kind: stream
tunnel: false
bridge: false
name: The Stream
name_en: The Stream (en)
name_de: The Stream (de)
- name: waterway=dam line
input:
source: osm
geometry: line
tags:
waterway: dam
output:
- layer: dam_lines
geometry: line
min_zoom: 12
tags:
kind: dam
- name: waterway=dam polygon
input:
source: osm
geometry: polygon
tags:
waterway: dam
output:
- layer: dam_polygons
geometry: polygon
min_zoom: 12
tags:
kind: dam
- name: dykes are not dams
input:
source: osm
geometry: polygon
tags:
man_made: dyke
embankment: dyke
geological: dyke
output: []
- name: man_made=pier polygon
input:
source: osm
geometry: polygon
tags:
man_made: pier
output:
- layer: pier_polygons
geometry: polygon
min_zoom: 12
tags:
kind: pier
- name: man_made=pier line
input:
source: osm
geometry: line
tags:
man_made: pier
output:
- layer: pier_lines
geometry: line
min_zoom: 12
tags:
kind: pier
- name: landuse=grass
input:
source: osm
geometry: polygon
tags:
landuse: grass
output:
- layer: land
geometry: polygon
min_zoom: 11
tags:
kind: grass
- name: landuse=forest
input:
source: osm
geometry: polygon
tags:
landuse: forest
output:
- layer: land
geometry: polygon
min_zoom: 7
tags:
kind: forest
- name: natural=wood override kind to forest
input:
source: osm
geometry: polygon
tags:
natural: wood
output:
- layer: land
geometry: polygon
min_zoom: 7
tags:
kind: forest
- name: amenity=parking
input:
source: osm
geometry: polygon
tags:
amenity: parking
output:
- layer: sites
geometry: polygon
min_zoom: 14
tags:
kind: parking
- name: building=yes
input:
source: osm
geometry: polygon
tags:
building: yes
output:
- layer: buildings
geometry: polygon
min_zoom: 14
- name: building=house
input:
source: osm
geometry: polygon
tags:
building: house
output:
- layer: buildings
geometry: polygon
min_zoom: 14
- name: address polygon with house number
input:
source: osm
geometry: polygon
tags:
addr:housenumber: 123
output:
- layer: addresses
geometry: point
min_zoom: 14
tags:
housenumber: 123
- name: address point with house name
input:
source: osm
geometry: point
tags:
addr:housename: the 123 house
output:
- layer: addresses
geometry: point
min_zoom: 14
tags:
housename: the 123 house
- name: B27 highway
input:
source: osm
geometry: line
tags:
change:lanes:backward: no
change:lanes:forward: not_left|not_right
embankment: yes
highway: primary
lanes: 3
lanes:backward: 1
lanes:forward: 2
maxspeed: 100
overtaking:backward: no
priority_road: designated
ref: B 27
sidewalk: no
source:maxspeed: DE:rural
surface: asphalt
zone:traffic: DE:rural
output:
- layer: streets
geometry: line
min_zoom: 8
min_size: 0
tags:
bridge: false
kind: primary
link: false
rail: false
surface: asphalt
tunnel: false
- layer: street_labels
geometry: line
min_zoom: 12
allow_extra_tags: false
tags:
kind: primary
ref: B 27
ref_rows: 1
ref_cols: 4
tunnel: false
- name: B39A link
input:
source: osm
geometry: line
tags:
cycleway:right: no
destination: Löwenstein;Obersulm;Ellhofen;Breitenauer See
destination:colour: ;;;brown
foot: no
hazard: traffic_signals
highway: primary_link
lanes: 1
lit: no
maxspeed: 50
oneway: yes
ref: B 39;B 39A
sidewalk: no
surface: asphalt
turn: right
output:
- layer: streets
geometry: line
min_zoom: 8
allow_extra_tags: false
min_size: 0
tags:
bridge: false
kind: primary
link: true
rail: false
surface: asphalt
tunnel: false
oneway: true
oneway_reverse: false
- layer: street_labels
geometry: line
min_zoom: 13
allow_extra_tags: false
tags:
kind: primary_link
ref: "B 39\nB 39A"
ref_rows: 2
ref_cols: 5
tunnel: false
- name: rail with service
input:
source: osm
geometry: line
tags:
railway: rail
service: service_value
output:
layer: streets
geometry: line
min_zoom: 8
allow_extra_tags: false
min_size: 0
tags:
bridge: false
kind: rail
link: false
rail: true
tunnel: false
service: service_value
oneway: false
oneway_reverse: false
- name: narrow_gauge without service
input:
source: osm
geometry: line
tags:
railway: narrow_gauge
output:
layer: streets
geometry: line
min_zoom: 10
allow_extra_tags: false
tags:
bridge: false
kind: narrow_gauge
link: false
rail: true
tunnel: false
oneway: false
oneway_reverse: false
- name: 'track with grade'
input:
source: osm
geometry: line
tags:
highway: track
tracktype: grade2
output:
layer: streets
geometry: line
min_zoom: 13
at_zoom: 11
allow_extra_tags: false
tags:
bridge: false
kind: track
link: false
rail: false
tracktype: grade2
tunnel: false
- name: 'named path'
input:
source: osm
geometry: line
tags:
highway: path
name: Name
name:en: English Name
name:de: German Name
output:
- layer: streets
geometry: line
tags:
kind: path
- layer: street_labels
geometry: line
tags:
kind: path
name: Name
name_en: English Name
name_de: German Name
- name: 'motorway attributes drop below z11'
input:
source: osm
geometry: line
tags:
highway: motorway
tracktype: grade2
output:
layer: streets
geometry: line
min_zoom: 5
at_zoom: 10
allow_extra_tags: false
tags:
kind: motorway
rail: false
- name: 'path bridge'
input:
source: osm
geometry: line
tags:
highway: path
bridge: yes
output:
layer: streets
geometry: line
min_zoom: 13
allow_extra_tags: false
tags:
kind: path
bridge: true
link: false
oneway: false
oneway_reverse: false
rail: false
tunnel: false
- name: 'pedestrian tunnel'
input:
source: osm
geometry: line
tags:
highway: pedestrian
tunnel: yes
output:
layer: streets
geometry: line
min_zoom: 13
allow_extra_tags: false
tags:
kind: pedestrian
tunnel: true
bridge: false
link: false
oneway: false
oneway_reverse: false
rail: false
- name: 'horse'
input:
source: osm
geometry: line
tags:
highway: track
horse: definitely
output:
layer: streets
geometry: line
min_zoom: 13
allow_extra_tags: false
tags:
kind: track
horse: definitely
tunnel: false
bridge: false
link: false
oneway: false
oneway_reverse: false
rail: false
- name: 'bicycle'
input:
source: osm
geometry: line
tags:
highway: track
bicycle: definitely
output:
layer: streets
geometry: line
min_zoom: 13
allow_extra_tags: false
tags:
kind: track
bicycle: definitely
tunnel: false
bridge: false
link: false
oneway: false
oneway_reverse: false
rail: false
- name: 'aeroway=taxiway'
input:
source: osm
geometry: line
tags:
aeroway: taxiway
ref: N
output:
- layer: streets
geometry: line
allow_extra_tags: false
min_zoom: 13
tags:
kind: taxiway
bridge: false
tunnel: false
link: false
rail: false
oneway: false
oneway_reverse: false
- layer: street_labels
geometry: line
allow_extra_tags: false
min_zoom: 13
tags:
kind: taxiway
ref: N
ref_rows: 1
ref_cols: 1
tunnel: false
- name: 'aeroway=runway'
input:
source: osm
geometry: line
tags:
aeroway: runway
ref: 07/25
surface: concrete:lanes
output:
- layer: streets
geometry: line
min_zoom: 11
allow_extra_tags: false
tags:
kind: runway
surface: concrete:lanes
bridge: false
tunnel: false
link: false
rail: false
oneway: false
oneway_reverse: false
- layer: street_labels
geometry: line
min_zoom: 11
allow_extra_tags: false
tags:
kind: runway
ref: 07/25
ref_rows: 1
ref_cols: 5
tunnel: false
- name: 'pedestrian polygon'
input:
source: osm
geometry: polygon
tags:
area: yes
highway: pedestrian
lit: yes
surface: paving_stones
name: 'Name'
name:en: 'Name (en)'
output:
- layer: street_polygons
geometry: polygon
min_zoom: 14
allow_extra_tags: false
tags:
bridge: false
kind: pedestrian
rail: false
surface: paving_stones
tunnel: false
- layer: streets_polygons_labels
geometry: point
min_zoom: 14
allow_extra_tags: false
tags:
kind: pedestrian
name: 'Name'
name_en: 'Name (en)'
- name: 'pedestrian polygon without area=yes gets also interpreted as an polygon'
input:
source: osm
geometry: polygon
tags:
highway: pedestrian
name: 'Name'
name:en: 'Name (en)'
output:
- layer: street_polygons
geometry: polygon
allow_extra_tags: false
min_zoom: 14
tags:
kind: pedestrian
bridge: false
tunnel: false
rail: false
- layer: streets_polygons_labels
geometry: point
allow_extra_tags: false
min_zoom: 14
tags:
kind: pedestrian
name: 'Name'
name_en: 'Name (en)'
- name: 'pedestrian polygon bridge'
input:
source: osm
geometry: polygon
tags:
area: yes
highway: service
bridge: yes
output:
layer: street_polygons
geometry: polygon
allow_extra_tags: false
min_zoom: 14
tags:
kind: service
bridge: true
rail: false
tunnel: false
- name: 'motorway junction'
input:
source: osm
geometry: point
tags:
highway: motorway_junction
name: 'Name'
ref: 'ref'
output:
layer: street_labels_points
geometry: point
allow_extra_tags: false
min_zoom: 12
tags:
kind: motorway_junction
name: 'Name'
ref: 'ref'
- name: 'bridge as polygon'
input:
source: osm
geometry: polygon
tags:
man_made: bridge
output:
layer: bridges
geometry: polygon
min_zoom: 12
tags:
kind: bridge
- name: 'gondola'
input:
source: osm
geometry: line
tags:
aerialway: gondola
name: 'Name'
output:
layer: aerialways
geometry: line
min_zoom: 12
tags:
kind: gondola
- name: ferry without motor at z12
input:
source: osm
geometry: line
tags:
route: ferry
motor_vehicle: no
name: Name
name:en: 'Name (en)'
name:de: 'Name (de)'
output:
layer: ferries
geometry: line
min_zoom: 12
at_zoom: 12
tags:
kind: ferry
name: Name
name_en: 'Name (en)'
name_de: 'Name (de)'
- name: ferry without motor at z11
input:
source: osm
geometry: line
tags:
route: ferry
motor_vehicle: no
name: Name
output:
at_zoom: 11
- name: ferry with motor at z11
input:
source: osm
geometry: line
tags:
route: ferry
name: Name
output:
layer: ferries
geometry: line
min_zoom: 10
at_zoom: 11
tags:
kind: ferry
name: Name
- name: 'pois can have names and adresses. This makes them not show up on the addresses layer'
input:
source: osm
geometry: point
tags:
office: diplomatic
name: 'Name'
addr:housename: 'Housename'
addr:housenumber: 'Housenumber'
output:
- layer: pois
geometry: point
allow_extra_tags: false
tags:
office: diplomatic
name: 'Name'
housename: 'Housename'
housenumber: 'Housenumber'
- name: 'arts_centre poi with invalid tag (man_made=beauty) is not emmitted as such'
input:
source: osm
geometry: point
tags:
amenity: arts_centre
man_made: beauty
output:
layer: pois
geometry: point
allow_extra_tags: false
tags:
amenity: arts_centre
- name: 'place_of_worship poi'
input:
source: osm
geometry: point
tags:
amenity: place_of_worship
religion: some_religion
denomination: some_denomination
output:
layer: pois
geometry: point
allow_extra_tags: false
tags:
amenity: place_of_worship
religion: some_religion
denomination: some_denomination
- name: 'recycling poi with invalid tag does not cause this to be emmitted'
input:
source: osm
geometry: point
tags:
amenity: recycling
recycling:glass_bottles: yes
recycling:paper: yes
recycling:clothes: yes
recycling:scrap_metal: yes
output:
layer: pois
geometry: point
allow_extra_tags: false
tags:
amenity: recycling
recycling:glass_bottles: true
recycling:paper: true
recycling:clothes: true
recycling:scrap_metal: true
- name: 'recycling poi without recycling tags set'
input:
source: osm
geometry: point
tags:
amenity: recycling
output:
layer: pois
geometry: point
allow_extra_tags: false
tags:
amenity: recycling
recycling:glass_bottles: false
recycling:paper: false
recycling:clothes: false
recycling:scrap_metal: false
- name: 'poi bank without atm'
input:
source: osm
geometry: point
tags:
atm: yes
amenity: bank
output:
layer: pois
geometry: point
allow_extra_tags: false
tags:
atm: true
amenity: bank
- name: 'poi bank with atm'
input:
source: osm
geometry: point
tags:
atm: no
amenity: bank
output:
layer: pois
geometry: point
allow_extra_tags: false
tags:
atm: false
amenity: bank
- name: 'poi on polygon'
input:
source: osm
geometry: polygon
tags:
historic: battlefield
output:
layer: pois
geometry: point
allow_extra_tags: false
tags:
historic: battlefield
- name: 'train station point'
input:
source: osm
geometry: point
tags:
railway: station
name: 'Name'
output:
layer: public_transport
geometry: point
allow_extra_tags: false
tags:
kind: station
name: 'Name'
- name: 'airport polygon'
input:
source: osm
geometry: polygon
tags:
aeroway: aerodrome
name: 'Name'
iata: eye eight a
output:
layer: public_transport
geometry: point
allow_extra_tags: false
tags:
kind: aerodrome
name: 'Name'
iata: eye eight a
- name: 'aerialway=station'
input:
source: osm
geometry: point
tags:
aerialway: station
output:
layer: public_transport
min_zoom: 13
geometry: point
allow_extra_tags: false
tags:
kind: aerialway_station
- name: 'railway=station'
input:
source: osm
geometry: point
tags:
railway: station
output:
layer: public_transport
min_zoom: 13
geometry: point
allow_extra_tags: false
tags:
kind: station
- name: 'unnamed hamlet'
input:
source: osm
geometry: point
tags:
place: hamlet
output: [ ]
- name: 'non administrative boundarys are not boundary labels'
input:
source: osm
geometry: POLYGON ((-0.5 -0.5, 0.5 -0.5, 0.5 0.5, -0.5 0.5, -0.5 -0.5))
tags:
admin_level: 4
government: transportation
short_name: DMV
name: New York State Department of Motor Vehicles
output: []
- name: 'boundary_labels'
input:
source: osm
geometry: POLYGON ((-0.5 -0.5, 0.5 -0.5, 0.5 0.5, -0.5 0.5, -0.5 -0.5))
tags:
admin_level: 2
boundary: administrative
name: Name
name:en: ''
name:de: Name (de)
output:
layer: boundary_labels
geometry: point
allow_extra_tags: false
min_zoom: 5
tags:
admin_level: 2
name: Name
name_de: Name (de)
# verified with a naive "projection" and sizes from https://www.thoughtco.com/degree-of-latitude-and-longitude-distance-4070616
# 1° lat ~ 110.567km at the equator
# 1° lon ~ 111.321km at the equator
# => ~12308.429km² = ~1230842,9 ha
# similar enough to ~1236418 ha adjusting for projection
way_area: 1236418.8935608722
- name: 'boundary_labels admin_level=2 z4'
input:
source: osm
geometry: POLYGON ((-1.5 -1.5, 1.5 -1.5, 1.5 1.5, -1.5 1.5, -1.5 -1.5))
tags:
admin_level: 2
boundary: administrative
name: Name
output:
layer: boundary_labels
geometry: point
min_zoom: 4
tags:
way_area: 1.112664016653054E7
admin_level: 2
- name: 'boundary_labels admin_level=2 z3'
input:
source: osm
geometry: POLYGON ((-4 -4, 4 -4, 4 4, -4 4, -4 -4))
tags:
admin_level: 2
boundary: administrative
name: Name
output:
layer: boundary_labels
geometry: point
min_zoom: 3
tags:
way_area: 7.906754940857396E7
admin_level: 2
- name: 'boundary_labels admin_level=2 z2'
input:
source: osm
geometry: POLYGON ((-10 -10, 10 -10, 10 10, -10 10, -10 -10))
tags:
admin_level: 2
boundary: administrative
name: Name
output:
layer: boundary_labels
geometry: point
min_zoom: 2
tags:
way_area: 4.920667262278699E8
admin_level: 2
- name: 'boundary_labels admin_level=4 z3'
input:
source: osm
geometry: POLYGON ((-10 -10, 10 -10, 10 10, -10 10, -10 -10))
tags:
admin_level: 4
boundary: administrative
name: Name
output:
layer: boundary_labels
geometry: point
min_zoom: 3
tags:
way_area: 4.920667262278699E8
admin_level: 4
- name: 'country boundary'
input:
source: osm
geometry: line
# TODO from relation
tags:
boundary: administrative
admin_level: '2'
maritime: yes
output:
layer: boundaries
geometry: line
min_zoom: 0
min_size: 0
tags:
maritime: true
admin_level: 2
disputed: false
- name: 'country coastline'
input:
source: osm
geometry: line
# TODO from relation
tags:
boundary: administrative
admin_level: '2'
natural: coastline
output:
layer: boundaries
geometry: line
min_zoom: 0
min_size: 0
tags:
maritime: true
admin_level: 2
disputed: false
- name: 'state boundary'
input:
source: osm
geometry: line
# TODO from relation
tags:
boundary: administrative
admin_level: 4
output:
layer: boundaries
geometry: line
min_zoom: 7
min_size: 0
tags:
maritime: false
admin_level: 4
disputed: false
# TODO take min admin level
- name: 'hamlet'
input:
source: osm
geometry: point
tags:
place: hamlet
name: 'Name'
output:
layer: place_labels
geometry: point
allow_extra_tags: false
min_zoom: 10
tags:
kind: hamlet
name: 'Name'
population: 50
- name: 'city with population'
input:
source: osm
geometry: point
tags:
place: city
name: 'Name'
population: '1300'
output:
layer: place_labels
geometry: point
allow_extra_tags: false
min_zoom: 6
tags:
kind: city
name: 'Name'
population: 1300
- name: 'state capital'
input:
source: osm
geometry: point
tags:
place: city
capital: '4'
name: 'Name'
output:
layer: place_labels
geometry: point
allow_extra_tags: false
min_zoom: 4
tags:
kind: state_capital
name: 'Name'
population: 100000
- name: 'capital'
input:
source: osm
geometry: point
tags:
place: city
capital: yes
name: 'Name'
output:
layer: place_labels
geometry: point
allow_extra_tags: false
min_zoom: 4
tags:
kind: capital
name: 'Name'
population: 100000
- name: 'population with comma'
input:
source: osm
geometry: point
tags:
place: city
population: 123,123
name: 'Name'
output:
layer: place_labels
geometry: point
tags:
kind: city
population: 123123