Brian Sperlongano 7ca751ec7a
Add toll tagging (#1177)
Fixes #366

This PR sets `toll=1` in the `transportation` layer when a road is tagged as a toll road in OSM (with the tag `toll=yes`).  If a road is tagged with any other value of `tag=*`, the value is suppressed in the tile, since non-toll roads can be presumed as the default and therefore this PR should have only negligible impact in the tiles.

Support for toll road tagging is of interest in the American mapping community, because toll roads have historically been styled differently on American-style maps, for example:
![image](https://user-images.githubusercontent.com/3254090/129505967-5916eace-596a-4c89-ac5d-0aab3e641ed7.png)


Screen shot of a toll road being generated in the `transportation` layer tiles:
![image](https://user-images.githubusercontent.com/3254090/129505683-eb315643-95ff-455b-a606-f379f776f92d.png)
2021-08-19 07:12:10 +02:00

426 lines
8.3 KiB
YAML

generalized_tables:
# etldoc: osm_railway_linestring_gen_z9 -> osm_railway_linestring_gen_z8
railway_linestring_gen_z8:
source: railway_linestring_gen_z9
tolerance: ZRES9
# etldoc: osm_railway_linestring_gen_z10 -> osm_railway_linestring_gen_z9
railway_linestring_gen_z9:
source: railway_linestring_gen_z10
tolerance: ZRES10
# etldoc: osm_railway_linestring_gen_z11 -> osm_railway_linestring_gen_z10
railway_linestring_gen_z10:
source: railway_linestring_gen_z11
tolerance: ZRES11
# etldoc: osm_railway_linestring_gen_z12 -> osm_railway_linestring_gen_z11
railway_linestring_gen_z11:
source: railway_linestring_gen_z12
tolerance: ZRES12
# etldoc: osm_railway_linestring -> osm_railway_linestring_gen_z12
railway_linestring_gen_z12:
source: railway_linestring
sql_filter: railway IN ('rail', 'narrow_gauge', 'light_rail') AND service='' AND ST_IsValid(geometry)
tolerance: ZRES13
# etldoc: osm_aerialway_linestring -> osm_aerialway_linestring_gen_z12
aerialway_linestring_gen_z12:
source: aerialway_linestring
sql_filter: ST_IsValid(geometry)
tolerance: ZRES13
# etldoc: osm_shipway_linestring_gen_z12 -> osm_shipway_linestring_gen_z11
shipway_linestring_gen_z11:
source: shipway_linestring_gen_z12
tolerance: ZRES12
# etldoc: osm_shipway_linestring -> osm_shipway_linestring_gen_z12
shipway_linestring_gen_z12:
source: shipway_linestring
sql_filter: ST_IsValid(geometry)
tolerance: ZRES13
# etldoc: osm_highway_linestring -> osm_highway_linestring_gen_z11
highway_linestring_gen_z11:
source: highway_linestring
sql_filter: (highway IN ('motorway', 'trunk', 'primary', 'secondary', 'tertiary', 'motorway_link', 'trunk_link', 'primary_link', 'secondary_link', 'tertiary_link') OR highway = 'construction' AND construction IN ('motorway', 'trunk', 'primary', 'secondary', 'tertiary', 'motorway_link', 'trunk_link', 'primary_link', 'secondary_link', 'tertiary_link')) AND NOT is_area AND ST_IsValid(geometry)
tolerance: ZRES12
name_field: &name
name: name
key: name
type: string
name_en_field: &name_en
name: name_en
key: name:en
type: string
name_de_field: &name_de
name: name_de
key: name:de
type: string
short_name_field: &short_name
key: short_name
name: short_name
type: string
tunnel_field: &tunnel
key: tunnel
name: is_tunnel
type: bool
bridge_field: &bridge
key: bridge
name: is_bridge
type: bool
ramp_field: &ramp
key: ramp
name: is_ramp
type: bool
ford_field: &ford
key: ford
name: is_ford
type: bool
oneway_field: &oneway
key: oneway
name: is_oneway
type: direction
area_field: &area
name: is_area
key: area
type: bool
service_field: &service
key: service
name: service
type: string
access_field: &access
key: access
name: access
type: string
toll_field: &toll
key: toll
name: toll
type: bool
usage_field: &usage
key: usage
name: usage
type: string
public_transport_field: &public_transport
key: public_transport
name: public_transport
type: string
ref_field: &ref
key: ref
name: ref
type: string
network_field: &network
key: network
name: network
type: string
layer_field: &layer
key: layer
name: layer
type: integer
level_field: &level
key: level
name: level
type: integer
indoor_field: &indoor
key: indoor
name: indoor
type: bool
man_made_field: &man_made
key: man_made
name: man_made
type: string
z_order_field: &z_order
name: z_order
type: wayzorder
bicycle_field: &bicycle
key: bicycle
name: bicycle
type: string
foot_field: &foot
key: foot
name: foot
type: string
horse_field: &horse
key: horse
name: horse
type: string
mtb_scale_field: &mtb_scale
key: mtb:scale
name: mtb_scale
type: string
surface_field: &surface
key: surface
name: surface
type: string
tables:
# etldoc: imposm3 -> osm_highway_linestring
highway_linestring:
type: linestring
_resolve_wikidata: false
columns:
- name: osm_id
type: id
- name: geometry
type: geometry
- name: highway
key: highway
type: string
- name: construction
key: construction
type: string
- *ref
- *network
- *z_order
- *layer
- *level
- *indoor
- *name
- *name_en
- *name_de
- name: tags
type: hstore_tags
- *short_name
- *tunnel
- *bridge
- *ramp
- *ford
- *oneway
- *area
- *service
- *access
- *toll
- *usage
- *public_transport
- *man_made
- *bicycle
- *foot
- *horse
- *mtb_scale
- *surface
mapping:
highway:
- motorway
- motorway_link
- trunk
- trunk_link
- primary
- primary_link
- secondary
- secondary_link
- tertiary
- tertiary_link
- unclassified
- residential
- living_street
- road
- pedestrian
- path
- footway
- cycleway
- steps
- bridleway
- corridor
- service
- track
- raceway
- construction
public_transport:
- platform
man_made:
- pier
# etldoc: imposm3 -> osm_railway_linestring
railway_linestring:
type: linestring
_resolve_wikidata: false
columns:
- name: osm_id
type: id
- name: geometry
type: geometry
- key: railway
name: railway
type: string
- *ref
- *network
- *z_order
- *layer
- *level
- *indoor
- *name
- *name_en
- *name_de
- name: tags
type: hstore_tags
- *short_name
- *tunnel
- *bridge
- *ramp
- *ford
- *oneway
- *area
- *service
- *usage
mapping:
railway:
- rail
- narrow_gauge
- preserved
- funicular
- subway
- light_rail
- monorail
- tram
# etldoc: imposm3 -> osm_aerialway_linestring
aerialway_linestring:
type: linestring
_resolve_wikidata: false
columns:
- name: osm_id
type: id
- name: geometry
type: geometry
- key: aerialway
name: aerialway
type: string
- *z_order
- *layer
- *name
- *name_en
- *name_de
- name: tags
type: hstore_tags
- *short_name
- *tunnel
- *bridge
- *ramp
- *ford
- *oneway
- *area
- *service
- *usage
mapping:
aerialway:
- cable_car
- gondola
# etldoc: imposm3 -> osm_shipway_linestring
shipway_linestring:
type: linestring
_resolve_wikidata: false
columns:
- name: osm_id
type: id
- name: geometry
type: geometry
- key: route
name: shipway
type: string
- *z_order
- *layer
- *name
- *name_en
- *name_de
- name: tags
type: hstore_tags
- *short_name
- *tunnel
- *bridge
- *ramp
- *ford
- *oneway
- *area
- *service
- *usage
mapping:
route:
- ferry
# etldoc: imposm3 -> osm_highway_polygon
highway_polygon:
type: polygon
columns:
- name: osm_id
type: id
- name: geometry
type: geometry
- name: highway
key: highway
type: string
- name: z_order
type: wayzorder
- *layer
- *level
- *indoor
- name: is_area
key: area
type: bool
- *public_transport
- *man_made
mapping:
highway:
- path
- cycleway
- bridleway
- footway
- corridor
- pedestrian
- steps
public_transport:
- platform
man_made:
- bridge
- pier
# etldoc: imposm3 -> highway_point
highway_point:
type: point
columns:
- name: osm_id
type: id
- name: geometry
type: geometry
- name: highway
key: highway
type: string
- name: z_order
type: wayzorder
- *layer
- *level
- *name
- *name_en
- *name_de
- name: tags
type: hstore_tags
- name: ref
key: ref
type: string
mapping:
highway:
- motorway_junction
# TODO: Future table for joining networks
# etldoc: imposm3 -> osm_route_member
route_member:
type: relation_member
columns:
- name: osm_id
type: id
- name: member
type: member_id
- name: role
type: member_role
- name: type
type: member_type
- *ref
- *network
- *name
mapping:
route:
- road