From: Sarah Hoffmann Date: Mon, 2 May 2022 09:42:34 +0000 (+0200) Subject: Merge pull request #2689 from lonvia/relations-in-associated-street X-Git-Tag: v4.1.0~54 X-Git-Url: https://git.openstreetmap.org/nominatim.git/commitdiff_plain/32a5f812a9c68bbfc9230bb40439c75a49eb08e0?hp=8ebb8ee3040737d4d3797e569271e771bb39450a Merge pull request #2689 from lonvia/relations-in-associated-street Accept any OSM type in street member of associatedStreet --- 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