From: Sarah Hoffmann Date: Mon, 2 May 2022 07:48:51 +0000 (+0200) Subject: accept any OSM type in street member of associatedStreet X-Git-Tag: v4.1.0~54^2 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/372874e89adbfde48699c53bc24200c0113471fe accept any OSM type in street member of associatedStreet This is needed for pedestrian areas mapped as multipolygons and consequently as relations. The lookup in placex guarantees that the referenced OSM object is indeed a street. Fixes #2669. --- diff --git a/lib-sql/functions/placex_triggers.sql b/lib-sql/functions/placex_triggers.sql index f92b2113..2c1b3bdb 100644 --- a/lib-sql/functions/placex_triggers.sql +++ b/lib-sql/functions/placex_triggers.sql @@ -120,7 +120,8 @@ BEGIN IF location.members[i+1] = 'street' THEN FOR parent IN SELECT place_id from placex - WHERE osm_type = 'W' and osm_id = substring(location.members[i],2)::bigint + WHERE osm_type = upper(substring(location.members[i], 1, 1)) + and osm_id = substring(location.members[i], 2)::bigint and name is not null and rank_search between 26 and 27 LOOP diff --git a/test/bdd/db/import/parenting.feature b/test/bdd/db/import/parenting.feature index 81a92446..ba4cc28c 100644 --- a/test/bdd/db/import/parenting.feature +++ b/test/bdd/db/import/parenting.feature @@ -355,6 +355,29 @@ Feature: Parenting of objects | object | parent_place_id | | N1 | W3 | + + Scenario: street member in associatedStreet relation can be a relation + Given the grid + | 1 | | | 2 | + | 3 | | | 4 | + | | | | | + | | 9 | | | + | 5 | | | 6 | + And the places + | osm | class | type | housenr | geometry | + | N9 | place | house | 34 | 9 | + And the named places + | osm | class | type | name | geometry | + | R14 | highway | pedestrian | Right St | (1,2,4,3,1) | + | W14 | highway | pedestrian | Left St | 5,6 | + And the relations + | id | members | tags+type | + | 1 | N9:house,R14:street | associatedStreet | + When importing + Then placex contains + | object | parent_place_id | + | N9 | R14 | + Scenario: POIs in building inherit address Given the scene building-on-street-corner And the named places