mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-16 15:47:58 +00:00
Merge pull request #2099 from lonvia/update-country-names
Dynamically update country names from OSM data
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -919,6 +919,18 @@ BEGIN
|
|||||||
THEN
|
THEN
|
||||||
PERFORM create_country(NEW.name, lower(NEW.country_code));
|
PERFORM create_country(NEW.name, lower(NEW.country_code));
|
||||||
--DEBUG: RAISE WARNING 'Country names updated';
|
--DEBUG: RAISE WARNING 'Country names updated';
|
||||||
|
|
||||||
|
-- Also update the list of country names. Adding an additional sanity
|
||||||
|
-- check here: make sure the country does overlap with the area where
|
||||||
|
-- we expect it to be as per static country grid.
|
||||||
|
FOR location IN
|
||||||
|
SELECT country_code FROM country_osm_grid
|
||||||
|
WHERE ST_Covers(geometry, NEW.centroid) and country_code = NEW.country_code
|
||||||
|
LIMIT 1
|
||||||
|
LOOP
|
||||||
|
--DEBUG: RAISE WARNING 'Updating names for country '%' with: %', NEW.country_code, NEW.name;
|
||||||
|
UPDATE country_name SET name = name || NEW.name WHERE country_code = NEW.country_code;
|
||||||
|
END LOOP;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- For linear features we need the full geometry for determining the address
|
-- For linear features we need the full geometry for determining the address
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ Feature: Localization of search results
|
|||||||
Given the HTTP header
|
Given the HTTP header
|
||||||
| accept-language |
|
| accept-language |
|
||||||
| fr-FR;q=0.8,en-ca;q=0.5 |
|
| fr-FR;q=0.8,en-ca;q=0.5 |
|
||||||
When sending json search query "Mauretanie"
|
When sending json search query "Mauretanien"
|
||||||
Then results contain
|
Then results contain
|
||||||
| ID | display_name |
|
| ID | display_name |
|
||||||
| 0 | Mauritanie |
|
| 0 | Mauritanie |
|
||||||
|
|||||||
47
test/bdd/db/import/country.feature
Normal file
47
test/bdd/db/import/country.feature
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
@DB
|
||||||
|
Feature: Country handling
|
||||||
|
Tests for import and use of country information
|
||||||
|
|
||||||
|
Scenario: Country names from OSM country relations are added
|
||||||
|
Given the places
|
||||||
|
| osm | class | type | admin | name+name:xy | country | geometry |
|
||||||
|
| R1 | boundary | administrative | 2 | Loudou | de | (9 52, 9 53, 10 52, 9 52) |
|
||||||
|
Given the places
|
||||||
|
| osm | class | type | name | geometry |
|
||||||
|
| N1 | place | town | Wenig | country:de |
|
||||||
|
When importing
|
||||||
|
When searching for "Wenig, Loudou"
|
||||||
|
Then results contain
|
||||||
|
| osm_type | osm_id | name |
|
||||||
|
| N | 1 | Wenig, Deutschland |
|
||||||
|
When searching for "Wenig"
|
||||||
|
| accept-language |
|
||||||
|
| xy,en |
|
||||||
|
Then results contain
|
||||||
|
| osm_type | osm_id | name |
|
||||||
|
| N | 1 | Wenig, Loudou |
|
||||||
|
Scenario: OSM country relations outside expected boundaries are ignored
|
||||||
|
Given the places
|
||||||
|
| osm | class | type | admin | name+name:xy | country | geometry |
|
||||||
|
| R1 | boundary | administrative | 2 | Loudou | de | poly-area:0.1 |
|
||||||
|
Given the places
|
||||||
|
| osm | class | type | name | geometry |
|
||||||
|
| N1 | place | town | Wenig | country:de |
|
||||||
|
When importing
|
||||||
|
When searching for "Wenig"
|
||||||
|
| accept-language |
|
||||||
|
| xy,en |
|
||||||
|
Then results contain
|
||||||
|
| osm_type | osm_id | name |
|
||||||
|
| N | 1 | Wenig, Germany |
|
||||||
|
Scenario: Pre-defined country names are used
|
||||||
|
Given the places
|
||||||
|
| osm | class | type | name | geometry |
|
||||||
|
| N1 | place | town | Ingb | country:ch |
|
||||||
|
When importing
|
||||||
|
And searching for "Ingb"
|
||||||
|
| accept-language |
|
||||||
|
| en,de |
|
||||||
|
Then results contain
|
||||||
|
| osm_type | osm_id | name |
|
||||||
|
| N | 1 | Ingb, Switzerland |
|
||||||
Reference in New Issue
Block a user