]> git.openstreetmap.org Git - nominatim.git/commitdiff
exclude unnamed highway areas
authorSarah Hoffmann <lonvia@denofr.de>
Tue, 22 Sep 2020 11:27:05 +0000 (13:27 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Tue, 22 Sep 2020 19:42:13 +0000 (21:42 +0200)
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
settings/import-full.style
settings/import-street.style
sql/functions/placex_triggers.sql

index 16f2e929b311d11e15b78432c94cf0bb54295119..a2708086a1a2ee22dc490f530a7e3ea0da7e4398 100644 (file)
@@ -5,7 +5,7 @@
         "no" : "skip"
     }
 },
-{   "keys" : ["wikipedia", "wikipedia:*", "wikidata"],
+{   "keys" : ["wikipedia", "wikipedia:*", "wikidata", "area"],
     "values" : {
         "" : "extra"
     }
index c57c2c3a82ce6444398deb97c6bdf7d8ee14be8a..8660090173e5a2705f33ef0232a0028816542ec3 100644 (file)
               "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"
     }
index d2f0ae65c45e4938debb34bbc8d334fd144763f7..7f0c03b9739acc6d93ca586552503ffbd186f251 100644 (file)
@@ -1,5 +1,5 @@
 [
-{   "keys" : ["wikipedia", "wikipedia:*", "wikidata"],
+{   "keys" : ["wikipedia", "wikipedia:*", "wikidata", "area"],
     "values" : {
         "" : "extra"
     }
index 0bfefbb060891f1a2b448921eada8de0479dd8a1..fa1a1f4031ef833b323ca26a8e3485059ed7b2ba 100644 (file)
@@ -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'