mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-26 11:08:13 +00:00
ignore irrelevant extra tags on address interpolations
When deciding if an address interpolation has address information, only look for addr:street and addr:place. If they are not there go looking for the address on the address nodes. Ignores irrelevant tags like addr:inclusion. Fixes #2797.
This commit is contained in:
@@ -15,7 +15,7 @@ DECLARE
|
|||||||
location RECORD;
|
location RECORD;
|
||||||
waynodes BIGINT[];
|
waynodes BIGINT[];
|
||||||
BEGIN
|
BEGIN
|
||||||
IF akeys(in_address) != ARRAY['interpolation'] THEN
|
IF in_address ? 'street' or in_address ? 'place' THEN
|
||||||
RETURN in_address;
|
RETURN in_address;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
|||||||
@@ -403,3 +403,33 @@ Feature: Import of address interpolations
|
|||||||
Then results contain
|
Then results contain
|
||||||
| ID | osm_type | osm_id | type | display_name |
|
| ID | osm_type | osm_id | type | display_name |
|
||||||
| 0 | node | 1 | house | 0 |
|
| 0 | node | 1 | house | 0 |
|
||||||
|
|
||||||
|
Scenario: Parenting of interpolation with additional tags
|
||||||
|
Given the grid
|
||||||
|
| 1 | | | | | |
|
||||||
|
| | | | | | |
|
||||||
|
| | 8 | | | 9 | |
|
||||||
|
| | | | | | |
|
||||||
|
| 2 | | | | | 3 |
|
||||||
|
Given the places
|
||||||
|
| osm | class | type | housenr | addr+street |
|
||||||
|
| N8 | place | house | 10 | Horiz St |
|
||||||
|
| N9 | place | house | 16 | Horiz St |
|
||||||
|
And the places
|
||||||
|
| osm | class | type | name | geometry |
|
||||||
|
| W1 | highway | residential | Vert St | 1,2 |
|
||||||
|
| W2 | highway | residential | Horiz St | 2,3 |
|
||||||
|
And the places
|
||||||
|
| osm | class | type | addr+interpolation | addr+inclusion | geometry |
|
||||||
|
| W10 | place | houses | even | actual | 8,9 |
|
||||||
|
And the ways
|
||||||
|
| id | nodes |
|
||||||
|
| 10 | 8,9 |
|
||||||
|
When importing
|
||||||
|
Then placex contains
|
||||||
|
| object | parent_place_id |
|
||||||
|
| N8 | W2 |
|
||||||
|
| N9 | W2 |
|
||||||
|
And W10 expands to interpolation
|
||||||
|
| start | end | parent_place_id |
|
||||||
|
| 12 | 14 | W2 |
|
||||||
|
|||||||
@@ -370,6 +370,6 @@ def check_location_property_osmline(context, oid, neg):
|
|||||||
|
|
||||||
DBRow(oid, res, context).assert_row(row, ('start', 'end'))
|
DBRow(oid, res, context).assert_row(row, ('start', 'end'))
|
||||||
|
|
||||||
assert not todo
|
assert not todo, f"Unmatched lines in table: {list(context.table[i] for i in todo)}"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user