diff --git a/layers/transportation/etl_diagram.png b/layers/transportation/etl_diagram.png index 3e68e57..82b331d 100644 Binary files a/layers/transportation/etl_diagram.png and b/layers/transportation/etl_diagram.png differ diff --git a/layers/transportation/layer.sql b/layers/transportation/layer.sql index 300509f..1d7a637 100644 --- a/layers/transportation/layer.sql +++ b/layers/transportation/layer.sql @@ -14,6 +14,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$ WHEN highway IS NOT NULL THEN highway_class(highway) WHEN railway IS NOT NULL THEN railway_class(railway) WHEN aerialway IS NOT NULL THEN aerialway + WHEN shipway IS NOT NULL THEN shipway END AS class, CASE WHEN railway IS NOT NULL THEN railway @@ -28,7 +29,8 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$ FROM ( -- etldoc: osm_transportation_merge_linestring_gen7 -> layer_transportation:z4 SELECT - osm_id, geometry, highway, NULL AS railway, NULL AS aerialway, + osm_id, geometry, + highway, NULL AS railway, NULL AS aerialway, NULL AS shipway, NULL AS service, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_ford, @@ -40,7 +42,8 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$ -- etldoc: osm_transportation_merge_linestring_gen6 -> layer_transportation:z5 SELECT - osm_id, geometry, highway, NULL AS railway, NULL AS aerialway, + osm_id, geometry, + highway, NULL AS railway, NULL AS aerialway, NULL AS shipway, NULL AS service, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_ford, @@ -52,7 +55,8 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$ -- etldoc: osm_transportation_merge_linestring_gen5 -> layer_transportation:z6 SELECT - osm_id, geometry, highway, NULL AS railway, NULL AS aerialway, + osm_id, geometry, + highway, NULL AS railway, NULL AS aerialway, NULL AS shipway, NULL AS service, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_ford, @@ -64,7 +68,8 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$ -- etldoc: osm_transportation_merge_linestring_gen4 -> layer_transportation:z7 SELECT - osm_id, geometry, highway, NULL AS railway, NULL AS aerialway, + osm_id, geometry, + highway, NULL AS railway, NULL AS aerialway, NULL AS shipway, NULL AS service, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_ford, @@ -76,7 +81,8 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$ -- etldoc: osm_transportation_merge_linestring_gen3 -> layer_transportation:z8 SELECT - osm_id, geometry, highway, NULL AS railway, NULL AS aerialway, + osm_id, geometry, + highway, NULL AS railway, NULL AS aerialway, NULL AS shipway, NULL AS service, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_ford, @@ -89,7 +95,8 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$ -- etldoc: osm_highway_linestring_gen2 -> layer_transportation:z9 -- etldoc: osm_highway_linestring_gen2 -> layer_transportation:z10 SELECT - osm_id, geometry, highway, NULL AS railway, NULL AS aerialway, + osm_id, geometry, + highway, NULL AS railway, NULL AS aerialway, NULL AS shipway, NULL AS service, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_ford, @@ -102,7 +109,8 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$ -- etldoc: osm_highway_linestring_gen1 -> layer_transportation:z11 SELECT - osm_id, geometry, highway, NULL AS railway, NULL AS aerialway, + osm_id, geometry, + highway, NULL AS railway, NULL AS aerialway, NULL AS shipway, NULL AS service, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_ford, @@ -117,7 +125,8 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$ -- etldoc: osm_highway_linestring -> layer_transportation:z13 -- etldoc: osm_highway_linestring -> layer_transportation:z14_ SELECT - osm_id, geometry, highway, NULL AS railway, NULL AS aerialway, + osm_id, geometry, + highway, NULL AS railway, NULL AS aerialway, NULL AS shipway, service_value(service) AS service, is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, z_order FROM osm_highway_linestring @@ -133,7 +142,8 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$ -- etldoc: osm_railway_linestring_gen5 -> layer_transportation:z8 SELECT - osm_id, geometry, NULL AS highway, railway, NULL AS aerialway, + osm_id, geometry, + NULL AS highway, railway, NULL AS aerialway, NULL AS shipway, service_value(service) AS service, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_ford, @@ -146,7 +156,8 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$ -- etldoc: osm_railway_linestring_gen4 -> layer_transportation:z9 SELECT - osm_id, geometry, NULL AS highway, railway, NULL AS aerialway, + osm_id, geometry, + NULL AS highway, railway, NULL AS aerialway, NULL AS shipway, service_value(service) AS service, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_ford, @@ -159,7 +170,8 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$ -- etldoc: osm_railway_linestring_gen3 -> layer_transportation:z10 SELECT - osm_id, geometry, NULL AS highway, railway, NULL AS aerialway, + osm_id, geometry, + NULL AS highway, railway, NULL AS aerialway, NULL AS shipway, service_value(service) AS service, is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, z_order FROM osm_railway_linestring_gen3 @@ -169,7 +181,8 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$ -- etldoc: osm_railway_linestring_gen2 -> layer_transportation:z11 SELECT - osm_id, geometry, NULL AS highway, railway, NULL AS aerialway, + osm_id, geometry, + NULL AS highway, railway, NULL AS aerialway, NULL AS shipway, service_value(service) AS service, is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, z_order FROM osm_railway_linestring_gen2 @@ -179,7 +192,8 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$ -- etldoc: osm_railway_linestring_gen1 -> layer_transportation:z12 SELECT - osm_id, geometry, NULL AS highway, railway, NULL AS aerialway, + osm_id, geometry, + NULL AS highway, railway, NULL AS aerialway, NULL AS shipway, service_value(service) AS service, is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, z_order FROM osm_railway_linestring_gen1 @@ -190,7 +204,8 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$ -- etldoc: osm_railway_linestring -> layer_transportation:z13 -- etldoc: osm_railway_linestring -> layer_transportation:z14_ SELECT - osm_id, geometry, NULL AS highway, railway, NULL AS aerialway, + osm_id, geometry, + NULL AS highway, railway, NULL AS aerialway, NULL AS shipway, service_value(service) AS service, is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, z_order FROM osm_railway_linestring @@ -201,8 +216,8 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$ -- etldoc: osm_aerialway_linestring_gen1 -> layer_transportation:z12 SELECT - osm_id, geometry, NULL AS highway, NULL as railway, - aerialway, + osm_id, geometry, + NULL AS highway, NULL as railway, aerialway, NULL AS shipway, service_value(service) AS service, is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, z_order FROM osm_aerialway_linestring_gen1 @@ -212,14 +227,45 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$ -- etldoc: osm_aerialway_linestring -> layer_transportation:z13 -- etldoc: osm_aerialway_linestring -> layer_transportation:z14_ SELECT - osm_id, geometry, NULL AS highway, NULL as railway, - aerialway, + osm_id, geometry, + NULL AS highway, NULL as railway, aerialway, NULL AS shipway, service_value(service) AS service, is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, z_order FROM osm_aerialway_linestring WHERE zoom_level >= 13 UNION ALL + -- etldoc: osm_shipway_linestring_gen2 -> layer_transportation:z11 + SELECT + osm_id, geometry, + NULL AS highway, NULL AS railway, NULL AS aerialway, shipway, + service_value(service) AS service, + is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, z_order + FROM osm_shipway_linestring_gen2 + WHERE zoom_level = 11 + UNION ALL + + -- etldoc: osm_shipway_linestring_gen1 -> layer_transportation:z12 + SELECT + osm_id, geometry, + NULL AS highway, NULL AS railway, NULL AS aerialway, shipway, + service_value(service) AS service, + is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, z_order + FROM osm_shipway_linestring_gen1 + WHERE zoom_level = 12 + UNION ALL + + -- etldoc: osm_shipway_linestring -> layer_transportation:z13 + -- etldoc: osm_shipway_linestring -> layer_transportation:z14_ + SELECT + osm_id, geometry, + NULL AS highway, NULL AS railway, NULL AS aerialway, shipway, + service_value(service) AS service, + is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, z_order + FROM osm_shipway_linestring + WHERE zoom_level >= 13 + UNION ALL + -- NOTE: We limit the selection of polys because we need to be -- careful to net get false positives here because -- it is possible that closed linestrings appear both as @@ -228,7 +274,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$ -- etldoc: osm_highway_polygon -> layer_transportation:z14_ SELECT osm_id, geometry, - highway, NULL AS railway, NULL AS aerialway, + highway, NULL AS railway, NULL AS aerialway, NULL AS shipway, NULL AS service, FALSE AS is_bridge, FALSE AS is_tunnel, FALSE AS is_ford, FALSE AS is_ramp, FALSE AS is_oneway, z_order diff --git a/layers/transportation/mapping.yaml b/layers/transportation/mapping.yaml index 360ab11..66b77a7 100644 --- a/layers/transportation/mapping.yaml +++ b/layers/transportation/mapping.yaml @@ -30,6 +30,16 @@ generalized_tables: source: aerialway_linestring tolerance: ZRES13 +# etldoc: imposm3 -> osm_shipway_linestring_gen2 + shipway_linestring_gen2: + source: shipway_linestring_gen1 + tolerance: ZRES12 + +# etldoc: imposm3 -> osm_shipway_linestring_gen1 + shipway_linestring_gen1: + source: shipway_linestring + tolerance: ZRES13 + # etldoc: imposm3 -> osm_highway_linestring_gen2 highway_linestring_gen2: source: highway_linestring_gen1 @@ -228,6 +238,35 @@ tables: aerialway: - cable_car +# etldoc: imposm3 -> osm_shipway_linestring + shipway_linestring: + type: linestring + fields: + - name: osm_id + type: id + - name: geometry + type: geometry + - key: route + name: shipway + type: string + - *z_order + - *layer + - *name + - *name_en + - *name_de + - *short_name + - *tunnel + - *bridge + - *ramp + - *ford + - *oneway + - *area + - *service + - *usage + mapping: + route: + - ferry + # etldoc: imposm3 -> osm_highway_polygon highway_polygon: type: polygon diff --git a/layers/transportation/mapping_diagram.png b/layers/transportation/mapping_diagram.png index e32ca59..47357d5 100644 Binary files a/layers/transportation/mapping_diagram.png and b/layers/transportation/mapping_diagram.png differ diff --git a/layers/transportation/transportation.yaml b/layers/transportation/transportation.yaml index 25d2983..cfc9386 100644 --- a/layers/transportation/transportation.yaml +++ b/layers/transportation/transportation.yaml @@ -1,7 +1,8 @@ layer: id: "transportation" description: | - **transportation** contains roads, railways, and aerialways. + **transportation** contains roads, railways, aerial ways, and shipping + lines. This layer is directly derived from the OSM road hierarchy. At lower zoom levels major highways from Natural Earth are used. It contains all roads from motorways to primary, secondary and @@ -16,8 +17,10 @@ layer: Distinguish between more and less important roads or railways. Class is derived from the value of the [`highway`](http://wiki.openstreetmap.org/wiki/Key:highway), - [`railway`](http://wiki.openstreetmap.org/wiki/Key:railway), or - [`aerialway`](http://wiki.openstreetmap.org/wiki/Key:aerialway) tag. + [`railway`](http://wiki.openstreetmap.org/wiki/Key:railway), + [`aerialway`](http://wiki.openstreetmap.org/wiki/Key:aerialway), or + [`route`](http://wiki.openstreetmap.org/wiki/Key:route) tag (for + shipping ways). values: - motorway - trunk @@ -32,6 +35,7 @@ layer: - rail - transit - cable_car + - ferry subclass: description: | Distinguish more specific railway classes: