Merge pull request #2087 from lonvia/only-one-link-per-node

Place nodes can only be linked once against boundaries
This commit is contained in:
Sarah Hoffmann
2020-12-02 22:16:56 +01:00
committed by GitHub
2 changed files with 21 additions and 0 deletions

View File

@@ -183,6 +183,7 @@ BEGIN
WHERE make_standard_name(name->'name') = bnd_name
AND placex.class = 'place' AND placex.type = bnd.extratags->'place'
AND placex.osm_type = 'N'
AND placex.linked_place_id is null
AND placex.rank_search < 26 -- needed to select the right index
AND _st_covers(bnd.geometry, placex.geometry)
LOOP
@@ -197,6 +198,7 @@ BEGIN
WHERE placex.class = 'place' AND placex.osm_type = 'N'
AND placex.extratags ? 'wikidata' -- needed to select right index
AND placex.extratags->'wikidata' = bnd.extratags->'wikidata'
AND placex.linked_place_id is null
AND placex.rank_search < 26
AND _st_covers(bnd.geometry, placex.geometry)
ORDER BY make_standard_name(name->'name') = bnd_name desc
@@ -219,6 +221,7 @@ BEGIN
false, placex.postcode)).address_rank)
OR (bnd.rank_address = 0 and placex.rank_search = bnd.rank_search))
AND placex.osm_type = 'N'
AND placex.linked_place_id is null
AND placex.rank_search < 26 -- needed to select the right index
AND _st_covers(bnd.geometry, placex.geometry)
LOOP

View File

@@ -231,3 +231,21 @@ Feature: Linking of places
And placex contains
| object | centroid |
| R13 | in geometry |
Scenario: Place nodes can only be linked once
Given the named places
| osm | class | type | extra+wikidata | geometry |
| N2 | place | city | Q1234 | 0 0 |
And the named places
| osm | class | type | extra+wikidata | admin | geometry |
| R1 | boundary | administrative | Q1234 | 8 | poly-area:0.1 |
| R2 | boundary | administrative | Q1234 | 9 | poly-area:0.01 |
When importing
Then placex contains
| object | linked_place_id |
| N2 | R1 |
And placex contains
| object | extratags |
| R1 | 'linked_place' : 'city', 'wikidata': 'Q1234' |
| R2 | 'wikidata': 'Q1234' |