Merge pull request #2059 from lonvia/include-parent-name-for-unknown-places

POIs with unknown addr:place must add parent name to address
This commit is contained in:
Sarah Hoffmann 2020-11-18 08:58:03 +01:00 committed by GitHub
commit 29785ba166
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 9 deletions

View File

@ -518,16 +518,14 @@ BEGIN
addr_place_ids := addr_ids_from_name(address->'place'); addr_place_ids := addr_ids_from_name(address->'place');
IF not addr_place_ids <@ parent_name_vector THEN IF not addr_place_ids <@ parent_name_vector THEN
-- addr:place tag exists without a corresponding place. Mix in addr:place -- addr:place tag exists without a corresponding place. Mix in addr:place
-- in the address and drop the name from the parent. This would only be -- in the address.
-- the street name of the nearest street.
nameaddress_vector := array_merge(nameaddress_vector, addr_place_ids);
name_vector := ARRAY[getorcreate_name_id(housenumber)]; name_vector := ARRAY[getorcreate_name_id(housenumber)];
nameaddress_vector := array_merge(nameaddress_vector, addr_place_ids);
END IF; END IF;
ELSE
nameaddress_vector := array_merge(nameaddress_vector, parent_name_vector);
END IF; END IF;
-- The address vector always gets merged in. -- Merge the parent name and address.
nameaddress_vector := array_merge(nameaddress_vector, parent_name_vector);
nameaddress_vector := array_merge(nameaddress_vector, parent_address_vector); nameaddress_vector := array_merge(nameaddress_vector, parent_address_vector);
END; END;

View File

@ -56,7 +56,7 @@ Feature: Creation of search terms
When importing When importing
Then search_name has no entry for N1 Then search_name has no entry for N1
Scenario: Unnamed POIs doesn't inherit parent name when unknown addr:place is present Scenario: Unnamed POIs inherit parent name when unknown addr:place is present
Given the scene roads-with-pois Given the scene roads-with-pois
And the places And the places
| osm | class | type | housenr | addr+place | geometry | | osm | class | type | housenr | addr+place | geometry |
@ -66,15 +66,18 @@ Feature: Creation of search terms
| W1 | highway | residential | Rose Street | :w-north | | W1 | highway | residential | Rose Street | :w-north |
| N2 | place | city | Strange Town | :p-N1 | | N2 | place | city | Strange Town | :p-N1 |
When importing When importing
Then placex contains
| object | parent_place_id |
| N1 | N2 |
Then search_name contains Then search_name contains
| object | name_vector | nameaddress_vector | | object | name_vector | nameaddress_vector |
| N1 | #23 | Walltown | | N1 | #23 | Walltown, Strange, Town |
When searching for "23 Rose Street" When searching for "23 Rose Street"
Then exactly 1 results are returned Then exactly 1 results are returned
And results contain And results contain
| osm_type | osm_id | name | | osm_type | osm_id | name |
| W | 1 | Rose Street, Strange Town | | W | 1 | Rose Street, Strange Town |
When searching for "23 Walltown" When searching for "23 Walltown, Strange Town"
Then results contain Then results contain
| osm_type | osm_id | name | | osm_type | osm_id | name |
| N | 1 | 23, Walltown, Strange Town | | N | 1 | 23, Walltown, Strange Town |