openmaptiles/layers/transportation/transportation.yaml

221 wiersze
8.4 KiB
YAML
Czysty Zwykły widok Historia

2016-10-10 18:17:05 +00:00
layer:
id: "transportation"
requires:
tables:
- ne_10m_admin_0_countries
2016-10-10 18:17:05 +00:00
description: |
**transportation** contains roads, railways, aerial ways, and shipping
lines.
2016-12-02 12:36:10 +00:00
This layer is directly derived from the OSM road hierarchy.
At lower zoom levels major highways from Natural Earth are used.
2016-12-02 12:36:10 +00:00
It contains all roads from motorways to primary, secondary and
tertiary roads to residential roads and
foot paths. Styling the roads is the most essential part of the map.
The `transportation` layer also contains polygons for features like plazas.
2016-10-10 18:17:05 +00:00
buffer_size: 4
srs: +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over
fields:
2016-11-30 12:57:25 +00:00
class:
description: |
Distinguish between more and less important roads or railways and roads under construction.
2016-12-02 12:36:10 +00:00
Class is derived from the value of the
[`highway`](http://wiki.openstreetmap.org/wiki/Key:highway),
[`construction`](http://wiki.openstreetmap.org/wiki/Key:construction),
[`railway`](http://wiki.openstreetmap.org/wiki/Key:railway),
2018-11-07 13:57:01 +00:00
[`aerialway`](http://wiki.openstreetmap.org/wiki/Key:aerialway),
[`route`](http://wiki.openstreetmap.org/wiki/Key:route) tag (for
shipping ways),
[`busway`](https://wiki.openstreetmap.org/wiki/Key:busway), or
[`man_made`](http://wiki.openstreetmap.org/wiki/Key:man_made).
2016-11-30 12:57:25 +00:00
values:
motorway:
highway: ['motorway', 'motorway_link']
trunk:
highway: ['trunk', 'trunk_link']
primary:
highway: ['primary', 'primary_link']
secondary:
highway: ['secondary', 'secondary_link']
tertiary:
highway: ['tertiary', 'tertiary_link']
minor:
highway: ['unclassified', 'residential', 'living_street', 'road']
path:
highway: ['pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor']
public_transport: 'platform'
service:
highway: service
track:
highway: track
raceway:
highway: raceway
busway:
highway: busway
bus_guideway:
highway: bus_guideway
ferry:
highway: shipway
motorway_construction:
Declared field mapping 2 (#734) Make a few more mappings declarative, and removes values declared in both SQL and the yaml file. Here's the diff comparing `build/tileset.sql` in master vs the new PR. The changes are mostly stylistic, except when a nested `if` statement is expanded into individual `if ... and ...` conditions (logically identical) ```diff 55c55 diff --git a/build/tileset.sql b/build/tileset.sql index 4e59357..7c6c444 100644 --- a/build/tileset.sql +++ b/build/tileset.sql @@ -52,7 +52,7 @@ CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen4_idx ON osm_ocean_polygon_gen4 CREATE OR REPLACE FUNCTION water_class(waterway TEXT) RETURNS TEXT AS $$ SELECT CASE WHEN "waterway" IN ('', 'lake') THEN 'lake' - WHEN "waterway"='dock' THEN 'dock' + WHEN "waterway" = 'dock' THEN 'dock' ELSE 'river' END; $$ LANGUAGE SQL IMMUTABLE; @@ -1813,24 +1813,41 @@ CREATE OR REPLACE FUNCTION highway_class(highway TEXT, public_transport TEXT, co WHEN "highway" IN ('tertiary', 'tertiary_link') THEN 'tertiary' WHEN "highway" IN ('unclassified', 'residential', 'living_street', 'road') THEN 'minor' WHEN "highway" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR "public_transport"='platform' + OR "public_transport" = 'platform' THEN 'path' - WHEN "highway"='service' THEN 'service' - WHEN "highway"='track' THEN 'track' - WHEN "highway"='raceway' THEN 'raceway' - WHEN highway = 'construction' THEN CASE - WHEN construction IN ('motorway', 'motorway_link') THEN 'motorway_construction' - WHEN construction IN ('trunk', 'trunk_link') THEN 'trunk_construction' - WHEN construction IN ('primary', 'primary_link') THEN 'primary_construction' - WHEN construction IN ('secondary', 'secondary_link') THEN 'secondary_construction' - WHEN construction IN ('tertiary', 'tertiary_link') THEN 'tertiary_construction' - WHEN construction IN ('', 'unclassified', 'residential', 'living_street', 'road') THEN 'minor_construction' - WHEN construction IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR public_transport = 'platform' THEN 'path_construction' - WHEN construction = 'service' THEN 'service_construction' - WHEN construction = 'track' THEN 'track_construction' - WHEN construction = 'raceway' THEN 'raceway_construction' - END + WHEN "highway" = 'service' THEN 'service' + WHEN "highway" = 'track' THEN 'track' + WHEN "highway" = 'raceway' THEN 'raceway' + WHEN "highway" = 'construction' + AND "construction" IN ('motorway', 'motorway_link') + THEN 'motorway_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('trunk', 'trunk_link') + THEN 'trunk_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('primary', 'primary_link') + THEN 'primary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('secondary', 'secondary_link') + THEN 'secondary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('tertiary', 'tertiary_link') + THEN 'tertiary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('', 'unclassified', 'residential', 'living_street', 'road') + THEN 'minor_construction' + WHEN "highway" = 'construction' + AND ("construction" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') OR "public_transport" = 'platform') + THEN 'path_construction' + WHEN "highway" = 'construction' + AND "construction" = 'service' + THEN 'service_construction' + WHEN "highway" = 'construction' + AND "construction" = 'track' + THEN 'track_construction' + WHEN "highway" = 'construction' + AND "construction" = 'raceway' + THEN 'raceway_construction' END; $$ LANGUAGE SQL IMMUTABLE; @@ -4073,6 +4090,12 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('fast_food', 'food_court') THEN 'fast_food' WHEN "subclass" IN ('park', 'bbq') THEN 'park' WHEN "subclass" IN ('bus_stop', 'bus_station') THEN 'bus' + WHEN ("subclass" = 'station' AND "mapping_key" = 'railway') + OR "subclass" IN ('halt', 'tram_stop', 'subway') + THEN 'railway' + WHEN "subclass" = 'station' + AND "mapping_key" = 'aerialway' + THEN 'aerialway' WHEN "subclass" IN ('subway_entrance', 'train_station_entrance') THEN 'entrance' WHEN "subclass" IN ('camp_site', 'caravan_site') THEN 'campsite' WHEN "subclass" IN ('laundry', 'dry_cleaning') THEN 'laundry' @@ -4082,7 +4105,7 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('hotel', 'motel', 'bed_and_breakfast', 'guest_house', 'hostel', 'chalet', 'alpine_hut', 'dormitory') THEN 'lodging' WHEN "subclass" IN ('chocolate', 'confectionery') THEN 'ice_cream' WHEN "subclass" IN ('post_box', 'post_office') THEN 'post' - WHEN "subclass"='cafe' THEN 'cafe' + WHEN "subclass" = 'cafe' THEN 'cafe' WHEN "subclass" IN ('school', 'kindergarten') THEN 'school' WHEN "subclass" IN ('alcohol', 'beverages', 'wine') THEN 'alcohol_shop' WHEN "subclass" IN ('bar', 'nightclub') THEN 'bar' @@ -4098,9 +4121,6 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('bag', 'clothes') THEN 'clothing_store' WHEN "subclass" IN ('swimming_area', 'swimming') THEN 'swimming' WHEN "subclass" IN ('castle', 'ruins') THEN 'castle' - WHEN (subclass = 'station' AND mapping_key = 'railway') - OR (subclass IN ('halt', 'tram_stop', 'subway')) THEN 'railway' - WHEN (subclass = 'station' AND mapping_key = 'aerialway') THEN 'aerialway' ELSE subclass END; $$ LANGUAGE SQL IMMUTABLE; @@ -4301,22 +4321,22 @@ $$ COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de, tags, CASE - WHEN "aerodrome"='international' - OR "aerodrome_type"='international' + WHEN "aerodrome" = 'international' + OR "aerodrome_type" = 'international' THEN 'international' - WHEN "aerodrome"='public' - OR "aerodrome_type"='civil' + WHEN "aerodrome" = 'public' + OR "aerodrome_type" = 'civil' OR "aerodrome_type" LIKE '%public%' THEN 'public' - WHEN "aerodrome"='regional' - OR "aerodrome_type"='regional' + WHEN "aerodrome" = 'regional' + OR "aerodrome_type" = 'regional' THEN 'regional' - WHEN "aerodrome"='military' + WHEN "aerodrome" = 'military' OR "aerodrome_type" LIKE '%military%' - OR "military"='airfield' + OR "military" = 'airfield' THEN 'military' - WHEN "aerodrome"='private' - OR "aerodrome_type"='private' + WHEN "aerodrome" = 'private' + OR "aerodrome_type" = 'private' THEN 'private' ELSE 'other' END AS class, ```
2020-01-31 05:22:21 +00:00
__AND__:
highway: construction
construction: ['motorway', 'motorway_link']
trunk_construction:
Declared field mapping 2 (#734) Make a few more mappings declarative, and removes values declared in both SQL and the yaml file. Here's the diff comparing `build/tileset.sql` in master vs the new PR. The changes are mostly stylistic, except when a nested `if` statement is expanded into individual `if ... and ...` conditions (logically identical) ```diff 55c55 diff --git a/build/tileset.sql b/build/tileset.sql index 4e59357..7c6c444 100644 --- a/build/tileset.sql +++ b/build/tileset.sql @@ -52,7 +52,7 @@ CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen4_idx ON osm_ocean_polygon_gen4 CREATE OR REPLACE FUNCTION water_class(waterway TEXT) RETURNS TEXT AS $$ SELECT CASE WHEN "waterway" IN ('', 'lake') THEN 'lake' - WHEN "waterway"='dock' THEN 'dock' + WHEN "waterway" = 'dock' THEN 'dock' ELSE 'river' END; $$ LANGUAGE SQL IMMUTABLE; @@ -1813,24 +1813,41 @@ CREATE OR REPLACE FUNCTION highway_class(highway TEXT, public_transport TEXT, co WHEN "highway" IN ('tertiary', 'tertiary_link') THEN 'tertiary' WHEN "highway" IN ('unclassified', 'residential', 'living_street', 'road') THEN 'minor' WHEN "highway" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR "public_transport"='platform' + OR "public_transport" = 'platform' THEN 'path' - WHEN "highway"='service' THEN 'service' - WHEN "highway"='track' THEN 'track' - WHEN "highway"='raceway' THEN 'raceway' - WHEN highway = 'construction' THEN CASE - WHEN construction IN ('motorway', 'motorway_link') THEN 'motorway_construction' - WHEN construction IN ('trunk', 'trunk_link') THEN 'trunk_construction' - WHEN construction IN ('primary', 'primary_link') THEN 'primary_construction' - WHEN construction IN ('secondary', 'secondary_link') THEN 'secondary_construction' - WHEN construction IN ('tertiary', 'tertiary_link') THEN 'tertiary_construction' - WHEN construction IN ('', 'unclassified', 'residential', 'living_street', 'road') THEN 'minor_construction' - WHEN construction IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR public_transport = 'platform' THEN 'path_construction' - WHEN construction = 'service' THEN 'service_construction' - WHEN construction = 'track' THEN 'track_construction' - WHEN construction = 'raceway' THEN 'raceway_construction' - END + WHEN "highway" = 'service' THEN 'service' + WHEN "highway" = 'track' THEN 'track' + WHEN "highway" = 'raceway' THEN 'raceway' + WHEN "highway" = 'construction' + AND "construction" IN ('motorway', 'motorway_link') + THEN 'motorway_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('trunk', 'trunk_link') + THEN 'trunk_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('primary', 'primary_link') + THEN 'primary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('secondary', 'secondary_link') + THEN 'secondary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('tertiary', 'tertiary_link') + THEN 'tertiary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('', 'unclassified', 'residential', 'living_street', 'road') + THEN 'minor_construction' + WHEN "highway" = 'construction' + AND ("construction" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') OR "public_transport" = 'platform') + THEN 'path_construction' + WHEN "highway" = 'construction' + AND "construction" = 'service' + THEN 'service_construction' + WHEN "highway" = 'construction' + AND "construction" = 'track' + THEN 'track_construction' + WHEN "highway" = 'construction' + AND "construction" = 'raceway' + THEN 'raceway_construction' END; $$ LANGUAGE SQL IMMUTABLE; @@ -4073,6 +4090,12 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('fast_food', 'food_court') THEN 'fast_food' WHEN "subclass" IN ('park', 'bbq') THEN 'park' WHEN "subclass" IN ('bus_stop', 'bus_station') THEN 'bus' + WHEN ("subclass" = 'station' AND "mapping_key" = 'railway') + OR "subclass" IN ('halt', 'tram_stop', 'subway') + THEN 'railway' + WHEN "subclass" = 'station' + AND "mapping_key" = 'aerialway' + THEN 'aerialway' WHEN "subclass" IN ('subway_entrance', 'train_station_entrance') THEN 'entrance' WHEN "subclass" IN ('camp_site', 'caravan_site') THEN 'campsite' WHEN "subclass" IN ('laundry', 'dry_cleaning') THEN 'laundry' @@ -4082,7 +4105,7 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('hotel', 'motel', 'bed_and_breakfast', 'guest_house', 'hostel', 'chalet', 'alpine_hut', 'dormitory') THEN 'lodging' WHEN "subclass" IN ('chocolate', 'confectionery') THEN 'ice_cream' WHEN "subclass" IN ('post_box', 'post_office') THEN 'post' - WHEN "subclass"='cafe' THEN 'cafe' + WHEN "subclass" = 'cafe' THEN 'cafe' WHEN "subclass" IN ('school', 'kindergarten') THEN 'school' WHEN "subclass" IN ('alcohol', 'beverages', 'wine') THEN 'alcohol_shop' WHEN "subclass" IN ('bar', 'nightclub') THEN 'bar' @@ -4098,9 +4121,6 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('bag', 'clothes') THEN 'clothing_store' WHEN "subclass" IN ('swimming_area', 'swimming') THEN 'swimming' WHEN "subclass" IN ('castle', 'ruins') THEN 'castle' - WHEN (subclass = 'station' AND mapping_key = 'railway') - OR (subclass IN ('halt', 'tram_stop', 'subway')) THEN 'railway' - WHEN (subclass = 'station' AND mapping_key = 'aerialway') THEN 'aerialway' ELSE subclass END; $$ LANGUAGE SQL IMMUTABLE; @@ -4301,22 +4321,22 @@ $$ COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de, tags, CASE - WHEN "aerodrome"='international' - OR "aerodrome_type"='international' + WHEN "aerodrome" = 'international' + OR "aerodrome_type" = 'international' THEN 'international' - WHEN "aerodrome"='public' - OR "aerodrome_type"='civil' + WHEN "aerodrome" = 'public' + OR "aerodrome_type" = 'civil' OR "aerodrome_type" LIKE '%public%' THEN 'public' - WHEN "aerodrome"='regional' - OR "aerodrome_type"='regional' + WHEN "aerodrome" = 'regional' + OR "aerodrome_type" = 'regional' THEN 'regional' - WHEN "aerodrome"='military' + WHEN "aerodrome" = 'military' OR "aerodrome_type" LIKE '%military%' - OR "military"='airfield' + OR "military" = 'airfield' THEN 'military' - WHEN "aerodrome"='private' - OR "aerodrome_type"='private' + WHEN "aerodrome" = 'private' + OR "aerodrome_type" = 'private' THEN 'private' ELSE 'other' END AS class, ```
2020-01-31 05:22:21 +00:00
__AND__:
highway: construction
construction: ['trunk', 'trunk_link']
primary_construction:
Declared field mapping 2 (#734) Make a few more mappings declarative, and removes values declared in both SQL and the yaml file. Here's the diff comparing `build/tileset.sql` in master vs the new PR. The changes are mostly stylistic, except when a nested `if` statement is expanded into individual `if ... and ...` conditions (logically identical) ```diff 55c55 diff --git a/build/tileset.sql b/build/tileset.sql index 4e59357..7c6c444 100644 --- a/build/tileset.sql +++ b/build/tileset.sql @@ -52,7 +52,7 @@ CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen4_idx ON osm_ocean_polygon_gen4 CREATE OR REPLACE FUNCTION water_class(waterway TEXT) RETURNS TEXT AS $$ SELECT CASE WHEN "waterway" IN ('', 'lake') THEN 'lake' - WHEN "waterway"='dock' THEN 'dock' + WHEN "waterway" = 'dock' THEN 'dock' ELSE 'river' END; $$ LANGUAGE SQL IMMUTABLE; @@ -1813,24 +1813,41 @@ CREATE OR REPLACE FUNCTION highway_class(highway TEXT, public_transport TEXT, co WHEN "highway" IN ('tertiary', 'tertiary_link') THEN 'tertiary' WHEN "highway" IN ('unclassified', 'residential', 'living_street', 'road') THEN 'minor' WHEN "highway" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR "public_transport"='platform' + OR "public_transport" = 'platform' THEN 'path' - WHEN "highway"='service' THEN 'service' - WHEN "highway"='track' THEN 'track' - WHEN "highway"='raceway' THEN 'raceway' - WHEN highway = 'construction' THEN CASE - WHEN construction IN ('motorway', 'motorway_link') THEN 'motorway_construction' - WHEN construction IN ('trunk', 'trunk_link') THEN 'trunk_construction' - WHEN construction IN ('primary', 'primary_link') THEN 'primary_construction' - WHEN construction IN ('secondary', 'secondary_link') THEN 'secondary_construction' - WHEN construction IN ('tertiary', 'tertiary_link') THEN 'tertiary_construction' - WHEN construction IN ('', 'unclassified', 'residential', 'living_street', 'road') THEN 'minor_construction' - WHEN construction IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR public_transport = 'platform' THEN 'path_construction' - WHEN construction = 'service' THEN 'service_construction' - WHEN construction = 'track' THEN 'track_construction' - WHEN construction = 'raceway' THEN 'raceway_construction' - END + WHEN "highway" = 'service' THEN 'service' + WHEN "highway" = 'track' THEN 'track' + WHEN "highway" = 'raceway' THEN 'raceway' + WHEN "highway" = 'construction' + AND "construction" IN ('motorway', 'motorway_link') + THEN 'motorway_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('trunk', 'trunk_link') + THEN 'trunk_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('primary', 'primary_link') + THEN 'primary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('secondary', 'secondary_link') + THEN 'secondary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('tertiary', 'tertiary_link') + THEN 'tertiary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('', 'unclassified', 'residential', 'living_street', 'road') + THEN 'minor_construction' + WHEN "highway" = 'construction' + AND ("construction" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') OR "public_transport" = 'platform') + THEN 'path_construction' + WHEN "highway" = 'construction' + AND "construction" = 'service' + THEN 'service_construction' + WHEN "highway" = 'construction' + AND "construction" = 'track' + THEN 'track_construction' + WHEN "highway" = 'construction' + AND "construction" = 'raceway' + THEN 'raceway_construction' END; $$ LANGUAGE SQL IMMUTABLE; @@ -4073,6 +4090,12 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('fast_food', 'food_court') THEN 'fast_food' WHEN "subclass" IN ('park', 'bbq') THEN 'park' WHEN "subclass" IN ('bus_stop', 'bus_station') THEN 'bus' + WHEN ("subclass" = 'station' AND "mapping_key" = 'railway') + OR "subclass" IN ('halt', 'tram_stop', 'subway') + THEN 'railway' + WHEN "subclass" = 'station' + AND "mapping_key" = 'aerialway' + THEN 'aerialway' WHEN "subclass" IN ('subway_entrance', 'train_station_entrance') THEN 'entrance' WHEN "subclass" IN ('camp_site', 'caravan_site') THEN 'campsite' WHEN "subclass" IN ('laundry', 'dry_cleaning') THEN 'laundry' @@ -4082,7 +4105,7 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('hotel', 'motel', 'bed_and_breakfast', 'guest_house', 'hostel', 'chalet', 'alpine_hut', 'dormitory') THEN 'lodging' WHEN "subclass" IN ('chocolate', 'confectionery') THEN 'ice_cream' WHEN "subclass" IN ('post_box', 'post_office') THEN 'post' - WHEN "subclass"='cafe' THEN 'cafe' + WHEN "subclass" = 'cafe' THEN 'cafe' WHEN "subclass" IN ('school', 'kindergarten') THEN 'school' WHEN "subclass" IN ('alcohol', 'beverages', 'wine') THEN 'alcohol_shop' WHEN "subclass" IN ('bar', 'nightclub') THEN 'bar' @@ -4098,9 +4121,6 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('bag', 'clothes') THEN 'clothing_store' WHEN "subclass" IN ('swimming_area', 'swimming') THEN 'swimming' WHEN "subclass" IN ('castle', 'ruins') THEN 'castle' - WHEN (subclass = 'station' AND mapping_key = 'railway') - OR (subclass IN ('halt', 'tram_stop', 'subway')) THEN 'railway' - WHEN (subclass = 'station' AND mapping_key = 'aerialway') THEN 'aerialway' ELSE subclass END; $$ LANGUAGE SQL IMMUTABLE; @@ -4301,22 +4321,22 @@ $$ COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de, tags, CASE - WHEN "aerodrome"='international' - OR "aerodrome_type"='international' + WHEN "aerodrome" = 'international' + OR "aerodrome_type" = 'international' THEN 'international' - WHEN "aerodrome"='public' - OR "aerodrome_type"='civil' + WHEN "aerodrome" = 'public' + OR "aerodrome_type" = 'civil' OR "aerodrome_type" LIKE '%public%' THEN 'public' - WHEN "aerodrome"='regional' - OR "aerodrome_type"='regional' + WHEN "aerodrome" = 'regional' + OR "aerodrome_type" = 'regional' THEN 'regional' - WHEN "aerodrome"='military' + WHEN "aerodrome" = 'military' OR "aerodrome_type" LIKE '%military%' - OR "military"='airfield' + OR "military" = 'airfield' THEN 'military' - WHEN "aerodrome"='private' - OR "aerodrome_type"='private' + WHEN "aerodrome" = 'private' + OR "aerodrome_type" = 'private' THEN 'private' ELSE 'other' END AS class, ```
2020-01-31 05:22:21 +00:00
__AND__:
highway: construction
construction: ['primary', 'primary_link']
secondary_construction:
Declared field mapping 2 (#734) Make a few more mappings declarative, and removes values declared in both SQL and the yaml file. Here's the diff comparing `build/tileset.sql` in master vs the new PR. The changes are mostly stylistic, except when a nested `if` statement is expanded into individual `if ... and ...` conditions (logically identical) ```diff 55c55 diff --git a/build/tileset.sql b/build/tileset.sql index 4e59357..7c6c444 100644 --- a/build/tileset.sql +++ b/build/tileset.sql @@ -52,7 +52,7 @@ CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen4_idx ON osm_ocean_polygon_gen4 CREATE OR REPLACE FUNCTION water_class(waterway TEXT) RETURNS TEXT AS $$ SELECT CASE WHEN "waterway" IN ('', 'lake') THEN 'lake' - WHEN "waterway"='dock' THEN 'dock' + WHEN "waterway" = 'dock' THEN 'dock' ELSE 'river' END; $$ LANGUAGE SQL IMMUTABLE; @@ -1813,24 +1813,41 @@ CREATE OR REPLACE FUNCTION highway_class(highway TEXT, public_transport TEXT, co WHEN "highway" IN ('tertiary', 'tertiary_link') THEN 'tertiary' WHEN "highway" IN ('unclassified', 'residential', 'living_street', 'road') THEN 'minor' WHEN "highway" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR "public_transport"='platform' + OR "public_transport" = 'platform' THEN 'path' - WHEN "highway"='service' THEN 'service' - WHEN "highway"='track' THEN 'track' - WHEN "highway"='raceway' THEN 'raceway' - WHEN highway = 'construction' THEN CASE - WHEN construction IN ('motorway', 'motorway_link') THEN 'motorway_construction' - WHEN construction IN ('trunk', 'trunk_link') THEN 'trunk_construction' - WHEN construction IN ('primary', 'primary_link') THEN 'primary_construction' - WHEN construction IN ('secondary', 'secondary_link') THEN 'secondary_construction' - WHEN construction IN ('tertiary', 'tertiary_link') THEN 'tertiary_construction' - WHEN construction IN ('', 'unclassified', 'residential', 'living_street', 'road') THEN 'minor_construction' - WHEN construction IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR public_transport = 'platform' THEN 'path_construction' - WHEN construction = 'service' THEN 'service_construction' - WHEN construction = 'track' THEN 'track_construction' - WHEN construction = 'raceway' THEN 'raceway_construction' - END + WHEN "highway" = 'service' THEN 'service' + WHEN "highway" = 'track' THEN 'track' + WHEN "highway" = 'raceway' THEN 'raceway' + WHEN "highway" = 'construction' + AND "construction" IN ('motorway', 'motorway_link') + THEN 'motorway_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('trunk', 'trunk_link') + THEN 'trunk_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('primary', 'primary_link') + THEN 'primary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('secondary', 'secondary_link') + THEN 'secondary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('tertiary', 'tertiary_link') + THEN 'tertiary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('', 'unclassified', 'residential', 'living_street', 'road') + THEN 'minor_construction' + WHEN "highway" = 'construction' + AND ("construction" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') OR "public_transport" = 'platform') + THEN 'path_construction' + WHEN "highway" = 'construction' + AND "construction" = 'service' + THEN 'service_construction' + WHEN "highway" = 'construction' + AND "construction" = 'track' + THEN 'track_construction' + WHEN "highway" = 'construction' + AND "construction" = 'raceway' + THEN 'raceway_construction' END; $$ LANGUAGE SQL IMMUTABLE; @@ -4073,6 +4090,12 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('fast_food', 'food_court') THEN 'fast_food' WHEN "subclass" IN ('park', 'bbq') THEN 'park' WHEN "subclass" IN ('bus_stop', 'bus_station') THEN 'bus' + WHEN ("subclass" = 'station' AND "mapping_key" = 'railway') + OR "subclass" IN ('halt', 'tram_stop', 'subway') + THEN 'railway' + WHEN "subclass" = 'station' + AND "mapping_key" = 'aerialway' + THEN 'aerialway' WHEN "subclass" IN ('subway_entrance', 'train_station_entrance') THEN 'entrance' WHEN "subclass" IN ('camp_site', 'caravan_site') THEN 'campsite' WHEN "subclass" IN ('laundry', 'dry_cleaning') THEN 'laundry' @@ -4082,7 +4105,7 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('hotel', 'motel', 'bed_and_breakfast', 'guest_house', 'hostel', 'chalet', 'alpine_hut', 'dormitory') THEN 'lodging' WHEN "subclass" IN ('chocolate', 'confectionery') THEN 'ice_cream' WHEN "subclass" IN ('post_box', 'post_office') THEN 'post' - WHEN "subclass"='cafe' THEN 'cafe' + WHEN "subclass" = 'cafe' THEN 'cafe' WHEN "subclass" IN ('school', 'kindergarten') THEN 'school' WHEN "subclass" IN ('alcohol', 'beverages', 'wine') THEN 'alcohol_shop' WHEN "subclass" IN ('bar', 'nightclub') THEN 'bar' @@ -4098,9 +4121,6 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('bag', 'clothes') THEN 'clothing_store' WHEN "subclass" IN ('swimming_area', 'swimming') THEN 'swimming' WHEN "subclass" IN ('castle', 'ruins') THEN 'castle' - WHEN (subclass = 'station' AND mapping_key = 'railway') - OR (subclass IN ('halt', 'tram_stop', 'subway')) THEN 'railway' - WHEN (subclass = 'station' AND mapping_key = 'aerialway') THEN 'aerialway' ELSE subclass END; $$ LANGUAGE SQL IMMUTABLE; @@ -4301,22 +4321,22 @@ $$ COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de, tags, CASE - WHEN "aerodrome"='international' - OR "aerodrome_type"='international' + WHEN "aerodrome" = 'international' + OR "aerodrome_type" = 'international' THEN 'international' - WHEN "aerodrome"='public' - OR "aerodrome_type"='civil' + WHEN "aerodrome" = 'public' + OR "aerodrome_type" = 'civil' OR "aerodrome_type" LIKE '%public%' THEN 'public' - WHEN "aerodrome"='regional' - OR "aerodrome_type"='regional' + WHEN "aerodrome" = 'regional' + OR "aerodrome_type" = 'regional' THEN 'regional' - WHEN "aerodrome"='military' + WHEN "aerodrome" = 'military' OR "aerodrome_type" LIKE '%military%' - OR "military"='airfield' + OR "military" = 'airfield' THEN 'military' - WHEN "aerodrome"='private' - OR "aerodrome_type"='private' + WHEN "aerodrome" = 'private' + OR "aerodrome_type" = 'private' THEN 'private' ELSE 'other' END AS class, ```
2020-01-31 05:22:21 +00:00
__AND__:
highway: construction
construction: ['secondary', 'secondary_link']
tertiary_construction:
Declared field mapping 2 (#734) Make a few more mappings declarative, and removes values declared in both SQL and the yaml file. Here's the diff comparing `build/tileset.sql` in master vs the new PR. The changes are mostly stylistic, except when a nested `if` statement is expanded into individual `if ... and ...` conditions (logically identical) ```diff 55c55 diff --git a/build/tileset.sql b/build/tileset.sql index 4e59357..7c6c444 100644 --- a/build/tileset.sql +++ b/build/tileset.sql @@ -52,7 +52,7 @@ CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen4_idx ON osm_ocean_polygon_gen4 CREATE OR REPLACE FUNCTION water_class(waterway TEXT) RETURNS TEXT AS $$ SELECT CASE WHEN "waterway" IN ('', 'lake') THEN 'lake' - WHEN "waterway"='dock' THEN 'dock' + WHEN "waterway" = 'dock' THEN 'dock' ELSE 'river' END; $$ LANGUAGE SQL IMMUTABLE; @@ -1813,24 +1813,41 @@ CREATE OR REPLACE FUNCTION highway_class(highway TEXT, public_transport TEXT, co WHEN "highway" IN ('tertiary', 'tertiary_link') THEN 'tertiary' WHEN "highway" IN ('unclassified', 'residential', 'living_street', 'road') THEN 'minor' WHEN "highway" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR "public_transport"='platform' + OR "public_transport" = 'platform' THEN 'path' - WHEN "highway"='service' THEN 'service' - WHEN "highway"='track' THEN 'track' - WHEN "highway"='raceway' THEN 'raceway' - WHEN highway = 'construction' THEN CASE - WHEN construction IN ('motorway', 'motorway_link') THEN 'motorway_construction' - WHEN construction IN ('trunk', 'trunk_link') THEN 'trunk_construction' - WHEN construction IN ('primary', 'primary_link') THEN 'primary_construction' - WHEN construction IN ('secondary', 'secondary_link') THEN 'secondary_construction' - WHEN construction IN ('tertiary', 'tertiary_link') THEN 'tertiary_construction' - WHEN construction IN ('', 'unclassified', 'residential', 'living_street', 'road') THEN 'minor_construction' - WHEN construction IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR public_transport = 'platform' THEN 'path_construction' - WHEN construction = 'service' THEN 'service_construction' - WHEN construction = 'track' THEN 'track_construction' - WHEN construction = 'raceway' THEN 'raceway_construction' - END + WHEN "highway" = 'service' THEN 'service' + WHEN "highway" = 'track' THEN 'track' + WHEN "highway" = 'raceway' THEN 'raceway' + WHEN "highway" = 'construction' + AND "construction" IN ('motorway', 'motorway_link') + THEN 'motorway_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('trunk', 'trunk_link') + THEN 'trunk_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('primary', 'primary_link') + THEN 'primary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('secondary', 'secondary_link') + THEN 'secondary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('tertiary', 'tertiary_link') + THEN 'tertiary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('', 'unclassified', 'residential', 'living_street', 'road') + THEN 'minor_construction' + WHEN "highway" = 'construction' + AND ("construction" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') OR "public_transport" = 'platform') + THEN 'path_construction' + WHEN "highway" = 'construction' + AND "construction" = 'service' + THEN 'service_construction' + WHEN "highway" = 'construction' + AND "construction" = 'track' + THEN 'track_construction' + WHEN "highway" = 'construction' + AND "construction" = 'raceway' + THEN 'raceway_construction' END; $$ LANGUAGE SQL IMMUTABLE; @@ -4073,6 +4090,12 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('fast_food', 'food_court') THEN 'fast_food' WHEN "subclass" IN ('park', 'bbq') THEN 'park' WHEN "subclass" IN ('bus_stop', 'bus_station') THEN 'bus' + WHEN ("subclass" = 'station' AND "mapping_key" = 'railway') + OR "subclass" IN ('halt', 'tram_stop', 'subway') + THEN 'railway' + WHEN "subclass" = 'station' + AND "mapping_key" = 'aerialway' + THEN 'aerialway' WHEN "subclass" IN ('subway_entrance', 'train_station_entrance') THEN 'entrance' WHEN "subclass" IN ('camp_site', 'caravan_site') THEN 'campsite' WHEN "subclass" IN ('laundry', 'dry_cleaning') THEN 'laundry' @@ -4082,7 +4105,7 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('hotel', 'motel', 'bed_and_breakfast', 'guest_house', 'hostel', 'chalet', 'alpine_hut', 'dormitory') THEN 'lodging' WHEN "subclass" IN ('chocolate', 'confectionery') THEN 'ice_cream' WHEN "subclass" IN ('post_box', 'post_office') THEN 'post' - WHEN "subclass"='cafe' THEN 'cafe' + WHEN "subclass" = 'cafe' THEN 'cafe' WHEN "subclass" IN ('school', 'kindergarten') THEN 'school' WHEN "subclass" IN ('alcohol', 'beverages', 'wine') THEN 'alcohol_shop' WHEN "subclass" IN ('bar', 'nightclub') THEN 'bar' @@ -4098,9 +4121,6 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('bag', 'clothes') THEN 'clothing_store' WHEN "subclass" IN ('swimming_area', 'swimming') THEN 'swimming' WHEN "subclass" IN ('castle', 'ruins') THEN 'castle' - WHEN (subclass = 'station' AND mapping_key = 'railway') - OR (subclass IN ('halt', 'tram_stop', 'subway')) THEN 'railway' - WHEN (subclass = 'station' AND mapping_key = 'aerialway') THEN 'aerialway' ELSE subclass END; $$ LANGUAGE SQL IMMUTABLE; @@ -4301,22 +4321,22 @@ $$ COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de, tags, CASE - WHEN "aerodrome"='international' - OR "aerodrome_type"='international' + WHEN "aerodrome" = 'international' + OR "aerodrome_type" = 'international' THEN 'international' - WHEN "aerodrome"='public' - OR "aerodrome_type"='civil' + WHEN "aerodrome" = 'public' + OR "aerodrome_type" = 'civil' OR "aerodrome_type" LIKE '%public%' THEN 'public' - WHEN "aerodrome"='regional' - OR "aerodrome_type"='regional' + WHEN "aerodrome" = 'regional' + OR "aerodrome_type" = 'regional' THEN 'regional' - WHEN "aerodrome"='military' + WHEN "aerodrome" = 'military' OR "aerodrome_type" LIKE '%military%' - OR "military"='airfield' + OR "military" = 'airfield' THEN 'military' - WHEN "aerodrome"='private' - OR "aerodrome_type"='private' + WHEN "aerodrome" = 'private' + OR "aerodrome_type" = 'private' THEN 'private' ELSE 'other' END AS class, ```
2020-01-31 05:22:21 +00:00
__AND__:
highway: construction
construction: ['tertiary', 'tertiary_link']
minor_construction:
Declared field mapping 2 (#734) Make a few more mappings declarative, and removes values declared in both SQL and the yaml file. Here's the diff comparing `build/tileset.sql` in master vs the new PR. The changes are mostly stylistic, except when a nested `if` statement is expanded into individual `if ... and ...` conditions (logically identical) ```diff 55c55 diff --git a/build/tileset.sql b/build/tileset.sql index 4e59357..7c6c444 100644 --- a/build/tileset.sql +++ b/build/tileset.sql @@ -52,7 +52,7 @@ CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen4_idx ON osm_ocean_polygon_gen4 CREATE OR REPLACE FUNCTION water_class(waterway TEXT) RETURNS TEXT AS $$ SELECT CASE WHEN "waterway" IN ('', 'lake') THEN 'lake' - WHEN "waterway"='dock' THEN 'dock' + WHEN "waterway" = 'dock' THEN 'dock' ELSE 'river' END; $$ LANGUAGE SQL IMMUTABLE; @@ -1813,24 +1813,41 @@ CREATE OR REPLACE FUNCTION highway_class(highway TEXT, public_transport TEXT, co WHEN "highway" IN ('tertiary', 'tertiary_link') THEN 'tertiary' WHEN "highway" IN ('unclassified', 'residential', 'living_street', 'road') THEN 'minor' WHEN "highway" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR "public_transport"='platform' + OR "public_transport" = 'platform' THEN 'path' - WHEN "highway"='service' THEN 'service' - WHEN "highway"='track' THEN 'track' - WHEN "highway"='raceway' THEN 'raceway' - WHEN highway = 'construction' THEN CASE - WHEN construction IN ('motorway', 'motorway_link') THEN 'motorway_construction' - WHEN construction IN ('trunk', 'trunk_link') THEN 'trunk_construction' - WHEN construction IN ('primary', 'primary_link') THEN 'primary_construction' - WHEN construction IN ('secondary', 'secondary_link') THEN 'secondary_construction' - WHEN construction IN ('tertiary', 'tertiary_link') THEN 'tertiary_construction' - WHEN construction IN ('', 'unclassified', 'residential', 'living_street', 'road') THEN 'minor_construction' - WHEN construction IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR public_transport = 'platform' THEN 'path_construction' - WHEN construction = 'service' THEN 'service_construction' - WHEN construction = 'track' THEN 'track_construction' - WHEN construction = 'raceway' THEN 'raceway_construction' - END + WHEN "highway" = 'service' THEN 'service' + WHEN "highway" = 'track' THEN 'track' + WHEN "highway" = 'raceway' THEN 'raceway' + WHEN "highway" = 'construction' + AND "construction" IN ('motorway', 'motorway_link') + THEN 'motorway_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('trunk', 'trunk_link') + THEN 'trunk_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('primary', 'primary_link') + THEN 'primary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('secondary', 'secondary_link') + THEN 'secondary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('tertiary', 'tertiary_link') + THEN 'tertiary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('', 'unclassified', 'residential', 'living_street', 'road') + THEN 'minor_construction' + WHEN "highway" = 'construction' + AND ("construction" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') OR "public_transport" = 'platform') + THEN 'path_construction' + WHEN "highway" = 'construction' + AND "construction" = 'service' + THEN 'service_construction' + WHEN "highway" = 'construction' + AND "construction" = 'track' + THEN 'track_construction' + WHEN "highway" = 'construction' + AND "construction" = 'raceway' + THEN 'raceway_construction' END; $$ LANGUAGE SQL IMMUTABLE; @@ -4073,6 +4090,12 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('fast_food', 'food_court') THEN 'fast_food' WHEN "subclass" IN ('park', 'bbq') THEN 'park' WHEN "subclass" IN ('bus_stop', 'bus_station') THEN 'bus' + WHEN ("subclass" = 'station' AND "mapping_key" = 'railway') + OR "subclass" IN ('halt', 'tram_stop', 'subway') + THEN 'railway' + WHEN "subclass" = 'station' + AND "mapping_key" = 'aerialway' + THEN 'aerialway' WHEN "subclass" IN ('subway_entrance', 'train_station_entrance') THEN 'entrance' WHEN "subclass" IN ('camp_site', 'caravan_site') THEN 'campsite' WHEN "subclass" IN ('laundry', 'dry_cleaning') THEN 'laundry' @@ -4082,7 +4105,7 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('hotel', 'motel', 'bed_and_breakfast', 'guest_house', 'hostel', 'chalet', 'alpine_hut', 'dormitory') THEN 'lodging' WHEN "subclass" IN ('chocolate', 'confectionery') THEN 'ice_cream' WHEN "subclass" IN ('post_box', 'post_office') THEN 'post' - WHEN "subclass"='cafe' THEN 'cafe' + WHEN "subclass" = 'cafe' THEN 'cafe' WHEN "subclass" IN ('school', 'kindergarten') THEN 'school' WHEN "subclass" IN ('alcohol', 'beverages', 'wine') THEN 'alcohol_shop' WHEN "subclass" IN ('bar', 'nightclub') THEN 'bar' @@ -4098,9 +4121,6 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('bag', 'clothes') THEN 'clothing_store' WHEN "subclass" IN ('swimming_area', 'swimming') THEN 'swimming' WHEN "subclass" IN ('castle', 'ruins') THEN 'castle' - WHEN (subclass = 'station' AND mapping_key = 'railway') - OR (subclass IN ('halt', 'tram_stop', 'subway')) THEN 'railway' - WHEN (subclass = 'station' AND mapping_key = 'aerialway') THEN 'aerialway' ELSE subclass END; $$ LANGUAGE SQL IMMUTABLE; @@ -4301,22 +4321,22 @@ $$ COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de, tags, CASE - WHEN "aerodrome"='international' - OR "aerodrome_type"='international' + WHEN "aerodrome" = 'international' + OR "aerodrome_type" = 'international' THEN 'international' - WHEN "aerodrome"='public' - OR "aerodrome_type"='civil' + WHEN "aerodrome" = 'public' + OR "aerodrome_type" = 'civil' OR "aerodrome_type" LIKE '%public%' THEN 'public' - WHEN "aerodrome"='regional' - OR "aerodrome_type"='regional' + WHEN "aerodrome" = 'regional' + OR "aerodrome_type" = 'regional' THEN 'regional' - WHEN "aerodrome"='military' + WHEN "aerodrome" = 'military' OR "aerodrome_type" LIKE '%military%' - OR "military"='airfield' + OR "military" = 'airfield' THEN 'military' - WHEN "aerodrome"='private' - OR "aerodrome_type"='private' + WHEN "aerodrome" = 'private' + OR "aerodrome_type" = 'private' THEN 'private' ELSE 'other' END AS class, ```
2020-01-31 05:22:21 +00:00
__AND__:
highway: construction
construction: ['', 'unclassified', 'residential', 'living_street', 'road']
path_construction:
Declared field mapping 2 (#734) Make a few more mappings declarative, and removes values declared in both SQL and the yaml file. Here's the diff comparing `build/tileset.sql` in master vs the new PR. The changes are mostly stylistic, except when a nested `if` statement is expanded into individual `if ... and ...` conditions (logically identical) ```diff 55c55 diff --git a/build/tileset.sql b/build/tileset.sql index 4e59357..7c6c444 100644 --- a/build/tileset.sql +++ b/build/tileset.sql @@ -52,7 +52,7 @@ CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen4_idx ON osm_ocean_polygon_gen4 CREATE OR REPLACE FUNCTION water_class(waterway TEXT) RETURNS TEXT AS $$ SELECT CASE WHEN "waterway" IN ('', 'lake') THEN 'lake' - WHEN "waterway"='dock' THEN 'dock' + WHEN "waterway" = 'dock' THEN 'dock' ELSE 'river' END; $$ LANGUAGE SQL IMMUTABLE; @@ -1813,24 +1813,41 @@ CREATE OR REPLACE FUNCTION highway_class(highway TEXT, public_transport TEXT, co WHEN "highway" IN ('tertiary', 'tertiary_link') THEN 'tertiary' WHEN "highway" IN ('unclassified', 'residential', 'living_street', 'road') THEN 'minor' WHEN "highway" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR "public_transport"='platform' + OR "public_transport" = 'platform' THEN 'path' - WHEN "highway"='service' THEN 'service' - WHEN "highway"='track' THEN 'track' - WHEN "highway"='raceway' THEN 'raceway' - WHEN highway = 'construction' THEN CASE - WHEN construction IN ('motorway', 'motorway_link') THEN 'motorway_construction' - WHEN construction IN ('trunk', 'trunk_link') THEN 'trunk_construction' - WHEN construction IN ('primary', 'primary_link') THEN 'primary_construction' - WHEN construction IN ('secondary', 'secondary_link') THEN 'secondary_construction' - WHEN construction IN ('tertiary', 'tertiary_link') THEN 'tertiary_construction' - WHEN construction IN ('', 'unclassified', 'residential', 'living_street', 'road') THEN 'minor_construction' - WHEN construction IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR public_transport = 'platform' THEN 'path_construction' - WHEN construction = 'service' THEN 'service_construction' - WHEN construction = 'track' THEN 'track_construction' - WHEN construction = 'raceway' THEN 'raceway_construction' - END + WHEN "highway" = 'service' THEN 'service' + WHEN "highway" = 'track' THEN 'track' + WHEN "highway" = 'raceway' THEN 'raceway' + WHEN "highway" = 'construction' + AND "construction" IN ('motorway', 'motorway_link') + THEN 'motorway_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('trunk', 'trunk_link') + THEN 'trunk_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('primary', 'primary_link') + THEN 'primary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('secondary', 'secondary_link') + THEN 'secondary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('tertiary', 'tertiary_link') + THEN 'tertiary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('', 'unclassified', 'residential', 'living_street', 'road') + THEN 'minor_construction' + WHEN "highway" = 'construction' + AND ("construction" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') OR "public_transport" = 'platform') + THEN 'path_construction' + WHEN "highway" = 'construction' + AND "construction" = 'service' + THEN 'service_construction' + WHEN "highway" = 'construction' + AND "construction" = 'track' + THEN 'track_construction' + WHEN "highway" = 'construction' + AND "construction" = 'raceway' + THEN 'raceway_construction' END; $$ LANGUAGE SQL IMMUTABLE; @@ -4073,6 +4090,12 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('fast_food', 'food_court') THEN 'fast_food' WHEN "subclass" IN ('park', 'bbq') THEN 'park' WHEN "subclass" IN ('bus_stop', 'bus_station') THEN 'bus' + WHEN ("subclass" = 'station' AND "mapping_key" = 'railway') + OR "subclass" IN ('halt', 'tram_stop', 'subway') + THEN 'railway' + WHEN "subclass" = 'station' + AND "mapping_key" = 'aerialway' + THEN 'aerialway' WHEN "subclass" IN ('subway_entrance', 'train_station_entrance') THEN 'entrance' WHEN "subclass" IN ('camp_site', 'caravan_site') THEN 'campsite' WHEN "subclass" IN ('laundry', 'dry_cleaning') THEN 'laundry' @@ -4082,7 +4105,7 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('hotel', 'motel', 'bed_and_breakfast', 'guest_house', 'hostel', 'chalet', 'alpine_hut', 'dormitory') THEN 'lodging' WHEN "subclass" IN ('chocolate', 'confectionery') THEN 'ice_cream' WHEN "subclass" IN ('post_box', 'post_office') THEN 'post' - WHEN "subclass"='cafe' THEN 'cafe' + WHEN "subclass" = 'cafe' THEN 'cafe' WHEN "subclass" IN ('school', 'kindergarten') THEN 'school' WHEN "subclass" IN ('alcohol', 'beverages', 'wine') THEN 'alcohol_shop' WHEN "subclass" IN ('bar', 'nightclub') THEN 'bar' @@ -4098,9 +4121,6 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('bag', 'clothes') THEN 'clothing_store' WHEN "subclass" IN ('swimming_area', 'swimming') THEN 'swimming' WHEN "subclass" IN ('castle', 'ruins') THEN 'castle' - WHEN (subclass = 'station' AND mapping_key = 'railway') - OR (subclass IN ('halt', 'tram_stop', 'subway')) THEN 'railway' - WHEN (subclass = 'station' AND mapping_key = 'aerialway') THEN 'aerialway' ELSE subclass END; $$ LANGUAGE SQL IMMUTABLE; @@ -4301,22 +4321,22 @@ $$ COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de, tags, CASE - WHEN "aerodrome"='international' - OR "aerodrome_type"='international' + WHEN "aerodrome" = 'international' + OR "aerodrome_type" = 'international' THEN 'international' - WHEN "aerodrome"='public' - OR "aerodrome_type"='civil' + WHEN "aerodrome" = 'public' + OR "aerodrome_type" = 'civil' OR "aerodrome_type" LIKE '%public%' THEN 'public' - WHEN "aerodrome"='regional' - OR "aerodrome_type"='regional' + WHEN "aerodrome" = 'regional' + OR "aerodrome_type" = 'regional' THEN 'regional' - WHEN "aerodrome"='military' + WHEN "aerodrome" = 'military' OR "aerodrome_type" LIKE '%military%' - OR "military"='airfield' + OR "military" = 'airfield' THEN 'military' - WHEN "aerodrome"='private' - OR "aerodrome_type"='private' + WHEN "aerodrome" = 'private' + OR "aerodrome_type" = 'private' THEN 'private' ELSE 'other' END AS class, ```
2020-01-31 05:22:21 +00:00
__AND__:
- highway: construction
- __OR__:
construction: ['pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor']
public_transport: platform
service_construction:
Declared field mapping 2 (#734) Make a few more mappings declarative, and removes values declared in both SQL and the yaml file. Here's the diff comparing `build/tileset.sql` in master vs the new PR. The changes are mostly stylistic, except when a nested `if` statement is expanded into individual `if ... and ...` conditions (logically identical) ```diff 55c55 diff --git a/build/tileset.sql b/build/tileset.sql index 4e59357..7c6c444 100644 --- a/build/tileset.sql +++ b/build/tileset.sql @@ -52,7 +52,7 @@ CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen4_idx ON osm_ocean_polygon_gen4 CREATE OR REPLACE FUNCTION water_class(waterway TEXT) RETURNS TEXT AS $$ SELECT CASE WHEN "waterway" IN ('', 'lake') THEN 'lake' - WHEN "waterway"='dock' THEN 'dock' + WHEN "waterway" = 'dock' THEN 'dock' ELSE 'river' END; $$ LANGUAGE SQL IMMUTABLE; @@ -1813,24 +1813,41 @@ CREATE OR REPLACE FUNCTION highway_class(highway TEXT, public_transport TEXT, co WHEN "highway" IN ('tertiary', 'tertiary_link') THEN 'tertiary' WHEN "highway" IN ('unclassified', 'residential', 'living_street', 'road') THEN 'minor' WHEN "highway" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR "public_transport"='platform' + OR "public_transport" = 'platform' THEN 'path' - WHEN "highway"='service' THEN 'service' - WHEN "highway"='track' THEN 'track' - WHEN "highway"='raceway' THEN 'raceway' - WHEN highway = 'construction' THEN CASE - WHEN construction IN ('motorway', 'motorway_link') THEN 'motorway_construction' - WHEN construction IN ('trunk', 'trunk_link') THEN 'trunk_construction' - WHEN construction IN ('primary', 'primary_link') THEN 'primary_construction' - WHEN construction IN ('secondary', 'secondary_link') THEN 'secondary_construction' - WHEN construction IN ('tertiary', 'tertiary_link') THEN 'tertiary_construction' - WHEN construction IN ('', 'unclassified', 'residential', 'living_street', 'road') THEN 'minor_construction' - WHEN construction IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR public_transport = 'platform' THEN 'path_construction' - WHEN construction = 'service' THEN 'service_construction' - WHEN construction = 'track' THEN 'track_construction' - WHEN construction = 'raceway' THEN 'raceway_construction' - END + WHEN "highway" = 'service' THEN 'service' + WHEN "highway" = 'track' THEN 'track' + WHEN "highway" = 'raceway' THEN 'raceway' + WHEN "highway" = 'construction' + AND "construction" IN ('motorway', 'motorway_link') + THEN 'motorway_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('trunk', 'trunk_link') + THEN 'trunk_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('primary', 'primary_link') + THEN 'primary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('secondary', 'secondary_link') + THEN 'secondary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('tertiary', 'tertiary_link') + THEN 'tertiary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('', 'unclassified', 'residential', 'living_street', 'road') + THEN 'minor_construction' + WHEN "highway" = 'construction' + AND ("construction" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') OR "public_transport" = 'platform') + THEN 'path_construction' + WHEN "highway" = 'construction' + AND "construction" = 'service' + THEN 'service_construction' + WHEN "highway" = 'construction' + AND "construction" = 'track' + THEN 'track_construction' + WHEN "highway" = 'construction' + AND "construction" = 'raceway' + THEN 'raceway_construction' END; $$ LANGUAGE SQL IMMUTABLE; @@ -4073,6 +4090,12 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('fast_food', 'food_court') THEN 'fast_food' WHEN "subclass" IN ('park', 'bbq') THEN 'park' WHEN "subclass" IN ('bus_stop', 'bus_station') THEN 'bus' + WHEN ("subclass" = 'station' AND "mapping_key" = 'railway') + OR "subclass" IN ('halt', 'tram_stop', 'subway') + THEN 'railway' + WHEN "subclass" = 'station' + AND "mapping_key" = 'aerialway' + THEN 'aerialway' WHEN "subclass" IN ('subway_entrance', 'train_station_entrance') THEN 'entrance' WHEN "subclass" IN ('camp_site', 'caravan_site') THEN 'campsite' WHEN "subclass" IN ('laundry', 'dry_cleaning') THEN 'laundry' @@ -4082,7 +4105,7 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('hotel', 'motel', 'bed_and_breakfast', 'guest_house', 'hostel', 'chalet', 'alpine_hut', 'dormitory') THEN 'lodging' WHEN "subclass" IN ('chocolate', 'confectionery') THEN 'ice_cream' WHEN "subclass" IN ('post_box', 'post_office') THEN 'post' - WHEN "subclass"='cafe' THEN 'cafe' + WHEN "subclass" = 'cafe' THEN 'cafe' WHEN "subclass" IN ('school', 'kindergarten') THEN 'school' WHEN "subclass" IN ('alcohol', 'beverages', 'wine') THEN 'alcohol_shop' WHEN "subclass" IN ('bar', 'nightclub') THEN 'bar' @@ -4098,9 +4121,6 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('bag', 'clothes') THEN 'clothing_store' WHEN "subclass" IN ('swimming_area', 'swimming') THEN 'swimming' WHEN "subclass" IN ('castle', 'ruins') THEN 'castle' - WHEN (subclass = 'station' AND mapping_key = 'railway') - OR (subclass IN ('halt', 'tram_stop', 'subway')) THEN 'railway' - WHEN (subclass = 'station' AND mapping_key = 'aerialway') THEN 'aerialway' ELSE subclass END; $$ LANGUAGE SQL IMMUTABLE; @@ -4301,22 +4321,22 @@ $$ COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de, tags, CASE - WHEN "aerodrome"='international' - OR "aerodrome_type"='international' + WHEN "aerodrome" = 'international' + OR "aerodrome_type" = 'international' THEN 'international' - WHEN "aerodrome"='public' - OR "aerodrome_type"='civil' + WHEN "aerodrome" = 'public' + OR "aerodrome_type" = 'civil' OR "aerodrome_type" LIKE '%public%' THEN 'public' - WHEN "aerodrome"='regional' - OR "aerodrome_type"='regional' + WHEN "aerodrome" = 'regional' + OR "aerodrome_type" = 'regional' THEN 'regional' - WHEN "aerodrome"='military' + WHEN "aerodrome" = 'military' OR "aerodrome_type" LIKE '%military%' - OR "military"='airfield' + OR "military" = 'airfield' THEN 'military' - WHEN "aerodrome"='private' - OR "aerodrome_type"='private' + WHEN "aerodrome" = 'private' + OR "aerodrome_type" = 'private' THEN 'private' ELSE 'other' END AS class, ```
2020-01-31 05:22:21 +00:00
__AND__:
highway: construction
construction: service
track_construction:
Declared field mapping 2 (#734) Make a few more mappings declarative, and removes values declared in both SQL and the yaml file. Here's the diff comparing `build/tileset.sql` in master vs the new PR. The changes are mostly stylistic, except when a nested `if` statement is expanded into individual `if ... and ...` conditions (logically identical) ```diff 55c55 diff --git a/build/tileset.sql b/build/tileset.sql index 4e59357..7c6c444 100644 --- a/build/tileset.sql +++ b/build/tileset.sql @@ -52,7 +52,7 @@ CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen4_idx ON osm_ocean_polygon_gen4 CREATE OR REPLACE FUNCTION water_class(waterway TEXT) RETURNS TEXT AS $$ SELECT CASE WHEN "waterway" IN ('', 'lake') THEN 'lake' - WHEN "waterway"='dock' THEN 'dock' + WHEN "waterway" = 'dock' THEN 'dock' ELSE 'river' END; $$ LANGUAGE SQL IMMUTABLE; @@ -1813,24 +1813,41 @@ CREATE OR REPLACE FUNCTION highway_class(highway TEXT, public_transport TEXT, co WHEN "highway" IN ('tertiary', 'tertiary_link') THEN 'tertiary' WHEN "highway" IN ('unclassified', 'residential', 'living_street', 'road') THEN 'minor' WHEN "highway" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR "public_transport"='platform' + OR "public_transport" = 'platform' THEN 'path' - WHEN "highway"='service' THEN 'service' - WHEN "highway"='track' THEN 'track' - WHEN "highway"='raceway' THEN 'raceway' - WHEN highway = 'construction' THEN CASE - WHEN construction IN ('motorway', 'motorway_link') THEN 'motorway_construction' - WHEN construction IN ('trunk', 'trunk_link') THEN 'trunk_construction' - WHEN construction IN ('primary', 'primary_link') THEN 'primary_construction' - WHEN construction IN ('secondary', 'secondary_link') THEN 'secondary_construction' - WHEN construction IN ('tertiary', 'tertiary_link') THEN 'tertiary_construction' - WHEN construction IN ('', 'unclassified', 'residential', 'living_street', 'road') THEN 'minor_construction' - WHEN construction IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR public_transport = 'platform' THEN 'path_construction' - WHEN construction = 'service' THEN 'service_construction' - WHEN construction = 'track' THEN 'track_construction' - WHEN construction = 'raceway' THEN 'raceway_construction' - END + WHEN "highway" = 'service' THEN 'service' + WHEN "highway" = 'track' THEN 'track' + WHEN "highway" = 'raceway' THEN 'raceway' + WHEN "highway" = 'construction' + AND "construction" IN ('motorway', 'motorway_link') + THEN 'motorway_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('trunk', 'trunk_link') + THEN 'trunk_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('primary', 'primary_link') + THEN 'primary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('secondary', 'secondary_link') + THEN 'secondary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('tertiary', 'tertiary_link') + THEN 'tertiary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('', 'unclassified', 'residential', 'living_street', 'road') + THEN 'minor_construction' + WHEN "highway" = 'construction' + AND ("construction" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') OR "public_transport" = 'platform') + THEN 'path_construction' + WHEN "highway" = 'construction' + AND "construction" = 'service' + THEN 'service_construction' + WHEN "highway" = 'construction' + AND "construction" = 'track' + THEN 'track_construction' + WHEN "highway" = 'construction' + AND "construction" = 'raceway' + THEN 'raceway_construction' END; $$ LANGUAGE SQL IMMUTABLE; @@ -4073,6 +4090,12 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('fast_food', 'food_court') THEN 'fast_food' WHEN "subclass" IN ('park', 'bbq') THEN 'park' WHEN "subclass" IN ('bus_stop', 'bus_station') THEN 'bus' + WHEN ("subclass" = 'station' AND "mapping_key" = 'railway') + OR "subclass" IN ('halt', 'tram_stop', 'subway') + THEN 'railway' + WHEN "subclass" = 'station' + AND "mapping_key" = 'aerialway' + THEN 'aerialway' WHEN "subclass" IN ('subway_entrance', 'train_station_entrance') THEN 'entrance' WHEN "subclass" IN ('camp_site', 'caravan_site') THEN 'campsite' WHEN "subclass" IN ('laundry', 'dry_cleaning') THEN 'laundry' @@ -4082,7 +4105,7 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('hotel', 'motel', 'bed_and_breakfast', 'guest_house', 'hostel', 'chalet', 'alpine_hut', 'dormitory') THEN 'lodging' WHEN "subclass" IN ('chocolate', 'confectionery') THEN 'ice_cream' WHEN "subclass" IN ('post_box', 'post_office') THEN 'post' - WHEN "subclass"='cafe' THEN 'cafe' + WHEN "subclass" = 'cafe' THEN 'cafe' WHEN "subclass" IN ('school', 'kindergarten') THEN 'school' WHEN "subclass" IN ('alcohol', 'beverages', 'wine') THEN 'alcohol_shop' WHEN "subclass" IN ('bar', 'nightclub') THEN 'bar' @@ -4098,9 +4121,6 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('bag', 'clothes') THEN 'clothing_store' WHEN "subclass" IN ('swimming_area', 'swimming') THEN 'swimming' WHEN "subclass" IN ('castle', 'ruins') THEN 'castle' - WHEN (subclass = 'station' AND mapping_key = 'railway') - OR (subclass IN ('halt', 'tram_stop', 'subway')) THEN 'railway' - WHEN (subclass = 'station' AND mapping_key = 'aerialway') THEN 'aerialway' ELSE subclass END; $$ LANGUAGE SQL IMMUTABLE; @@ -4301,22 +4321,22 @@ $$ COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de, tags, CASE - WHEN "aerodrome"='international' - OR "aerodrome_type"='international' + WHEN "aerodrome" = 'international' + OR "aerodrome_type" = 'international' THEN 'international' - WHEN "aerodrome"='public' - OR "aerodrome_type"='civil' + WHEN "aerodrome" = 'public' + OR "aerodrome_type" = 'civil' OR "aerodrome_type" LIKE '%public%' THEN 'public' - WHEN "aerodrome"='regional' - OR "aerodrome_type"='regional' + WHEN "aerodrome" = 'regional' + OR "aerodrome_type" = 'regional' THEN 'regional' - WHEN "aerodrome"='military' + WHEN "aerodrome" = 'military' OR "aerodrome_type" LIKE '%military%' - OR "military"='airfield' + OR "military" = 'airfield' THEN 'military' - WHEN "aerodrome"='private' - OR "aerodrome_type"='private' + WHEN "aerodrome" = 'private' + OR "aerodrome_type" = 'private' THEN 'private' ELSE 'other' END AS class, ```
2020-01-31 05:22:21 +00:00
__AND__:
highway: construction
construction: track
raceway_construction:
Declared field mapping 2 (#734) Make a few more mappings declarative, and removes values declared in both SQL and the yaml file. Here's the diff comparing `build/tileset.sql` in master vs the new PR. The changes are mostly stylistic, except when a nested `if` statement is expanded into individual `if ... and ...` conditions (logically identical) ```diff 55c55 diff --git a/build/tileset.sql b/build/tileset.sql index 4e59357..7c6c444 100644 --- a/build/tileset.sql +++ b/build/tileset.sql @@ -52,7 +52,7 @@ CREATE INDEX IF NOT EXISTS osm_ocean_polygon_gen4_idx ON osm_ocean_polygon_gen4 CREATE OR REPLACE FUNCTION water_class(waterway TEXT) RETURNS TEXT AS $$ SELECT CASE WHEN "waterway" IN ('', 'lake') THEN 'lake' - WHEN "waterway"='dock' THEN 'dock' + WHEN "waterway" = 'dock' THEN 'dock' ELSE 'river' END; $$ LANGUAGE SQL IMMUTABLE; @@ -1813,24 +1813,41 @@ CREATE OR REPLACE FUNCTION highway_class(highway TEXT, public_transport TEXT, co WHEN "highway" IN ('tertiary', 'tertiary_link') THEN 'tertiary' WHEN "highway" IN ('unclassified', 'residential', 'living_street', 'road') THEN 'minor' WHEN "highway" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR "public_transport"='platform' + OR "public_transport" = 'platform' THEN 'path' - WHEN "highway"='service' THEN 'service' - WHEN "highway"='track' THEN 'track' - WHEN "highway"='raceway' THEN 'raceway' - WHEN highway = 'construction' THEN CASE - WHEN construction IN ('motorway', 'motorway_link') THEN 'motorway_construction' - WHEN construction IN ('trunk', 'trunk_link') THEN 'trunk_construction' - WHEN construction IN ('primary', 'primary_link') THEN 'primary_construction' - WHEN construction IN ('secondary', 'secondary_link') THEN 'secondary_construction' - WHEN construction IN ('tertiary', 'tertiary_link') THEN 'tertiary_construction' - WHEN construction IN ('', 'unclassified', 'residential', 'living_street', 'road') THEN 'minor_construction' - WHEN construction IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') - OR public_transport = 'platform' THEN 'path_construction' - WHEN construction = 'service' THEN 'service_construction' - WHEN construction = 'track' THEN 'track_construction' - WHEN construction = 'raceway' THEN 'raceway_construction' - END + WHEN "highway" = 'service' THEN 'service' + WHEN "highway" = 'track' THEN 'track' + WHEN "highway" = 'raceway' THEN 'raceway' + WHEN "highway" = 'construction' + AND "construction" IN ('motorway', 'motorway_link') + THEN 'motorway_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('trunk', 'trunk_link') + THEN 'trunk_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('primary', 'primary_link') + THEN 'primary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('secondary', 'secondary_link') + THEN 'secondary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('tertiary', 'tertiary_link') + THEN 'tertiary_construction' + WHEN "highway" = 'construction' + AND "construction" IN ('', 'unclassified', 'residential', 'living_street', 'road') + THEN 'minor_construction' + WHEN "highway" = 'construction' + AND ("construction" IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') OR "public_transport" = 'platform') + THEN 'path_construction' + WHEN "highway" = 'construction' + AND "construction" = 'service' + THEN 'service_construction' + WHEN "highway" = 'construction' + AND "construction" = 'track' + THEN 'track_construction' + WHEN "highway" = 'construction' + AND "construction" = 'raceway' + THEN 'raceway_construction' END; $$ LANGUAGE SQL IMMUTABLE; @@ -4073,6 +4090,12 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('fast_food', 'food_court') THEN 'fast_food' WHEN "subclass" IN ('park', 'bbq') THEN 'park' WHEN "subclass" IN ('bus_stop', 'bus_station') THEN 'bus' + WHEN ("subclass" = 'station' AND "mapping_key" = 'railway') + OR "subclass" IN ('halt', 'tram_stop', 'subway') + THEN 'railway' + WHEN "subclass" = 'station' + AND "mapping_key" = 'aerialway' + THEN 'aerialway' WHEN "subclass" IN ('subway_entrance', 'train_station_entrance') THEN 'entrance' WHEN "subclass" IN ('camp_site', 'caravan_site') THEN 'campsite' WHEN "subclass" IN ('laundry', 'dry_cleaning') THEN 'laundry' @@ -4082,7 +4105,7 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('hotel', 'motel', 'bed_and_breakfast', 'guest_house', 'hostel', 'chalet', 'alpine_hut', 'dormitory') THEN 'lodging' WHEN "subclass" IN ('chocolate', 'confectionery') THEN 'ice_cream' WHEN "subclass" IN ('post_box', 'post_office') THEN 'post' - WHEN "subclass"='cafe' THEN 'cafe' + WHEN "subclass" = 'cafe' THEN 'cafe' WHEN "subclass" IN ('school', 'kindergarten') THEN 'school' WHEN "subclass" IN ('alcohol', 'beverages', 'wine') THEN 'alcohol_shop' WHEN "subclass" IN ('bar', 'nightclub') THEN 'bar' @@ -4098,9 +4121,6 @@ RETURNS TEXT AS $$ WHEN "subclass" IN ('bag', 'clothes') THEN 'clothing_store' WHEN "subclass" IN ('swimming_area', 'swimming') THEN 'swimming' WHEN "subclass" IN ('castle', 'ruins') THEN 'castle' - WHEN (subclass = 'station' AND mapping_key = 'railway') - OR (subclass IN ('halt', 'tram_stop', 'subway')) THEN 'railway' - WHEN (subclass = 'station' AND mapping_key = 'aerialway') THEN 'aerialway' ELSE subclass END; $$ LANGUAGE SQL IMMUTABLE; @@ -4301,22 +4321,22 @@ $$ COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de, tags, CASE - WHEN "aerodrome"='international' - OR "aerodrome_type"='international' + WHEN "aerodrome" = 'international' + OR "aerodrome_type" = 'international' THEN 'international' - WHEN "aerodrome"='public' - OR "aerodrome_type"='civil' + WHEN "aerodrome" = 'public' + OR "aerodrome_type" = 'civil' OR "aerodrome_type" LIKE '%public%' THEN 'public' - WHEN "aerodrome"='regional' - OR "aerodrome_type"='regional' + WHEN "aerodrome" = 'regional' + OR "aerodrome_type" = 'regional' THEN 'regional' - WHEN "aerodrome"='military' + WHEN "aerodrome" = 'military' OR "aerodrome_type" LIKE '%military%' - OR "military"='airfield' + OR "military" = 'airfield' THEN 'military' - WHEN "aerodrome"='private' - OR "aerodrome_type"='private' + WHEN "aerodrome" = 'private' + OR "aerodrome_type" = 'private' THEN 'private' ELSE 'other' END AS class, ```
2020-01-31 05:22:21 +00:00
__AND__:
highway: construction
construction: raceway
2017-09-21 18:08:29 +00:00
subclass:
description: |
Distinguish more specific classes of railway and path:
2017-09-21 18:08:29 +00:00
Subclass is value of the
[`railway`](http://wiki.openstreetmap.org/wiki/Key:railway),
[`highway`](http://wiki.openstreetmap.org/wiki/Key:highway) (for paths), or
[`public_transport`](http://wiki.openstreetmap.org/wiki/Key:public_transport) (for platforms) tag.
2017-09-21 18:08:29 +00:00
values:
- rail
- narrow_gauge
- preserved
- funicular
- subway
- light_rail
- monorail
- tram
- pedestrian
- path
- footway
- cycleway
- steps
- bridleway
- corridor
- platform
- ferry (DEPRECATED - use class)
network:
description: |
The network type derived mainly from [`network`](http://wiki.openstreetmap.org/wiki/Key:network) tag of the road.
See more info about [`us-*`](http://wiki.openstreetmap.org/wiki/Road_signs_in_the_United_States),
[`ca-transcanada`](https://en.wikipedia.org/wiki/Trans-Canada_Highway),
[`gb-*`](http://wiki.openstreetmap.org/wiki/United_Kingdom_Tagging_Guidelines#UK_roads),
or [`ie-*`](http://wiki.openstreetmap.org/wiki/Ireland/Roads).
2016-11-30 12:57:25 +00:00
brunnel:
description: |
Mark whether way is a tunnel or bridge.
values:
- bridge
- tunnel
- ford
oneway:
description: |
Mark with `1` whether way is a oneway in the direction of the way,
with `-1` whether way is a oneway in the opposite direction of the way
or not a oneway with `0`.
values: [1, -1]
2016-11-30 12:57:25 +00:00
ramp:
description: |
Mark with `1` whether way is a ramp (link or steps)
or not with `0`.
values: [1]
2016-11-30 12:57:25 +00:00
service:
description: |
Original value of the [`service`](http://wiki.openstreetmap.org/wiki/Key:service) tag.
values:
- spur
- yard
- siding
- crossover
- driveway
- alley
- parking_aisle
access:
description: |
Access restrictions on this road. Supported values of the
[`access`](http://wiki.openstreetmap.org/wiki/Key:access) tag are `no` and `private`,
which resolve to `no`.
values:
- no
toll:
description: |
Whether this is a toll road, based on the [`toll`](http://wiki.openstreetmap.org/wiki/Key:toll) tag.
values: [0, 1]
expressway:
description: |
Whether this is an expressway, based on the [`expressway`](http://wiki.openstreetmap.org/wiki/Key:expressway) tag.
values: [1]
2018-04-27 11:41:32 +00:00
layer:
description: |
Original value of the [`layer`](http://wiki.openstreetmap.org/wiki/Key:layer) tag.
level:
description: |
Experimental feature! Filled only for steps and footways. Original
value of the [`level`](http://wiki.openstreetmap.org/wiki/Key:level) tag.
indoor:
description: |
Experimental feature! Filled only for steps and footways. Original
value of the [`indoor`](http://wiki.openstreetmap.org/wiki/Key:indoor) tag.
values:
- 1
bicycle:
description: |
Original value of the [`bicycle`](http://wiki.openstreetmap.org/wiki/Key:bicycle) tag (highways only).
foot:
description: |
Original value of the [`foot`](http://wiki.openstreetmap.org/wiki/Key:foot) tag (highways only).
2019-11-03 05:36:06 +00:00
horse:
description: |
2019-11-03 05:36:06 +00:00
Original value of the [`horse`](http://wiki.openstreetmap.org/wiki/Key:horse) tag (highways only).
mtb_scale:
description: |
Original value of the [`mtb:scale`](http://wiki.openstreetmap.org/wiki/Key:mtb:scale) tag (highways only).
surface:
description: |
2019-05-17 12:28:13 +00:00
Values of [`surface`](https://wiki.openstreetmap.org/wiki/Key:surface) tag devided into 2 groups `paved` (paved, asphalt, cobblestone, concrete, concrete:lanes, concrete:plates, metal, paving_stones, sett, unhewn_cobblestone, wood) and `unpaved` (unpaved, compacted, dirt, earth, fine_gravel, grass, grass_paver, gravel, gravel_turf, ground, ice, mud, pebblestone, salt, sand, snow, woodchips).
values:
- paved
- unpaved
2016-10-10 18:17:05 +00:00
datasource:
2016-10-24 13:14:43 +00:00
geometry_field: geometry
2016-10-10 18:17:05 +00:00
srid: 900913
query: (SELECT geometry, class, subclass, network, oneway, ramp, brunnel, service, access, toll, expressway, layer, level, indoor, bicycle, foot, horse, mtb_scale, surface FROM layer_transportation(!bbox!, z(!scale_denominator!))) AS t
2016-10-10 18:17:05 +00:00
schema:
- ./network_type.sql
2016-11-28 10:29:00 +00:00
- ./class.sql
BUGFIX: Fix name-based way fragmentation in transportation_name (#1295) I discovered this bug while investigating issues with the updates process related to #1190 #1292, and #814. The `transportation_name` layer produces slightly different `tags` hstore values in the `osm_transportation_name_linestring` table during the initial import versus when running an update. As currently written, the import code produces null-value keys in the `tags` column, while the update code suppresses them. This PR removes that difference and makes the import code use same method that is currently used in the update code. With a test case I've written, the import code produces a tags hstore that looks like this: `"name"=>"OpenMapTiles Secondary 2", "name:de"=>NULL, "name:en"=>NULL, "name_int"=>"OpenMapTiles Secondary 2", "name:latin"=>"OpenMapTiles Secondary 2"` ...while the update code produces a tags hstore that looks like this: `"name"=>"OpenMapTiles Secondary 2", "name_int"=>"OpenMapTiles Secondary 2", "name:latin"=>"OpenMapTiles Secondary 2"` Note the missing NULL values. This bug causes a small amount of space wastage after an update is run, because the update matching code detects the `tags` value as different, resulting in a duplicate copy of the tags value if that row is updated. This causes duplicate objects and breaks GROUP BY clauses that expect to group same-tagged features together. I've tested this by inspection of a generated mbtiles, database spot checks, and the unit test code included in this PR.
2021-11-25 09:45:11 +00:00
- ./highway_name.sql
- ./update_route_member.sql
- ./update_transportation_merge.sql
- ./transportation.sql
2016-10-10 18:17:05 +00:00
datasources:
- type: imposm3
mapping_file: ./mapping.yaml