[breaking] fix: streets being differently slightly different to shortbread (#1221)

* fix streets

* fix street polygon difference

* fix street polygon difference

* remove now redundant comment

* handle street_labels too

* fix merge fuckup

* make testcase more precise

* make testcase more precise
pull/1232/head^2
Frank Elsinga 2025-04-22 11:43:52 +02:00 zatwierdzone przez GitHub
rodzic 39dbdf825f
commit 7e9fed402e
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
2 zmienionych plików z 193 dodań i 58 usunięć

Wyświetl plik

@ -314,6 +314,7 @@ examples:
ref: B 27 ref: B 27
ref_rows: 1 ref_rows: 1
ref_cols: 4 ref_cols: 4
tunnel: false
- name: B39A link - name: B39A link
input: input:
@ -347,15 +348,18 @@ examples:
rail: false rail: false
surface: asphalt surface: asphalt
tunnel: false tunnel: false
oneway: true
oneway_reverse: false
- layer: street_labels - layer: street_labels
geometry: line geometry: line
min_zoom: 13 min_zoom: 13
allow_extra_tags: false allow_extra_tags: false
tags: tags:
kind: primary kind: primary_link
ref: "B 39\nB 39A" ref: "B 39\nB 39A"
ref_rows: 2 ref_rows: 2
ref_cols: 5 ref_cols: 5
tunnel: false
- name: rail with service - name: rail with service
input: input:
@ -377,6 +381,8 @@ examples:
rail: true rail: true
tunnel: false tunnel: false
service: service_value service: service_value
oneway: false
oneway_reverse: false
- name: narrow_gauge without service - name: narrow_gauge without service
input: input:
@ -395,6 +401,8 @@ examples:
link: false link: false
rail: true rail: true
tunnel: false tunnel: false
oneway: false
oneway_reverse: false
- name: 'track with grade' - name: 'track with grade'
input: input:
@ -454,22 +462,7 @@ examples:
allow_extra_tags: false allow_extra_tags: false
tags: tags:
kind: motorway kind: motorway
rail: false
- name: 'rail attributes drop below z11'
input:
source: osm
geometry: line
tags:
railway: rail
service: primary
output:
layer: streets
geometry: line
min_zoom: 8
at_zoom: 10
allow_extra_tags: false
tags:
kind: rail
- name: 'path bridge' - name: 'path bridge'
input: input:
@ -482,9 +475,14 @@ examples:
layer: streets layer: streets
geometry: line geometry: line
min_zoom: 13 min_zoom: 13
allow_extra_tags: false
tags: tags:
bridge: true
kind: path kind: path
bridge: true
link: false
oneway: false
oneway_reverse: false
rail: false
tunnel: false tunnel: false
- name: 'pedestrian tunnel' - name: 'pedestrian tunnel'
@ -497,10 +495,16 @@ examples:
output: output:
layer: streets layer: streets
geometry: line geometry: line
min_zoom: 13
allow_extra_tags: false
tags: tags:
bridge: false
kind: pedestrian kind: pedestrian
tunnel: true tunnel: true
bridge: false
link: false
oneway: false
oneway_reverse: false
rail: false
- name: 'horse' - name: 'horse'
input: input:
@ -512,9 +516,17 @@ examples:
output: output:
layer: streets layer: streets
geometry: line geometry: line
min_zoom: 13
allow_extra_tags: false
tags: tags:
kind: track kind: track
horse: definitely horse: definitely
tunnel: false
bridge: false
link: false
oneway: false
oneway_reverse: false
rail: false
- name: 'bicycle' - name: 'bicycle'
input: input:
@ -526,9 +538,17 @@ examples:
output: output:
layer: streets layer: streets
geometry: line geometry: line
min_zoom: 13
allow_extra_tags: false
tags: tags:
kind: track kind: track
bicycle: definitely bicycle: definitely
tunnel: false
bridge: false
link: false
oneway: false
oneway_reverse: false
rail: false
- name: 'aeroway=taxiway' - name: 'aeroway=taxiway'
input: input:
@ -538,11 +558,28 @@ examples:
aeroway: taxiway aeroway: taxiway
ref: N ref: N
output: output:
layer: streets - layer: streets
geometry: line geometry: line
min_zoom: 13 allow_extra_tags: false
tags: min_zoom: 13
kind: taxiway 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' - name: 'aeroway=runway'
input: input:
@ -553,12 +590,29 @@ examples:
ref: 07/25 ref: 07/25
surface: concrete:lanes surface: concrete:lanes
output: output:
layer: streets - layer: streets
geometry: line geometry: line
min_zoom: 11 min_zoom: 11
allow_extra_tags: false
tags: tags:
kind: runway kind: runway
surface: concrete:lanes 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' - name: 'pedestrian polygon'
input: input:
@ -582,7 +636,7 @@ examples:
rail: false rail: false
surface: paving_stones surface: paving_stones
tunnel: false tunnel: false
- layer: street_polygons_labels - layer: streets_polygons_labels
geometry: point geometry: point
min_zoom: 14 min_zoom: 14
allow_extra_tags: false allow_extra_tags: false
@ -591,7 +645,7 @@ examples:
name: 'Name' name: 'Name'
name_en: 'Name (en)' name_en: 'Name (en)'
- name: 'ignore pedestrian polygon without area=yes' - name: 'pedestrian polygon without area=yes gets also interpreted as an polygon'
input: input:
source: osm source: osm
geometry: polygon geometry: polygon
@ -599,7 +653,24 @@ examples:
highway: pedestrian highway: pedestrian
name: 'Name' name: 'Name'
name:en: 'Name (en)' name:en: 'Name (en)'
output: [ ] 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' - name: 'pedestrian polygon bridge'
input: input:
@ -612,10 +683,13 @@ examples:
output: output:
layer: street_polygons layer: street_polygons
geometry: polygon geometry: polygon
allow_extra_tags: false
min_zoom: 14 min_zoom: 14
tags: tags:
kind: service kind: service
bridge: true bridge: true
rail: false
tunnel: false
- name: 'motorway junction' - name: 'motorway junction'
input: input:
@ -628,6 +702,7 @@ examples:
output: output:
layer: street_labels_points layer: street_labels_points
geometry: point geometry: point
allow_extra_tags: false
min_zoom: 12 min_zoom: 12
tags: tags:
kind: motorway_junction kind: motorway_junction

Wyświetl plik

@ -249,15 +249,17 @@ layers:
attributes: attributes:
- key: kind - key: kind
type: match_value type: match_value
- &water_lines_attr_tunnel - &attr_tunnel
key: tunnel key: tunnel
min_zoom: 11 # to reuse for streets, not relevant for water as min_zoom is lower
value: true value: true
include_when: include_when:
tunnel: [ yes, building_passage ] tunnel: [ yes, building_passage ]
covered: yes covered: yes
else: false else: false
- &water_lines_attr_bridge - &attr_bridge
key: bridge key: bridge
min_zoom: 11 # to reuse for streets, not relevant for water as min_zoom is lower
value: true value: true
include_when: include_when:
bridge: bridge:
@ -295,8 +297,8 @@ layers:
- *name - *name
- *name_en - *name_en
- *name_de - *name_de
- *water_lines_attr_tunnel - *attr_tunnel
- *water_lines_attr_bridge - *attr_bridge
- id: dam_lines - id: dam_lines
features: features:
@ -643,7 +645,11 @@ layers:
11: 11:
aeroway: runway aeroway: runway
12: 12:
highway: [ residential, unclassified ] highway:
- bus_guideway
- busway
- residential
- unclassified
# TODO min_tile_cover_size: 0 # TODO min_tile_cover_size: 0
# TODO z-order # TODO z-order
include_when: include_when:
@ -660,6 +666,8 @@ layers:
- tertiary_link - tertiary_link
- unclassified - unclassified
- residential - residential
- busway
- bus_guideway
- living_street - living_street
- service - service
- pedestrian - pedestrian
@ -686,28 +694,40 @@ layers:
min_zoom: 11 min_zoom: 11
value: true value: true
include_when: include_when:
highway: '%_link' highway:
- motorway_link
- trunk_link
- primary_link
- secondary_link
- tertiary_link
else: false else: false
- key: rail - key: rail
min_zoom: 11 min_zoom: 5
value: true value: true
include_when: include_when:
railway: __any__ railway: __any__
else: false else: false
- &tunnel_attr - *attr_tunnel
key: tunnel - *attr_bridge
min_zoom: 11 - key: oneway
min_zoom: 14
value: true value: true
include_when: include_when:
tunnel: [ yes, building_passage ] __all__:
covered: yes railway: ''
oneway:
- yes
- 1
- true
- -1
else: false else: false
- &bridge_attr - key: oneway_reverse
key: bridge min_zoom: 14
min_zoom: 11
value: true value: true
include_when: include_when:
bridge: yes __all__:
railway: ''
oneway: -1
else: false else: false
- key: tracktype - key: tracktype
min_zoom: 11 min_zoom: 11
@ -724,19 +744,27 @@ layers:
features: features:
- source: osm - source: osm
geometry: polygon geometry: polygon
min_zoom: 14 min_zoom:
default_value: 14
overrides:
11:
area:aeroway: runway
13:
area:aeroway: taxiway
include_when: include_when:
__all__: # TODO this is a really strange difference to street_polygons.
- highway: [ pedestrian, service ] # https://github.com/shortbread-tiles/shortbread-docs/issues/80
- area: yes area:aeroway: [ runway, taxiway ]
highway: [ pedestrian, service ]
attributes: attributes:
- key: kind - key: kind
type: match_value type: match_value
- *bridge_attr - *attr_bridge
- *tunnel_attr
- key: surface
- key: rail - key: rail
value: false # TODO omit? value: false
- key: service
- key: surface
- *attr_tunnel
- id: street_labels - id: street_labels
features: features:
@ -747,6 +775,16 @@ layers:
overrides: overrides:
10: 10:
highway: motorway highway: motorway
railway:
- rail
- narrow_gauge
- tram
- light_rail
- funicular
- subway
- monorail
11:
aeroway: runway
12: 12:
highway: [ trunk, primary ] highway: [ trunk, primary ]
13: 13:
@ -757,6 +795,7 @@ layers:
- secondary - secondary
- secondary_link - secondary_link
- tertiary - tertiary
aeroway: taxiway
include_when: include_when:
highway: highway:
- motorway - motorway
@ -772,6 +811,8 @@ layers:
- unclassified - unclassified
- residential - residential
- living_street - living_street
- busway
- bus_guideway
- service - service
- pedestrian - pedestrian
- track - track
@ -779,13 +820,24 @@ layers:
- steps - steps
- path - path
- cycleway - cycleway
aeroway:
- runway
- taxiway
railway:
- rail
- narrow_gauge
- tram
- light_rail
- funicular
- subway
- monorail
exclude_when: exclude_when:
__all__: __all__:
name: '' name: ''
ref: '' ref: ''
attributes: attributes:
- key: kind - key: kind
value: '${ match_value.replace("_link", "") }' type: match_value
- *name - *name
- *name_en - *name_en
- *name_de - *name_de
@ -800,17 +852,25 @@ layers:
- key: ref_rows - key: ref_rows
value: '${ size(feature.tags["ref"].split(";")) }' value: '${ size(feature.tags["ref"].split(";")) }'
exclude_when: *missing_ref exclude_when: *missing_ref
- key: tunnel
value: true
include_when:
tunnel: [ yes, building_passage ]
covered: yes
else: false
- id: street_polygons_labels - id: streets_polygons_labels
features: features:
- source: osm - source: osm
geometry: polygon_point_on_surface geometry: polygon_point_on_surface
min_zoom: 14 min_zoom: 14
include_when: include_when:
__all__: __all__:
highway: [ pedestrian, service ] # TODO this is a really strange difference to street_polygons.
area: yes # https://github.com/shortbread-tiles/shortbread-docs/issues/80
name: __any__ - aeroway: [ runway, taxiway ]
highway: [ pedestrian, service ]
- name: __any__
attributes: attributes:
- key: kind - key: kind
type: match_value type: match_value
@ -818,7 +878,7 @@ layers:
- *name_en - *name_en
- *name_de - *name_de
- id: street_labels_points # TODO update documentation (streetS_labels_points) - id: street_labels_points
features: features:
- source: osm - source: osm
geometry: point geometry: point