From ea2530788f41564207fb1b7c9ccec2fdf492590e Mon Sep 17 00:00:00 2001 From: lukasmartinelli Date: Fri, 28 Oct 2016 16:53:29 +0200 Subject: [PATCH] Filter out large rivers --- layers/water/mapping.yaml | 15 ++++++++++++--- layers/water/water.sql | 13 +++++++++---- layers/water/water.yaml | 2 +- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/layers/water/mapping.yaml b/layers/water/mapping.yaml index f9256cec..5e74ec64 100644 --- a/layers/water/mapping.yaml +++ b/layers/water/mapping.yaml @@ -1,15 +1,15 @@ generalized_tables: water_polygon_gen3: source: water_polygon - sql_filter: area>15000000.0 + sql_filter: area>15000000.0 AND waterway = '' tolerance: 350.0 water_polygon_gen2: source: water_polygon - sql_filter: area>2000000 + sql_filter: area>2000000 AND waterway = '' tolerance: 200.0 water_polygon_gen1: source: water_polygon - sql_filter: area>500000 + sql_filter: area>500000 AND waterway = '' tolerance: 100.0 tables: water_polygon: @@ -26,6 +26,15 @@ tables: - name: name_en key: name:en type: string + - name: natural + key: natural + type: string + - name: landuse + key: landuse + type: string + - name: waterway + key: waterway + type: string filters: exclude_tags: - [ "covered", "yes" ] diff --git a/layers/water/water.sql b/layers/water/water.sql index 7ce355a8..dab2aa95 100644 --- a/layers/water/water.sql +++ b/layers/water/water.sql @@ -1,3 +1,8 @@ +CREATE OR REPLACE FUNCTION water_class(waterway TEXT) RETURNS TEXT AS $$ + SELECT CASE WHEN waterway='' THEN 'lake' ELSE 'river' END; +$$ LANGUAGE SQL IMMUTABLE; + + CREATE OR REPLACE VIEW water_z0 AS ( SELECT geom, 'ocean' AS class FROM ne_110m_ocean UNION ALL @@ -51,19 +56,19 @@ CREATE OR REPLACE VIEW water_z9 AS ( ); CREATE OR REPLACE VIEW water_z11 AS ( - SELECT geometry AS geom, 'lake' AS class FROM osm_water_polygon WHERE area > 40000 + SELECT geometry AS geom, water_class(waterway) AS class FROM osm_water_polygon WHERE area > 40000 ); CREATE OR REPLACE VIEW water_z12 AS ( - SELECT geometry AS geom, 'lake' AS class FROM osm_water_polygon WHERE area > 10000 + SELECT geometry AS geom, water_class(waterway) AS class FROM osm_water_polygon WHERE area > 10000 ); CREATE OR REPLACE VIEW water_z13 AS ( - SELECT geometry AS geom, 'lake' AS class FROM osm_water_polygon WHERE area > 5000 + SELECT geometry AS geom, water_class(waterway) AS class FROM osm_water_polygon WHERE area > 5000 ); CREATE OR REPLACE VIEW water_z14 AS ( - SELECT geometry AS geom, 'lake' AS class FROM osm_water_polygon + SELECT geometry AS geom, water_class(waterway) AS class FROM osm_water_polygon ); CREATE OR REPLACE FUNCTION layer_water (bbox geometry, zoom_level int) diff --git a/layers/water/water.yaml b/layers/water/water.yaml index d4e315f9..69e52b96 100644 --- a/layers/water/water.yaml +++ b/layers/water/water.yaml @@ -1,7 +1,7 @@ layer: id: "water" description: | - Water polygons and linestrings representing oceans, lakes and waterways. + Water polygons and linestrings representing oceans, lakes. buffer_size: 4 datasource: query: (SELECT geom, class FROM layer_water(!bbox!, z(!scale_denominator!))) AS t