@@ -3,7 +3,7 @@
|
||||
-- etldoc: label="layer_water_name | <z0_8> z0_8 | <z9_13> z9_13 | <z14_> z14+" ] ;
|
||||
|
||||
CREATE OR REPLACE FUNCTION layer_water_name(bbox geometry, zoom_level integer)
|
||||
RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de text, tags hstore, class text) AS $$
|
||||
RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de text, tags hstore, class text, intermittent int) AS $$
|
||||
-- etldoc: osm_water_lakeline -> layer_water_name:z9_13
|
||||
-- etldoc: osm_water_lakeline -> layer_water_name:z14_
|
||||
SELECT
|
||||
@@ -14,7 +14,8 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de
|
||||
COALESCE(NULLIF(name_en, ''), name) AS name_en,
|
||||
COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de,
|
||||
tags,
|
||||
'lake'::text AS class
|
||||
'lake'::text AS class,
|
||||
is_intermittent::int AS intermittent
|
||||
FROM osm_water_lakeline
|
||||
WHERE geometry && bbox
|
||||
AND ((zoom_level BETWEEN 9 AND 13 AND LineLabel(zoom_level, NULLIF(name, ''), geometry))
|
||||
@@ -30,7 +31,8 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de
|
||||
COALESCE(NULLIF(name_en, ''), name) AS name_en,
|
||||
COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de,
|
||||
tags,
|
||||
'lake'::text AS class
|
||||
'lake'::text AS class,
|
||||
is_intermittent::int AS intermittent
|
||||
FROM osm_water_point
|
||||
WHERE geometry && bbox AND (
|
||||
(zoom_level BETWEEN 9 AND 13 AND area > 70000*2^(20-zoom_level))
|
||||
@@ -44,7 +46,8 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de
|
||||
COALESCE(NULLIF(name_en, ''), name) AS name_en,
|
||||
COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de,
|
||||
tags,
|
||||
place::text AS class
|
||||
place::text AS class,
|
||||
is_intermittent::int AS intermittent
|
||||
FROM osm_marine_point
|
||||
WHERE geometry && bbox AND (
|
||||
place = 'ocean'
|
||||
|
||||
@@ -24,6 +24,9 @@ tables:
|
||||
- name: rank
|
||||
key: rank
|
||||
type: integer
|
||||
- name: is_intermittent
|
||||
key: intermittent
|
||||
type: bool
|
||||
filters:
|
||||
require:
|
||||
name: ["__any__"]
|
||||
|
||||
@@ -12,7 +12,7 @@ BEGIN
|
||||
-- etldoc: osm_marine_point -> osm_marine_point
|
||||
|
||||
WITH important_marine_point AS (
|
||||
SELECT osm.geometry, osm.osm_id, osm.name, osm.name_en, ne.scalerank
|
||||
SELECT osm.geometry, osm.osm_id, osm.name, osm.name_en, ne.scalerank, osm.is_intermittent
|
||||
FROM ne_10m_geography_marine_polys AS ne, osm_marine_point AS osm
|
||||
WHERE trim(regexp_replace(ne.name, '\\s+', ' ', 'g')) ILIKE osm.name
|
||||
OR trim(regexp_replace(ne.name, '\\s+', ' ', 'g')) ILIKE osm.tags->'name:en'
|
||||
|
||||
@@ -10,7 +10,8 @@ CREATE MATERIALIZED VIEW osm_water_lakeline AS (
|
||||
ll.wkb_geometry AS geometry,
|
||||
name, name_en, name_de,
|
||||
update_tags(tags, ll.wkb_geometry) AS tags,
|
||||
ST_Area(wp.geometry) AS area
|
||||
ST_Area(wp.geometry) AS area,
|
||||
is_intermittent
|
||||
FROM osm_water_polygon AS wp
|
||||
INNER JOIN lake_centerline ll ON wp.osm_id = ll.osm_id
|
||||
WHERE wp.name <> '' AND ST_IsValid(wp.geometry)
|
||||
|
||||
@@ -10,7 +10,8 @@ CREATE MATERIALIZED VIEW osm_water_point AS (
|
||||
wp.osm_id, ST_PointOnSurface(wp.geometry) AS geometry,
|
||||
wp.name, wp.name_en, wp.name_de,
|
||||
update_tags(wp.tags, ST_PointOnSurface(wp.geometry)) AS tags,
|
||||
ST_Area(wp.geometry) AS area
|
||||
ST_Area(wp.geometry) AS area,
|
||||
wp.is_intermittent
|
||||
FROM osm_water_polygon AS wp
|
||||
LEFT JOIN lake_centerline ll ON wp.osm_id = ll.osm_id
|
||||
WHERE ll.osm_id IS NULL AND wp.name <> ''
|
||||
|
||||
@@ -13,6 +13,10 @@ layer:
|
||||
At the moment only `lake` since no ocean parts are labelled. *Reserved for future use*.
|
||||
values:
|
||||
- lake
|
||||
intermittent:
|
||||
description: |
|
||||
Mark with `1` if it is an [intermittent](http://wiki.openstreetmap.org/wiki/Key:intermittent) lake.
|
||||
values: [0, 1]
|
||||
buffer_size: 256
|
||||
srs: +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over
|
||||
datasource:
|
||||
@@ -20,7 +24,7 @@ layer:
|
||||
key_field: osm_id
|
||||
key_field_as_attribute: no
|
||||
srid: 900913
|
||||
query: (SELECT osm_id, geometry, name, name_en, name_de, {name_languages}, class FROM layer_water_name(!bbox!, z(!scale_denominator!))) AS t
|
||||
query: (SELECT osm_id, geometry, name, name_en, name_de, {name_languages}, class, intermittent FROM layer_water_name(!bbox!, z(!scale_denominator!))) AS t
|
||||
schema:
|
||||
- ./update_marine_point.sql
|
||||
- ./update_water_lakeline.sql
|
||||
|
||||
Reference in New Issue
Block a user