Show water names without centerlines
This commit is contained in:
parent
a433e77818
commit
6bc06a683a
@ -1,16 +1,22 @@
|
|||||||
|
|
||||||
-- etldoc: layer_water_name[shape=record fillcolor=lightpink, style="rounded,filled",
|
-- etldoc: layer_water_name[shape=record fillcolor=lightpink, style="rounded,filled",
|
||||||
-- etldoc: label="layer_water_name | <z9_13> z9_13 | <z14_> z14_" ] ;
|
-- etldoc: label="layer_water_name | <z9_13> z9_13 | <z14_> z14_" ] ;
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION layer_water_name(bbox geometry, zoom_level integer)
|
CREATE OR REPLACE FUNCTION layer_water_name(bbox geometry, zoom_level integer)
|
||||||
RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, class text) AS $$
|
RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, class text) AS $$
|
||||||
-- etldoc: osm_water_lakeline -> layer_water_name:z9_13
|
-- etldoc: osm_water_lakeline -> layer_water_name:z9_13
|
||||||
-- etldoc: osm_water_lakeline -> layer_water_name:z14_
|
-- etldoc: osm_water_lakeline -> layer_water_name:z14
|
||||||
SELECT osm_id, geometry, name, name_en, 'lake'::text AS class
|
SELECT osm_id, geometry, name, name_en, 'lake'::text AS class
|
||||||
FROM osm_water_lakeline
|
FROM osm_water_lakeline
|
||||||
WHERE geometry && bbox
|
WHERE geometry && bbox
|
||||||
AND name <> ''
|
|
||||||
AND ((zoom_level BETWEEN 9 AND 13 AND LineLabel(zoom_level, NULLIF(name, ''), geometry))
|
AND ((zoom_level BETWEEN 9 AND 13 AND LineLabel(zoom_level, NULLIF(name, ''), geometry))
|
||||||
OR (zoom_level >= 14))
|
OR (zoom_level >= 14))
|
||||||
ORDER BY ST_Length(geometry) DESC;
|
-- etldoc: osm_water_point -> layer_water_name:z9_13
|
||||||
|
UNION ALL
|
||||||
|
SELECT osm_id, geometry, name, name_en, 'lake'::text AS class
|
||||||
|
FROM osm_water_point
|
||||||
|
WHERE geometry && bbox AND (
|
||||||
|
(zoom_level BETWEEN 9 AND 13 AND area > 70000*2^(20-zoom_level))
|
||||||
|
OR (zoom_level >= 14)
|
||||||
|
);
|
||||||
$$ LANGUAGE SQL IMMUTABLE;
|
$$ LANGUAGE SQL IMMUTABLE;
|
||||||
|
|||||||
@ -1,11 +1,12 @@
|
|||||||
|
|
||||||
-- etldoc: osm_water_polygon -> osm_water_lakeline
|
-- etldoc: osm_water_polygon -> osm_water_lakeline
|
||||||
|
-- etldoc: custom_lakeline -> osm_water_lakeline
|
||||||
CREATE TABLE IF NOT EXISTS osm_water_lakeline AS (
|
CREATE TABLE IF NOT EXISTS osm_water_lakeline AS (
|
||||||
SELECT wp.osm_id,
|
SELECT wp.osm_id,
|
||||||
ll.wkb_geometry AS geometry,
|
ll.wkb_geometry AS geometry,
|
||||||
name, name_en
|
name, name_en, ST_Area(wp.geometry) AS area
|
||||||
FROM osm_water_polygon AS wp
|
FROM osm_water_polygon AS wp
|
||||||
INNER JOIN lake_centerline ll ON wp.osm_id = ll.osm_id
|
INNER JOIN lake_centerline ll ON wp.osm_id = ll.osm_id
|
||||||
|
WHERE wp.name <> ''
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS osm_water_lakeline_geometry_idx ON osm_water_lakeline USING gist(geometry);
|
CREATE INDEX IF NOT EXISTS osm_water_lakeline_geometry_idx ON osm_water_lakeline USING gist(geometry);
|
||||||
@ -16,7 +16,8 @@ layer:
|
|||||||
srid: 900913
|
srid: 900913
|
||||||
query: (SELECT geometry, name, name_en, class FROM layer_water_name(!bbox!, z(!scale_denominator!))) AS t
|
query: (SELECT geometry, name, name_en, class FROM layer_water_name(!bbox!, z(!scale_denominator!))) AS t
|
||||||
schema:
|
schema:
|
||||||
- ./merge_lakelines.sql
|
- ./water_lakeline.sql
|
||||||
|
- ./water_point.sql
|
||||||
- ./layer.sql
|
- ./layer.sql
|
||||||
datasources:
|
datasources:
|
||||||
- type: imposm3
|
- type: imposm3
|
||||||
|
|||||||
11
layers/water_name/water_point.sql
Normal file
11
layers/water_name/water_point.sql
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
-- etldoc: osm_water_polygon -> osm_water_lakeline
|
||||||
|
CREATE TABLE IF NOT EXISTS osm_water_point AS (
|
||||||
|
SELECT
|
||||||
|
wp.osm_id, topoint(wp.geometry) AS geometry,
|
||||||
|
wp.name, wp.name_en, ST_Area(wp.geometry) AS area
|
||||||
|
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 <> ''
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX IF NOT EXISTS osm_water_point_geometry_idx ON osm_water_point USING gist (geometry);
|
||||||
Loading…
x
Reference in New Issue
Block a user