Implement shipway labels (#1179)
Fixes #403 This PR adds labels to shipway linestrings in the `transportation_name` level, up through zoom 12. 
This commit is contained in:
parent
6ef138635d
commit
a93b708327
Binary file not shown.
|
Before Width: | Height: | Size: 258 KiB After Width: | Height: | Size: 287 KiB |
@ -110,7 +110,7 @@ FROM (
|
|||||||
FROM osm_transportation_name_linestring
|
FROM osm_transportation_name_linestring
|
||||||
WHERE zoom_level = 12
|
WHERE zoom_level = 12
|
||||||
AND LineLabel(zoom_level, COALESCE(name, ref), geometry)
|
AND LineLabel(zoom_level, COALESCE(name, ref), geometry)
|
||||||
AND highway_class(highway, '', subclass) NOT IN ('minor', 'track', 'path')
|
AND (highway_class(highway, '', subclass) NOT IN ('minor', 'track', 'path') OR highway='shipway')
|
||||||
AND NOT highway_is_link(highway)
|
AND NOT highway_is_link(highway)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
|
|
||||||
@ -133,7 +133,7 @@ FROM (
|
|||||||
FROM osm_transportation_name_linestring
|
FROM osm_transportation_name_linestring
|
||||||
WHERE zoom_level = 13
|
WHERE zoom_level = 13
|
||||||
AND LineLabel(zoom_level, COALESCE(name, ref), geometry)
|
AND LineLabel(zoom_level, COALESCE(name, ref), geometry)
|
||||||
AND highway_class(highway, '', subclass) NOT IN ('track', 'path')
|
AND (highway_class(highway, '', subclass) NOT IN ('track', 'path') OR highway='shipway')
|
||||||
UNION ALL
|
UNION ALL
|
||||||
|
|
||||||
-- etldoc: osm_transportation_name_linestring -> layer_transportation_name:z14_
|
-- etldoc: osm_transportation_name_linestring -> layer_transportation_name:z14_
|
||||||
|
|||||||
@ -66,6 +66,7 @@ CREATE INDEX IF NOT EXISTS osm_transportation_name_network_geometry_idx ON osm_t
|
|||||||
|
|
||||||
|
|
||||||
-- etldoc: osm_transportation_name_network -> osm_transportation_name_linestring
|
-- etldoc: osm_transportation_name_network -> osm_transportation_name_linestring
|
||||||
|
-- etldoc: osm_shipway_linestring -> osm_transportation_name_linestring
|
||||||
CREATE TABLE IF NOT EXISTS osm_transportation_name_linestring AS
|
CREATE TABLE IF NOT EXISTS osm_transportation_name_linestring AS
|
||||||
SELECT (ST_Dump(geometry)).geom AS geometry,
|
SELECT (ST_Dump(geometry)).geom AS geometry,
|
||||||
name,
|
name,
|
||||||
@ -105,6 +106,31 @@ FROM (
|
|||||||
WHERE name <> '' OR ref <> ''
|
WHERE name <> '' OR ref <> ''
|
||||||
GROUP BY name, name_en, name_de, tags, ref, highway, subclass, "level", layer, indoor, network_type,
|
GROUP BY name, name_en, name_de, tags, ref, highway, subclass, "level", layer, indoor, network_type,
|
||||||
route_1, route_2, route_3, route_4, route_5, route_6
|
route_1, route_2, route_3, route_4, route_5, route_6
|
||||||
|
UNION ALL
|
||||||
|
|
||||||
|
SELECT ST_LineMerge(ST_Collect(geometry)) AS geometry,
|
||||||
|
CASE WHEN length(name) > 15 THEN osml10n_street_abbrev_all(name) ELSE NULLIF(name, '') END AS "name",
|
||||||
|
CASE WHEN length(name_en) > 15 THEN osml10n_street_abbrev_en(name_en) ELSE NULLIF(name_en, '') END AS "name_en",
|
||||||
|
CASE WHEN length(name_de) > 15 THEN osml10n_street_abbrev_de(name_de) ELSE NULLIF(name_de, '') END AS "name_de",
|
||||||
|
slice_language_tags(tags) || hstore(ARRAY ['name', name, 'name:en', name_en, 'name:de', name_de]) AS tags,
|
||||||
|
NULL AS ref,
|
||||||
|
'shipway' AS highway,
|
||||||
|
shipway AS subclass,
|
||||||
|
NULL AS brunnel,
|
||||||
|
NULL::int AS level,
|
||||||
|
layer,
|
||||||
|
NULL AS indoor,
|
||||||
|
NULL AS network_type,
|
||||||
|
NULL AS route_1,
|
||||||
|
NULL AS route_2,
|
||||||
|
NULL AS route_3,
|
||||||
|
NULL AS route_4,
|
||||||
|
NULL AS route_5,
|
||||||
|
NULL AS route_6,
|
||||||
|
min(z_order) AS z_order
|
||||||
|
FROM osm_shipway_linestring
|
||||||
|
WHERE name <> ''
|
||||||
|
GROUP BY name, name_en, name_de, tags, subclass, "level", layer
|
||||||
) AS highway_union
|
) AS highway_union
|
||||||
;
|
;
|
||||||
CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_name_ref_idx ON osm_transportation_name_linestring (coalesce(name, ''), coalesce(ref, ''));
|
CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_name_ref_idx ON osm_transportation_name_linestring (coalesce(name, ''), coalesce(ref, ''));
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user