Add support for cemetery tagged as grave_yard (#1175)

Fixes #1057

This PR adds `amenity=grave_yard` to the `landuse` layer.  A unification function was implemented which encodes all `class=grave_yard` as `class=cemetery` in the tiles, which adds these features for existing users of `class=cemetery` with no change.  The unification function can serve as a basis for any other tags that we might want to unify in the `landuse` layer.

Tile rendering for an `amenity=grave_yard`.  ([Location](https://www.openstreetmap.org/way/857383420))
![image](https://user-images.githubusercontent.com/3254090/129456504-187d307a-2a20-4b13-af0a-a2850503bb4f.png)

Tile rendering for a `landuse=cemetery`.  ([Location](https://www.openstreetmap.org/way/385779531))
![image](https://user-images.githubusercontent.com/3254090/129456654-494c0eb4-9785-467c-b1a0-44abb7f9d5e9.png)
pull/1167/head^2
Brian Sperlongano 2021-08-18 03:09:51 -04:00 zatwierdzone przez GitHub
rodzic 45d825e212
commit d186856ac5
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
5 zmienionych plików z 15 dodań i 2 usunięć

Wyświetl plik

@ -0,0 +1,10 @@
-- Unify class names that represent the same type of feature
CREATE OR REPLACE FUNCTION landuse_unify(class text) RETURNS text LANGUAGE plpgsql
AS
$$
BEGIN
RETURN CASE
WHEN class='grave_yard' THEN 'cemetery'
ELSE class END;
END;
$$;

Wyświetl plik

@ -49,14 +49,15 @@ AS
$$
SELECT osm_id,
geometry,
COALESCE(
landuse_unify(
COALESCE(
NULLIF(landuse, ''),
NULLIF(amenity, ''),
NULLIF(leisure, ''),
NULLIF(tourism, ''),
NULLIF(place, ''),
NULLIF(waterway, '')
) AS class
)) AS class
FROM (
-- etldoc: ne_50m_urban_areas_gen_z4 -> layer_landuse:z4
SELECT osm_id,

Wyświetl plik

@ -45,6 +45,7 @@ layer:
geometry_field: geometry
query: (SELECT geometry, class FROM layer_landuse(!bbox!, z(!scale_denominator!))) AS t
schema:
- ./class.sql
- ./landuse.sql
datasources:
- type: imposm3

Wyświetl plik

@ -88,6 +88,7 @@ tables:
- college
- library
- hospital
- grave_yard
leisure:
- stadium
- pitch

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 69 KiB

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 71 KiB