So far the code would only accept postcodes that are inside the area.
Fixes #3304.
OR ST_GeometryType(NEW.geometry) not in ('ST_LineString','ST_MultiLineString')
OR ST_Length(NEW.geometry) < 0.02)
THEN
- NEW.postcode := get_nearest_postcode(NEW.country_code, NEW.geometry);
+ NEW.postcode := get_nearest_postcode(NEW.country_code,
+ CASE WHEN NEW.rank_address > 25
+ THEN NEW.centroid ELSE NEW.geometry END);
END IF;
{% if debug %}RAISE WARNING 'place update % % finished.', NEW.osm_type, NEW.osm_id;{% endif %}
| way | highway |
And result addresses contain
| road | postcode | country_code |
- | Upper Kingston Road | 30607 | us |
+ | Upper Kingston Road | 36067 | us |
Scenario: Interpolated house number
When sending v1/reverse at 47.118533,9.57056562
| object | postcode |
| W93 | 45023 |
+ Scenario: Road areas get postcodes from nearby named buildings without other info
+ Given the grid with origin US
+ | 10 | | | | 11 |
+ | 13 | | | | 12 |
+ | | 1 | 2 | | |
+ | | 4 | 3 | | |
+ And the named places
+ | osm | class | type | geometry |
+ | W93 | highway | pedestriant | (10,11,12,13,10) |
+ And the named places
+ | osm | class | type | addr+postcode | geometry |
+ | W22 | building | yes | 45023 | (1,2,3,4,1) |
+ When importing
+ Then placex contains
+ | object | postcode |
+ | W93 | 45023 |
+
Scenario: Roads get postcodes from nearby unnamed buildings without other info
Given the grid with origin US
| 10 | | | | 11 |