From 72193a1c2344ef541c14540da66c2b11ee1a9fe6 Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Tue, 22 Sep 2020 13:27:05 +0200 Subject: [PATCH] exclude unnamed highway areas These are used to mark large paved areas. Sometimes they exists together with named regular streets. In such cases the unnamed area may overshadow the actual street when computing the address parent. As unnamed highways are not very useful anyway, we simply remove them from the database. --- settings/import-address.style | 2 +- settings/import-full.style | 3 ++- settings/import-street.style | 2 +- sql/functions/placex_triggers.sql | 7 ++++++- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/settings/import-address.style b/settings/import-address.style index 16f2e929..a2708086 100644 --- a/settings/import-address.style +++ b/settings/import-address.style @@ -5,7 +5,7 @@ "no" : "skip" } }, -{ "keys" : ["wikipedia", "wikipedia:*", "wikidata"], +{ "keys" : ["wikipedia", "wikipedia:*", "wikidata", "area"], "values" : { "" : "extra" } diff --git a/settings/import-full.style b/settings/import-full.style index c57c2c3a..86600901 100644 --- a/settings/import-full.style +++ b/settings/import-full.style @@ -237,7 +237,8 @@ "population", "description", "image", "attribution", "fax", "email", "url", "website", "phone", "real_ale", "smoking", "food", "camera", "brewery", "locality", "wikipedia", - "wikipedia:*", "access:*", "contact:*", "drink:*", "toll:*"], + "wikipedia:*", "access:*", "contact:*", "drink:*", "toll:*", + "area"], "values" : { "" : "extra" } diff --git a/settings/import-street.style b/settings/import-street.style index d2f0ae65..7f0c03b9 100644 --- a/settings/import-street.style +++ b/settings/import-street.style @@ -1,5 +1,5 @@ [ -{ "keys" : ["wikipedia", "wikipedia:*", "wikidata"], +{ "keys" : ["wikipedia", "wikipedia:*", "wikidata", "area"], "values" : { "" : "extra" } diff --git a/sql/functions/placex_triggers.sql b/sql/functions/placex_triggers.sql index 0bfefbb0..fa1a1f40 100644 --- a/sql/functions/placex_triggers.sql +++ b/sql/functions/placex_triggers.sql @@ -417,7 +417,12 @@ BEGIN NEW.name := hstore('ref', NEW.address->'postcode'); - ELSEIF NEW.class = 'boundary' AND NOT is_area THEN + ELSEIF NEW.class = 'highway' AND is_area AND NEW.name is null + AND NEW.extratags ? 'area' AND NEW.extratags->'area' = 'yes' + THEN + RETURN NULL; + ELSEIF NEW.class = 'boundary' AND NOT is_area + THEN RETURN NULL; ELSEIF NEW.class = 'boundary' AND NEW.type = 'administrative' AND NEW.admin_level <= 4 AND NEW.osm_type = 'W' -- 2.45.1