If an addr:place is given but no addr:street tag, then bind
the rank 30 object always to a <=25 object, even when there
is none found with the same name.
- 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;
-- 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;
| W1 | N4 | 3 |
| N1 | W2 | None |
| N2 | W3 | 4 |
| W1 | N4 | 3 |
| N1 | W2 | None |
| N2 | W3 | 4 |
Scenario: POIs parent a road if they are attached to it
Given the scene points-on-roads
Scenario: POIs parent a road if they are attached to it
Given the scene points-on-roads
| osm | class | type | housenr | addr+place | geometry |
| N1 | place | house | 23 | Walltown | :p-N1 |
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 | 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 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
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 |
When importing
Then search_name contains
| object | name_vector | nameaddress_vector |
And results contain
| osm_type | osm_id |
| W | 1 |
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
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 | 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"
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
Scenario: Named POIs inherit address from parent
Given the scene roads-with-pois
Scenario: Named POIs inherit address from parent
Given the scene roads-with-pois
| N2 | shop | bakery | :n-edge-NS |
| N3 | shop | supermarket| :n-edge-WE |
And the places
| N2 | shop | bakery | :n-edge-NS |
| N3 | shop | supermarket| :n-edge-WE |
And the places
- | osm | class | type | addr_place | housenr | geometry |
- | W1 | building | yes | nowhere | 3 | :w-building |
+ | osm | class | type | street | housenr | geometry |
+ | W1 | building | yes | nowhere | 3 | :w-building |
And the places
| osm | class | type | name | geometry |
| W2 | highway | primary | bar | :w-WE |
And the places
| osm | class | type | name | geometry |
| W2 | highway | primary | bar | :w-WE |
| N1 | W3 | 3 |
| N2 | W3 | 3 |
| N3 | W3 | 3 |
| N1 | W3 | 3 |
| N2 | W3 | 3 |
| N3 | W3 | 3 |