kopia lustrzana https://github.com/openmaptiles/openmaptiles
Introduce landuse classes
rodzic
f65fded9f4
commit
bdea298990
|
@ -1,46 +1,57 @@
|
|||
CREATE OR REPLACE FUNCTION landuse_class(landuse TEXT, amenity TEXT) RETURNS TEXT AS $$
|
||||
SELECT CASE
|
||||
WHEN amenity IN ('school', 'university', 'kindergarten', 'college', 'library') THEN 'school'
|
||||
WHEN landuse IN('hospital', 'railway', 'cemetery', 'military', 'residential') THEN landuse
|
||||
ELSE NULL
|
||||
END;
|
||||
$$ LANGUAGE SQL IMMUTABLE;
|
||||
|
||||
CREATE OR REPLACE VIEW landuse_z4 AS (
|
||||
SELECT NULL::bigint AS osm_id, geom AS geometry, 'residential' AS landuse, scalerank
|
||||
SELECT NULL::bigint AS osm_id, geom AS geometry, 'residential' AS landuse, NULL::text AS amenity, 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
|
||||
SELECT NULL::bigint AS osm_id, geom AS geometry, 'residential' AS landuse, NULL::text AS amenity, 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
|
||||
SELECT NULL::bigint AS osm_id, geom AS geometry, 'residential' AS landuse, NULL::text AS amenity, 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
|
||||
SELECT osm_id, geometry, landuse, amenity, 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
|
||||
SELECT osm_id, geometry, landuse, amenity, 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
|
||||
SELECT osm_id, geometry, landuse, amenity, 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
|
||||
SELECT osm_id, geometry, landuse, amenity, 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
|
||||
SELECT osm_id, geometry, landuse, amenity, 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 (
|
||||
RETURNS TABLE(osm_id bigint, geometry geometry, class text, subclass text) AS $$
|
||||
SELECT osm_id, geometry,
|
||||
landuse_class(landuse, amenity) AS class,
|
||||
COALESCE(NULLIF(landuse, ''), NULLIF(amenity, '')) AS subclass
|
||||
FROM (
|
||||
SELECT * FROM landuse_z4
|
||||
WHERE zoom_level = 4
|
||||
UNION ALL
|
||||
|
|
|
@ -3,6 +3,7 @@ layer:
|
|||
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:
|
||||
geometry_field: geometry
|
||||
query: (SELECT * FROM layer_landuse(!bbox!, z(!scale_denominator!))) AS t
|
||||
schema:
|
||||
- ./landuse.sql
|
||||
|
|
|
@ -16,14 +16,22 @@ tables:
|
|||
- name: geometry
|
||||
type: validated_geometry
|
||||
- name: landuse
|
||||
type: mapping_value
|
||||
key: landuse
|
||||
type: string
|
||||
- name: amenity
|
||||
key: amenity
|
||||
type: string
|
||||
- name: area
|
||||
type: pseudoarea
|
||||
mapping:
|
||||
amenity:
|
||||
- school
|
||||
- university
|
||||
- kindergarten
|
||||
- college
|
||||
- library
|
||||
- hospital
|
||||
landuse:
|
||||
- railway
|
||||
- cemetry
|
||||
- cemetery
|
||||
- military
|
||||
|
|
Ładowanie…
Reference in New Issue