Filter out large rivers

This commit is contained in:
lukasmartinelli 2016-10-28 16:53:29 +02:00
parent 5c58cb70e0
commit ea2530788f
3 changed files with 22 additions and 8 deletions

View File

@ -1,15 +1,15 @@
generalized_tables: generalized_tables:
water_polygon_gen3: water_polygon_gen3:
source: water_polygon source: water_polygon
sql_filter: area>15000000.0 sql_filter: area>15000000.0 AND waterway = ''
tolerance: 350.0 tolerance: 350.0
water_polygon_gen2: water_polygon_gen2:
source: water_polygon source: water_polygon
sql_filter: area>2000000 sql_filter: area>2000000 AND waterway = ''
tolerance: 200.0 tolerance: 200.0
water_polygon_gen1: water_polygon_gen1:
source: water_polygon source: water_polygon
sql_filter: area>500000 sql_filter: area>500000 AND waterway = ''
tolerance: 100.0 tolerance: 100.0
tables: tables:
water_polygon: water_polygon:
@ -26,6 +26,15 @@ tables:
- name: name_en - name: name_en
key: name:en key: name:en
type: string type: string
- name: natural
key: natural
type: string
- name: landuse
key: landuse
type: string
- name: waterway
key: waterway
type: string
filters: filters:
exclude_tags: exclude_tags:
- [ "covered", "yes" ] - [ "covered", "yes" ]

View File

@ -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 ( CREATE OR REPLACE VIEW water_z0 AS (
SELECT geom, 'ocean' AS class FROM ne_110m_ocean SELECT geom, 'ocean' AS class FROM ne_110m_ocean
UNION ALL UNION ALL
@ -51,19 +56,19 @@ CREATE OR REPLACE VIEW water_z9 AS (
); );
CREATE OR REPLACE VIEW water_z11 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 ( 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 ( 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 ( 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) CREATE OR REPLACE FUNCTION layer_water (bbox geometry, zoom_level int)

View File

@ -1,7 +1,7 @@
layer: layer:
id: "water" id: "water"
description: | description: |
Water polygons and linestrings representing oceans, lakes and waterways. Water polygons and linestrings representing oceans, lakes.
buffer_size: 4 buffer_size: 4
datasource: datasource:
query: (SELECT geom, class FROM layer_water(!bbox!, z(!scale_denominator!))) AS t query: (SELECT geom, class FROM layer_water(!bbox!, z(!scale_denominator!))) AS t