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.
This commit is contained in:
Sarah Hoffmann 2020-09-22 13:27:05 +02:00
parent c5fc12e04b
commit 72193a1c23
4 changed files with 10 additions and 4 deletions

View File

@ -5,7 +5,7 @@
"no" : "skip" "no" : "skip"
} }
}, },
{ "keys" : ["wikipedia", "wikipedia:*", "wikidata"], { "keys" : ["wikipedia", "wikipedia:*", "wikidata", "area"],
"values" : { "values" : {
"" : "extra" "" : "extra"
} }

View File

@ -237,7 +237,8 @@
"population", "description", "image", "attribution", "fax", "population", "description", "image", "attribution", "fax",
"email", "url", "website", "phone", "real_ale", "smoking", "email", "url", "website", "phone", "real_ale", "smoking",
"food", "camera", "brewery", "locality", "wikipedia", "food", "camera", "brewery", "locality", "wikipedia",
"wikipedia:*", "access:*", "contact:*", "drink:*", "toll:*"], "wikipedia:*", "access:*", "contact:*", "drink:*", "toll:*",
"area"],
"values" : { "values" : {
"" : "extra" "" : "extra"
} }

View File

@ -1,5 +1,5 @@
[ [
{ "keys" : ["wikipedia", "wikipedia:*", "wikidata"], { "keys" : ["wikipedia", "wikipedia:*", "wikidata", "area"],
"values" : { "values" : {
"" : "extra" "" : "extra"
} }

View File

@ -417,7 +417,12 @@ BEGIN
NEW.name := hstore('ref', NEW.address->'postcode'); 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; RETURN NULL;
ELSEIF NEW.class = 'boundary' AND NEW.type = 'administrative' ELSEIF NEW.class = 'boundary' AND NEW.type = 'administrative'
AND NEW.admin_level <= 4 AND NEW.osm_type = 'W' AND NEW.admin_level <= 4 AND NEW.osm_type = 'W'