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.
This commit is contained in:
Sarah Hoffmann
2022-05-02 09:48:51 +02:00
parent 8ebb8ee304
commit 372874e89a
2 changed files with 25 additions and 1 deletions

View File

@@ -120,7 +120,8 @@ BEGIN
IF location.members[i+1] = 'street' THEN IF location.members[i+1] = 'street' THEN
FOR parent IN FOR parent IN
SELECT place_id from placex 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 name is not null
and rank_search between 26 and 27 and rank_search between 26 and 27
LOOP LOOP

View File

@@ -355,6 +355,29 @@ Feature: Parenting of objects
| object | parent_place_id | | object | parent_place_id |
| N1 | W3 | | 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 Scenario: POIs in building inherit address
Given the scene building-on-street-corner Given the scene building-on-street-corner
And the named places And the named places