mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-26 11:08:13 +00:00
Merge pull request #3100 from lonvia/fix-name-merging-in-unnamed-boundaries
Fix merging of linked names into unnamed boundaries
This commit is contained in:
@@ -88,12 +88,18 @@ BEGIN
|
|||||||
-- Add all names from the place nodes that deviate from the name
|
-- Add all names from the place nodes that deviate from the name
|
||||||
-- in the relation with the prefix '_place_'. Deviation means that
|
-- in the relation with the prefix '_place_'. Deviation means that
|
||||||
-- either the value is different or a given key is missing completely
|
-- either the value is different or a given key is missing completely
|
||||||
SELECT hstore(array_agg('_place_' || key), array_agg(value)) INTO extra_names
|
IF result.name is null THEN
|
||||||
FROM each(location.name - result.name);
|
SELECT hstore(array_agg('_place_' || key), array_agg(value))
|
||||||
{% if debug %}RAISE WARNING 'Extra names: %', extra_names;{% endif %}
|
INTO result.name
|
||||||
|
FROM each(location.name);
|
||||||
|
ELSE
|
||||||
|
SELECT hstore(array_agg('_place_' || key), array_agg(value)) INTO extra_names
|
||||||
|
FROM each(location.name - result.name);
|
||||||
|
{% if debug %}RAISE WARNING 'Extra names: %', extra_names;{% endif %}
|
||||||
|
|
||||||
IF extra_names is not null THEN
|
IF extra_names is not null THEN
|
||||||
result.name := result.name || extra_names;
|
result.name := result.name || extra_names;
|
||||||
|
END IF;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
{% if debug %}RAISE WARNING 'Final names: %', result.name;{% endif %}
|
{% if debug %}RAISE WARNING 'Final names: %', result.name;{% endif %}
|
||||||
|
|||||||
@@ -290,3 +290,23 @@ Feature: Linking of places
|
|||||||
| R1 | 'linked_place' : 'city', 'wikidata': 'Q1234' |
|
| R1 | 'linked_place' : 'city', 'wikidata': 'Q1234' |
|
||||||
| R2 | 'wikidata': 'Q1234' |
|
| R2 | 'wikidata': 'Q1234' |
|
||||||
|
|
||||||
|
|
||||||
|
Scenario: Boundaries without names inherit names from linked places
|
||||||
|
Given the 0.05 grid
|
||||||
|
| 1 | | 2 |
|
||||||
|
| | 9 | |
|
||||||
|
| 4 | | 3 |
|
||||||
|
Given the places
|
||||||
|
| osm | class | type | extra+wikidata | admin | geometry |
|
||||||
|
| R1 | boundary | administrative | 34 | 8 | (1,2,3,4,1) |
|
||||||
|
And the places
|
||||||
|
| osm | class | type | name+name |
|
||||||
|
| N9 | place | city | LabelPlace |
|
||||||
|
And the relations
|
||||||
|
| id | members |
|
||||||
|
| 1 | N9:label |
|
||||||
|
When importing
|
||||||
|
Then placex contains
|
||||||
|
| object | name+_place_name |
|
||||||
|
| R1 | LabelPlace |
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user