diff --git a/layers/transportation/class.sql b/layers/transportation/class.sql index 1d51c868..d67d0fc6 100644 --- a/layers/transportation/class.sql +++ b/layers/transportation/class.sql @@ -42,13 +42,3 @@ CREATE OR REPLACE FUNCTION service_value(service TEXT) RETURNS TEXT AS $$ ELSE NULL END; $$ LANGUAGE SQL IMMUTABLE STRICT; - --- Map Natural Earth types to OSM highway -CREATE OR REPLACE FUNCTION ne_highway(type VARCHAR) RETURNS VARCHAR AS $$ - SELECT CASE type - WHEN 'Major Highway' THEN 'motorway' - WHEN 'Secondary Highway' THEN 'trunk' - WHEN 'Road' THEN 'primary' - ELSE type - END; -$$ LANGUAGE SQL IMMUTABLE; diff --git a/layers/transportation/layer.sql b/layers/transportation/layer.sql index edd97c91..1b50d609 100644 --- a/layers/transportation/layer.sql +++ b/layers/transportation/layer.sql @@ -20,18 +20,26 @@ RETURNS TABLE(osm_id bigint, geometry geometry, class text, ramp int, oneway int brunnel(is_bridge, is_tunnel, is_ford) AS brunnel, NULLIF(service, '') AS service FROM ( - -- etldoc: ne_10m_roads -> layer_transportation:z4z6 + -- etldoc: osm_highway_linestring_gen6 -> layer_transportation:z4 SELECT - NULL::bigint AS osm_id, geometry, - ne_highway(type) AS highway, NULL AS railway, NULL AS service, + osm_id, geometry, highway, NULL AS railway, NULL AS service, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_ford, NULL::boolean AS is_ramp, NULL::boolean AS is_oneway, - 0 AS z_order - FROM ne_10m_roads - WHERE featurecla = 'Road' - AND type IN ('Major Highway', 'Secondary Highway', 'Road') - AND zoom_level BETWEEN 4 AND 6 AND scalerank <= 1 + zoom_level + z_order + FROM osm_highway_linestring_gen6 + WHERE zoom_level = 4 + UNION ALL + + -- etldoc: osm_highway_linestring_gen5 -> layer_transportation:z5z6 + SELECT + osm_id, geometry, highway, NULL AS railway, NULL AS service, + NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, + NULL::boolean AS is_ford, + NULL::boolean AS is_ramp, NULL::boolean AS is_oneway, + z_order + FROM osm_highway_linestring_gen5 + WHERE zoom_level BETWEEN 5 AND 6 UNION ALL -- etldoc: osm_highway_linestring_gen4 -> layer_transportation:z7z8 @@ -42,7 +50,7 @@ RETURNS TABLE(osm_id bigint, geometry geometry, class text, ramp int, oneway int NULL::boolean AS is_ramp, NULL::boolean AS is_oneway, z_order FROM osm_highway_linestring_gen4 - WHERE zoom_level BETWEEN 7 AND 8 + WHERE zoom_level = 7 UNION ALL -- etldoc: osm_highway_linestring_gen3 -> layer_transportation:z9 @@ -53,7 +61,7 @@ RETURNS TABLE(osm_id bigint, geometry geometry, class text, ramp int, oneway int NULL::boolean AS is_ramp, NULL::boolean AS is_oneway, z_order FROM osm_highway_linestring_gen3 - WHERE zoom_level = 9 + WHERE zoom_level = 8 UNION ALL -- etldoc: osm_highway_linestring_gen2 -> layer_transportation:z10 @@ -64,7 +72,7 @@ RETURNS TABLE(osm_id bigint, geometry geometry, class text, ramp int, oneway int NULL::boolean AS is_ramp, NULL::boolean AS is_oneway, z_order FROM osm_highway_linestring_gen2 - WHERE zoom_level = 10 + WHERE zoom_level BETWEEN 9 AND 10 UNION ALL -- etldoc: osm_highway_linestring_gen1 -> layer_transportation:z11 diff --git a/layers/transportation/mapping.yaml b/layers/transportation/mapping.yaml index ab25d4a2..a0e9cf94 100644 --- a/layers/transportation/mapping.yaml +++ b/layers/transportation/mapping.yaml @@ -11,6 +11,18 @@ generalized_tables: sql_filter: railway='rail' AND service='' tolerance: 20.0 +# etldoc: imposm3 -> osm_highway_linestring_gen6 + highway_linestring_gen6: + source: highway_linestring_gen5 + sql_filter: highway IN ('motorway') AND NOT is_area + tolerance: 2000.0 + +# etldoc: imposm3 -> osm_highway_linestring_gen5 + highway_linestring_gen5: + source: highway_linestring_gen4 + sql_filter: highway IN ('motorway','trunk') AND NOT is_area + tolerance: 500.0 + # etldoc: imposm3 -> osm_highway_linestring_gen4 highway_linestring_gen4: source: highway_linestring_gen3