Integrate urban into landuse

pull/24/head
lukasmartinelli 2016-10-24 12:02:33 +02:00
rodzic 767c8a83cc
commit 79d04f3792
6 zmienionych plików z 105 dodań i 39 usunięć

Wyświetl plik

@ -0,0 +1,64 @@
CREATE OR REPLACE VIEW landuse_z4 AS (
SELECT NULL::bigint AS osm_id, geom AS geometry, 'residential' AS landuse, scalerank
FROM ne_50m_urban_areas
WHERE scalerank <= 2
);
CREATE OR REPLACE VIEW landuse_z5 AS (
SELECT NULL::bigint AS osm_id, geom AS geometry, 'residential' AS landuse, scalerank
FROM ne_50m_urban_areas
);
CREATE OR REPLACE VIEW landuse_z6 AS (
SELECT NULL::bigint AS osm_id, geom AS geometry, 'residential' AS landuse, scalerank
FROM ne_10m_urban_areas
);
CREATE OR REPLACE VIEW landuse_z10 AS (
SELECT osm_id, geometry, landuse, NULL::int as scalerank FROM osm_landuse_polygon_gen2
WHERE ST_Area(geometry) > 1200000
);
CREATE OR REPLACE VIEW landuse_z11 AS (
SELECT osm_id, geometry, landuse, NULL::int as scalerank FROM osm_landuse_polygon_gen2
WHERE ST_Area(geometry) > 480000
);
CREATE OR REPLACE VIEW landuse_z12 AS (
SELECT osm_id, geometry, landuse, NULL::int as scalerank FROM osm_landuse_polygon_gen1
WHERE ST_Area(geometry) > 240000
);
CREATE OR REPLACE VIEW landuse_z13 AS (
SELECT osm_id, geometry, landuse, NULL::int as scalerank FROM osm_landuse_polygon
WHERE ST_Area(geometry) > 60000
);
CREATE OR REPLACE VIEW landuse_z14 AS (
SELECT osm_id, geometry, landuse, NULL::int as scalerank FROM osm_landuse_polygon
);
CREATE OR REPLACE FUNCTION layer_landuse(bbox geometry, zoom_level int)
RETURNS TABLE(osm_id bigint, geometry geometry, landuse text) AS $$
SELECT osm_id, geometry, landuse FROM (
SELECT * FROM landuse_z4
WHERE zoom_level = 4
UNION ALL
SELECT * FROM landuse_z5
WHERE zoom_level = 5
UNION ALL
SELECT * FROM landuse_z6
WHERE zoom_level BETWEEN 6 AND 10 AND scalerank-1 <= zoom_level
UNION ALL
SELECT * FROM landuse_z10 WHERE zoom_level = 10
UNION ALL
SELECT * FROM landuse_z11 WHERE zoom_level = 11
UNION ALL
SELECT * FROM landuse_z12 WHERE zoom_level = 12
UNION ALL
SELECT * FROM landuse_z13 WHERE zoom_level = 13
UNION ALL
SELECT * FROM landuse_z14 WHERE zoom_level >= 14
) AS zoom_levels;
$$ LANGUAGE SQL IMMUTABLE;

Wyświetl plik

@ -0,0 +1,11 @@
layer:
id: "landuse"
description: Landcover is used to describe the physical material at the surface of the earth. Land covers include grass, asphalt, trees, bare ground etc. Tagging of landcover is often only implied by other tags at present, for example a park may be assumed to be covered in grass, but in some places this may in fact be trees or sand or some other cover. The following keys imply or specifically indicate landcover properties.
buffer_size: 4
datasource:
query: (SELECT * FROM layer_landuse(!bbox!, z(!scale_denominator!))) AS t
schema:
- ./landuse.sql
datasources:
- type: imposm3
mapping_file: ./mapping.yaml

Wyświetl plik

@ -0,0 +1,29 @@
generalized_tables:
landuse_polygon_gen2:
source: landuse_polygon_gen1
sql_filter: area>500000.000000
tolerance: 120.0
landuse_polygon_gen1:
source: landuse_polygon
sql_filter: area>50000.000000
tolerance: 50.0
tables:
landuse_polygon:
type: polygon
fields:
- name: osm_id
type: id
- name: geometry
type: validated_geometry
- name: landuse
type: mapping_value
- name: area
type: pseudoarea
mapping:
amenity:
- school
- hospital
landuse:
- railway
- cemetry
- military

Wyświetl plik

@ -1,30 +0,0 @@
CREATE OR REPLACE VIEW urban_z4 AS (
SELECT geom, scalerank
FROM ne_50m_urban_areas
WHERE scalerank <= 2
);
CREATE OR REPLACE VIEW urban_z5 AS (
SELECT geom, scalerank
FROM ne_50m_urban_areas
);
CREATE OR REPLACE VIEW urban_z6 AS (
SELECT geom, scalerank
FROM ne_10m_urban_areas
);
CREATE OR REPLACE FUNCTION layer_urban(bbox geometry, zoom_level int)
RETURNS TABLE(geom geometry, scalerank int) AS $$
SELECT geom, scalerank FROM (
SELECT * FROM urban_z4
WHERE zoom_level = 4
UNION ALL
SELECT * FROM urban_z5
WHERE zoom_level = 5
UNION ALL
SELECT * FROM urban_z6
WHERE zoom_level BETWEEN 6 AND 10 AND scalerank-1 <= zoom_level
) AS zoom_levels
WHERE geom && bbox;
$$ LANGUAGE SQL IMMUTABLE;

Wyświetl plik

@ -1,8 +0,0 @@
layer:
id: "urban"
description: urban
buffer_size: 4
datasource:
query: (SELECT * FROM layer_urban(!bbox!, z(!scale_denominator!))) AS t
schema:
- ./urban.sql

Wyświetl plik

@ -7,10 +7,10 @@ tileset:
- layers/country/country.yaml
- layers/place/place.yaml
#- layers/rail/rail.yaml
- layers/urban/urban.yaml
- layers/water/water.yaml
- layers/waterway/waterway.yaml
- layers/landcover/landcover.yaml
- layers/landuse/landuse.yaml
name: OpenMapTiles v1.0
description: "A tileset showcasing all layers in OpenMapTiles. http://openmaptiles.org"
attribution: "<a href=\"http://www.openstreetmap.org/about/\" target=\"_blank\">&copy; OpenStreetMap contributors</a>"