Move aboriginal lands boundaries to boundary layer (#1604)
This PR adds indigenous lands to the `boundary` layer by adding new area features for these objects, along with generalization up to z4. It borrows heavily from the technical processing chain of the `park` layer. I added new `class`, `name`, and `name:xx` attributes to the boundary layer, in order to support the new area features. Should we (or someone extending this schema) come up with new objects to place in the boundary layer in the future, `class` would support additional categories.
This commit is contained in:
committed by
GitHub
parent
eb7f6be455
commit
e29827d76c
@@ -1,10 +1,12 @@
|
||||
CREATE OR REPLACE FUNCTION island_rank(area real) RETURNS int AS
|
||||
CREATE OR REPLACE FUNCTION area_rank(area real) RETURNS int AS
|
||||
$$
|
||||
SELECT CASE
|
||||
WHEN area < 10000000 THEN 6
|
||||
WHEN area BETWEEN 1000000 AND 15000000 THEN 5
|
||||
WHEN area BETWEEN 15000000 AND 40000000 THEN 4
|
||||
WHEN area > 40000000 THEN 3
|
||||
WHEN area > 160000000 THEN 2
|
||||
WHEN area > 640000000 THEN 1
|
||||
ELSE 7
|
||||
END;
|
||||
$$ LANGUAGE SQL IMMUTABLE
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 152 KiB |
@@ -109,17 +109,39 @@ FROM (
|
||||
COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de,
|
||||
tags,
|
||||
'island' AS class,
|
||||
island_rank(area) AS "rank",
|
||||
area_rank(area) AS "rank",
|
||||
NULL::int AS capital,
|
||||
NULL::text AS iso_a2
|
||||
FROM osm_island_polygon
|
||||
WHERE geometry && bbox
|
||||
AND ((zoom_level = 8 AND island_rank(area) <= 3)
|
||||
OR (zoom_level = 9 AND island_rank(area) <= 4)
|
||||
AND ((zoom_level = 8 AND area_rank(area) <= 3)
|
||||
OR (zoom_level = 9 AND area_rank(area) <= 4)
|
||||
OR (zoom_level >= 10))
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
-- etldoc: osm_boundary_polygon -> layer_place:z6_11
|
||||
-- etldoc: osm_boundary_polygon -> layer_place:z12_14
|
||||
osm_id * 10 AS osm_id,
|
||||
geometry_point,
|
||||
name,
|
||||
NULL::text AS name_en, -- deprecated
|
||||
NULL::text AS name_de, -- deprecated
|
||||
tags,
|
||||
'aboriginal_lands' AS class,
|
||||
area_rank(area) AS "rank",
|
||||
NULL::int AS capital,
|
||||
NULL::text AS iso_a2
|
||||
FROM osm_boundary_polygon
|
||||
WHERE geometry_point && bbox
|
||||
AND ((zoom_level = 6 AND area_rank(area) <= 1)
|
||||
OR (zoom_level = 7 AND area_rank(area) <= 2)
|
||||
OR (zoom_level = 8 AND area_rank(area) <= 3)
|
||||
OR (zoom_level = 9 AND area_rank(area) <= 4)
|
||||
OR (zoom_level >= 10))
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
-- etldoc: layer_city -> layer_place:z0_3
|
||||
-- etldoc: layer_city -> layer_place:z4_7
|
||||
|
||||
@@ -5,6 +5,9 @@ layer:
|
||||
- ne_10m_admin_1_states_provinces
|
||||
- ne_10m_admin_0_countries
|
||||
- ne_10m_populated_places
|
||||
requires:
|
||||
layers:
|
||||
- boundary
|
||||
description: |
|
||||
The place layer consists out of [countries](http://wiki.openstreetmap.org/wiki/Tag:place%3Dcountry),
|
||||
[states](http://wiki.openstreetmap.org/wiki/Tag:place%3Dstate), [cities](http://wiki.openstreetmap.org/wiki/Key:place)
|
||||
@@ -28,7 +31,9 @@ layer:
|
||||
Distinguish between continents, countries, states, islands and
|
||||
places like settlements or smaller entities.
|
||||
Use **class** to separately style the different places and build
|
||||
a text hierarchy according to their importance.
|
||||
a text hierarchy according to their importance. For places derived
|
||||
from boundaries, the original value of the
|
||||
[`boundary`](http://wiki.openstreetmap.org/wiki/Key:boundary) tag.
|
||||
values:
|
||||
- continent
|
||||
- country
|
||||
@@ -44,6 +49,7 @@ layer:
|
||||
- neighbourhood
|
||||
- isolated_dwelling
|
||||
- island
|
||||
- aboriginal_lands
|
||||
iso_a2:
|
||||
description: |
|
||||
Two-letter country code [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Available only for `class=country`.
|
||||
@@ -75,7 +81,7 @@ schema:
|
||||
- ./types.sql
|
||||
- ./capital.sql
|
||||
- ./city.sql
|
||||
- ./island_rank.sql
|
||||
- ./area_rank.sql
|
||||
- ./update_continent_point.sql
|
||||
- ./update_country_point.sql
|
||||
- ./update_island_polygon.sql
|
||||
|
||||
Reference in New Issue
Block a user