diff --git a/layers/ice/ice.sql b/layers/ice/ice.sql deleted file mode 100644 index de72897..0000000 --- a/layers/ice/ice.sql +++ /dev/null @@ -1,30 +0,0 @@ -CREATE OR REPLACE VIEW ice_z0 AS ( - SELECT geom, 'glacier' AS type FROM ne_110m_glaciated_areas -); - -CREATE OR REPLACE VIEW ice_z2 AS ( - SELECT geom, 'glacier' AS type FROM ne_50m_glaciated_areas - UNION ALL - SELECT geom, 'ice_shelf' AS type FROM ne_50m_antarctic_ice_shelves_polys -); - -CREATE OR REPLACE VIEW ice_z5 AS ( - SELECT geom, 'glacier' AS type FROM ne_10m_glaciated_areas - UNION ALL - SELECT geom, 'ice_shelf' AS type FROM ne_10m_antarctic_ice_shelves_polys -); - -CREATE OR REPLACE FUNCTION layer_ice(bbox geometry, zoom_level int) -RETURNS TABLE(geom geometry, class text) AS $$ - SELECT geom, type::text AS class FROM ( - SELECT geom, type FROM ice_z0 - WHERE zoom_level BETWEEN 0 AND 1 - UNION ALL - SELECT * FROM ice_z2 - WHERE zoom_level BETWEEN 2 AND 4 - UNION ALL - SELECT * FROM ice_z5 - WHERE zoom_level BETWEEN 5 AND 8 - ) AS zoom_levels - WHERE geom && bbox; -$$ LANGUAGE SQL IMMUTABLE; diff --git a/layers/ice/ice.yaml b/layers/ice/ice.yaml deleted file mode 100644 index 1065999..0000000 --- a/layers/ice/ice.yaml +++ /dev/null @@ -1,8 +0,0 @@ -layer: - id: "ice" - description: ice - buffer_size: 4 - datasource: - query: (SELECT * FROM layer_ice(!bbox!, z(!scale_denominator!))) AS t -schema: - - ./ice.sql diff --git a/layers/landcover/landcover.sql b/layers/landcover/landcover.sql index 68733c1..02055ef 100644 --- a/layers/landcover/landcover.sql +++ b/layers/landcover/landcover.sql @@ -1,3 +1,20 @@ +CREATE OR REPLACE VIEW landcover_z0 AS ( + SELECT NULL::int AS osm_id, geom AS geometry, 'glacier' AS landuse, NULL AS "natural", NULL AS wetland FROM ne_110m_glaciated_areas +); + +CREATE OR REPLACE VIEW landcover_z2 AS ( + SELECT NULL::int AS osm_id, geom AS geometry, 'glacier' AS landuse, NULL AS "natural", NULL AS wetland FROM ne_50m_glaciated_areas + UNION ALL + SELECT NULL::int AS osm_id, geom AS geometry, 'ice_shelf' AS landuse, NULL AS "natural", NULL AS wetland FROM ne_50m_antarctic_ice_shelves_polys +); + +CREATE OR REPLACE VIEW landcover_z5 AS ( + SELECT NULL::int AS osm_id, geom AS geometry, 'glacier' AS landuse, NULL AS "natural", NULL AS wetland FROM ne_10m_glaciated_areas + UNION ALL + SELECT NULL::int AS osm_id, geom AS geometry, 'ice_shelf' AS landuse, NULL AS "natural", NULL AS wetland FROM ne_10m_antarctic_ice_shelves_polys +); + + CREATE OR REPLACE VIEW landcover_z8 AS ( SELECT osm_id, geometry, landuse, "natural", wetland FROM osm_landcover_polygon WHERE ST_Area(geometry) > 15000000 @@ -32,6 +49,15 @@ CREATE OR REPLACE VIEW landcover_z14 AS ( CREATE OR REPLACE FUNCTION layer_landcover(bbox geometry, zoom_level int) RETURNS TABLE(osm_id bigint, geom geometry, landuse text, "natural" text, wetland text) AS $$ SELECT osm_id, geometry, landuse, "natural", wetland FROM ( + SELECT * FROM landcover_z0 + WHERE zoom_level BETWEEN 0 AND 1 AND geometry && bbox + UNION ALL + SELECT * FROM landcover_z2 + WHERE zoom_level BETWEEN 2 AND 4 AND geometry && bbox + UNION ALL + SELECT * FROM landcover_z5 + WHERE zoom_level BETWEEN 5 AND 7 AND geometry && bbox + UNION ALL SELECT osm_id, ST_Simplify(geometry, 300) AS geometry, landuse, "natural", wetland FROM landcover_z8 WHERE zoom_level = 8 AND geometry && bbox UNION ALL diff --git a/openmaptiles.yaml b/openmaptiles.yaml index 46a06da..6367fa7 100644 --- a/openmaptiles.yaml +++ b/openmaptiles.yaml @@ -2,7 +2,6 @@ tileset: layers: - layers/boundary/boundary.yaml - layers/highway/highway.yaml - - layers/ice/ice.yaml - layers/building/building.yaml - layers/state/state.yaml - layers/country/country.yaml