From d574ceb59821058267d065862ad941240d0925d3 Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Fri, 17 Feb 2023 16:25:26 +0100 Subject: [PATCH] restrict place rank inheritance to address items Place tags must have no influence on street- or POI-level objects. --- lib-sql/functions/placex_triggers.sql | 2 +- test/bdd/db/import/rank_computation.feature | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib-sql/functions/placex_triggers.sql b/lib-sql/functions/placex_triggers.sql index 295b838e..99d2872f 100644 --- a/lib-sql/functions/placex_triggers.sql +++ b/lib-sql/functions/placex_triggers.sql @@ -1120,7 +1120,7 @@ BEGIN ELSE -- No linked place? As a last resort check if the boundary is tagged with -- a place type and adapt the rank address. - IF NEW.rank_address > 0 and NEW.extratags ? 'place' THEN + IF NEW.rank_address between 4 and 25 and NEW.extratags ? 'place' THEN SELECT address_rank INTO place_address_level FROM compute_place_rank(NEW.country_code, 'A', 'place', NEW.extratags->'place', 0::SMALLINT, False, null); diff --git a/test/bdd/db/import/rank_computation.feature b/test/bdd/db/import/rank_computation.feature index 1d4e2b82..df01fd91 100644 --- a/test/bdd/db/import/rank_computation.feature +++ b/test/bdd/db/import/rank_computation.feature @@ -255,3 +255,15 @@ Feature: Rank assignment | W1 | R10 | True | 18 | | W1 | R2 | True | 16 | | W1 | N9 | False | 18 | + + + Scenario: POI nodes with place tags + Given the places + | osm | class | type | name | extratags | + | N23 | amenity | playground | AB | "place": "city" | + | N23 | place | city | AB | "amenity": "playground" | + When importing + Then placex contains exactly + | object | rank_search | rank_address | + | N23:amenity | 30 | 30 | + | N23:place | 16 | 16 | -- 2.39.5