diff --git a/layers/transportation_name/etl_diagram.png b/layers/transportation_name/etl_diagram.png index e85f277a3..afefcedc6 100644 Binary files a/layers/transportation_name/etl_diagram.png and b/layers/transportation_name/etl_diagram.png differ diff --git a/layers/transportation_name/transportation_name.sql b/layers/transportation_name/transportation_name.sql index 2800df075..670f85e66 100644 --- a/layers/transportation_name/transportation_name.sql +++ b/layers/transportation_name/transportation_name.sql @@ -110,7 +110,7 @@ FROM ( FROM osm_transportation_name_linestring WHERE zoom_level = 12 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) UNION ALL @@ -133,7 +133,7 @@ FROM ( FROM osm_transportation_name_linestring WHERE zoom_level = 13 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 -- etldoc: osm_transportation_name_linestring -> layer_transportation_name:z14_ diff --git a/layers/transportation_name/update_transportation_name.sql b/layers/transportation_name/update_transportation_name.sql index 4c6ea1f08..ccfe4152b 100644 --- a/layers/transportation_name/update_transportation_name.sql +++ b/layers/transportation_name/update_transportation_name.sql @@ -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_shipway_linestring -> osm_transportation_name_linestring CREATE TABLE IF NOT EXISTS osm_transportation_name_linestring AS SELECT (ST_Dump(geometry)).geom AS geometry, name, @@ -105,6 +106,31 @@ FROM ( WHERE name <> '' OR ref <> '' 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 + 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 ; CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_name_ref_idx ON osm_transportation_name_linestring (coalesce(name, ''), coalesce(ref, ''));