kopia lustrzana https://github.com/openmaptiles/openmaptiles
Merge pull request #75 from openmaptiles/feature/lake-point-labels
Show water names without centerlinespull/32/head
commit
3b2807d9d1
|
@ -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_" ] ;
|
||||
|
||||
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 $$
|
||||
-- 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
|
||||
FROM osm_water_lakeline
|
||||
WHERE geometry && bbox
|
||||
AND name <> ''
|
||||
AND ((zoom_level BETWEEN 9 AND 13 AND LineLabel(zoom_level, NULLIF(name, ''), geometry))
|
||||
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;
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
|
||||
-- etldoc: osm_water_polygon -> osm_water_lakeline
|
||||
-- etldoc: custom_lakeline -> osm_water_lakeline
|
||||
CREATE TABLE IF NOT EXISTS osm_water_lakeline AS (
|
||||
SELECT wp.osm_id,
|
||||
ll.wkb_geometry AS geometry,
|
||||
name, name_en
|
||||
name, name_en, ST_Area(wp.geometry) AS area
|
||||
FROM osm_water_polygon AS wp
|
||||
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);
|
|
@ -16,7 +16,8 @@ layer:
|
|||
srid: 900913
|
||||
query: (SELECT geometry, name, name_en, class FROM layer_water_name(!bbox!, z(!scale_denominator!))) AS t
|
||||
schema:
|
||||
- ./merge_lakelines.sql
|
||||
- ./water_lakeline.sql
|
||||
- ./water_point.sql
|
||||
- ./layer.sql
|
||||
datasources:
|
||||
- type: imposm3
|
||||
|
|
|
@ -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);
|
Ładowanie…
Reference in New Issue