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

Wyświetl plik

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