Only group transportation name based on language tags

This commit is contained in:
Joakim Kronqvist 2018-08-08 10:02:28 +03:00 committed by Jiri Kozel
parent 08df7abf27
commit 7ec9e49a44
2 changed files with 18 additions and 10 deletions

View File

@ -151,6 +151,8 @@ tables:
- *name - *name
- *name_en - *name_en
- *name_de - *name_de
- name: tags
type: hstore_tags
- *short_name - *short_name
- *tunnel - *tunnel
- *bridge - *bridge
@ -210,6 +212,8 @@ tables:
- *name - *name
- *name_en - *name_en
- *name_de - *name_de
- name: tags
type: hstore_tags
- *short_name - *short_name
- *tunnel - *tunnel
- *bridge - *bridge
@ -246,6 +250,8 @@ tables:
- *name - *name
- *name_en - *name_en
- *name_de - *name_de
- name: tags
type: hstore_tags
- *short_name - *short_name
- *tunnel - *tunnel
- *bridge - *bridge
@ -275,6 +281,8 @@ tables:
- *name - *name
- *name_en - *name_en
- *name_de - *name_de
- name: tags
type: hstore_tags
- *short_name - *short_name
- *tunnel - *tunnel
- *bridge - *bridge

View File

@ -16,6 +16,7 @@ CREATE MATERIALIZED VIEW osm_transportation_name_network AS (
CASE WHEN length(hl.name)>15 THEN osml10n_street_abbrev_all(hl.name) ELSE hl.name END AS "name", CASE WHEN length(hl.name)>15 THEN osml10n_street_abbrev_all(hl.name) ELSE hl.name END AS "name",
CASE WHEN length(hl.name_en)>15 THEN osml10n_street_abbrev_en(hl.name_en) ELSE hl.name_en END AS "name_en", CASE WHEN length(hl.name_en)>15 THEN osml10n_street_abbrev_en(hl.name_en) ELSE hl.name_en END AS "name_en",
CASE WHEN length(hl.name_de)>15 THEN osml10n_street_abbrev_de(hl.name_de) ELSE hl.name_de END AS "name_de", CASE WHEN length(hl.name_de)>15 THEN osml10n_street_abbrev_de(hl.name_de) ELSE hl.name_de END AS "name_de",
hl.tags,
rm.network_type, rm.network_type,
CASE CASE
WHEN (rm.network_type is not null AND nullif(rm.ref::text, '') is not null) WHEN (rm.network_type is not null AND nullif(rm.ref::text, '') is not null)
@ -49,9 +50,7 @@ CREATE MATERIALIZED VIEW osm_transportation_name_linestring AS (
name, name,
name_en, name_en,
name_de, name_de,
get_basic_names(delete_empty_keys(hstore(ARRAY['name',name,'name:en',name_en,'name:de',name_de])), geometry) tags,
|| delete_empty_keys(hstore(ARRAY['name',name,'name:en',name_en,'name:de',name_de]))
AS "tags",
ref, ref,
highway, highway,
"level", "level",
@ -65,18 +64,19 @@ CREATE MATERIALIZED VIEW osm_transportation_name_linestring AS (
name, name,
name_en, name_en,
name_de, name_de,
ref, slice_language_tags(tags) AS tags,
highway, max(ref) AS ref,
"level", max(highway) AS highway,
layer, max("level") AS "level",
indoor, max(layer) AS layer,
network_type, bool_or(indoor) AS indoor,
max(network_type) AS network_type,
min(z_order) AS z_order min(z_order) AS z_order
FROM osm_transportation_name_network FROM osm_transportation_name_network
WHERE ("rank"=1 OR "rank" is null) WHERE ("rank"=1 OR "rank" is null)
AND (name <> '' OR ref <> '') AND (name <> '' OR ref <> '')
AND NULLIF(highway, '') IS NOT NULL AND NULLIF(highway, '') IS NOT NULL
group by name, name_en, name_de, ref, highway, "level", layer, indoor, network_type group by name, name_en, name_de, slice_language_tags(tags)
) AS highway_union ) AS highway_union
); );
CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_geometry_idx ON osm_transportation_name_linestring USING gist(geometry); CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_geometry_idx ON osm_transportation_name_linestring USING gist(geometry);