END IF;
IF fallback THEN
- IF ST_Area(bbox) < 0.005 THEN
+ IF addr_street is null and addr_place is not null THEN
+ -- The address is attached to a place we don't know. Find the
+ -- nearest place instead.
+ FOR location IN
+ SELECT place_id FROM getNearFeatures(poi_partition, bbox, 26, '{}'::INTEGER[])
+ ORDER BY rank_address DESC, isguess asc, distance LIMIT 1
+ LOOP
+ parent_place_id := location.place_id;
+ END LOOP;
+ ELSEIF ST_Area(bbox) < 0.005 THEN
-- for smaller features get the nearest road
SELECT getNearestRoadPlaceId(poi_partition, bbox) INTO parent_place_id;
--DEBUG: RAISE WARNING 'Checked for nearest way (%)', parent_place_id;
| osm | class | type | housenr | addr+place | geometry |
| N1 | place | house | 23 | Walltown | :p-N1 |
And the places
- | osm | class | type | name+name | geometry |
- | W1 | highway | residential | Rose Street | :w-north |
+ | osm | class | type | name+name | geometry |
+ | W1 | highway | residential | Rose Street | :w-north |
+ | N2 | place | city | Strange Town | :p-N1 |
When importing
Then search_name contains
| object | name_vector | nameaddress_vector |
| N1 | #23 | Walltown |
- When searching for "23 Rose Street, Walltown"
- Then exactly 0 results are returned
+ When searching for "23 Rose Street"
+ Then exactly 1 results are returned
+ And results contain
+ | osm_type | osm_id |
+ | W | 1 |
+ When searching for "23 Walltown"
+ Then results contain
+ | osm_type | osm_id |
+ | N | 1 |
- # XXX Need to change parenting of POis without addr:street and with addr:place
Scenario: Unnamed POIs doesn't inherit parent name when addr:place is present only in parent address
Given the scene roads-with-pois
And the places
| osm | class | type | housenr | addr+place | geometry |
| N1 | place | house | 23 | Walltown | :p-N1 |
And the places
- | osm | class | type | name+name | addr+city | geometry |
- | W1 | highway | residential | Rose Street | Walltown | :w-north |
+ | osm | class | type | name+name | addr+city | geometry |
+ | W1 | highway | residential | Rose Street | Walltown | :w-north |
+ | N2 | place | suburb | Strange Town | Walltown | :p-N1 |
When importing
Then search_name contains
| object | name_vector | nameaddress_vector |
And results contain
| osm_type | osm_id |
| W | 1 |
+ When searching for "23 Walltown"
+ Then exactly 1 result is returned
+ And results contain
+ | osm_type | osm_id |
+ | N | 1 |
Scenario: Unnamed POIs does inherit parent name when unknown addr:place and addr:street is present
Given the scene roads-with-pois
| osm | class | type | name+name | addr+place | geometry |
| N1 | place | house | Green Moss | Walltown | :p-N1 |
And the places
- | osm | class | type | name+name | geometry |
- | W1 | highway | residential | Rose Street | :w-north |
+ | osm | class | type | name+name | geometry |
+ | W1 | highway | residential | Rose Street | :w-north |
+ | N2 | place | suburb | Strange Town | :p-N1 |
When importing
Then search_name contains
| object | name_vector | nameaddress_vector |
| N1 | #Green Moss | Walltown |
When searching for "Green Moss, Rose Street, Walltown"
- Then exactly 1 result is returned
- And results contain
+ Then exactly 0 result is returned
+ When searching for "Green Moss, Walltown"
+ Then results contain
| osm_type | osm_id |
- | W | 1 |
+ | N | 1 |
Scenario: Named POIs inherit address from parent
Given the scene roads-with-pois