update country_names from OSM data

Update names in the coutry_names table on the fly from incomming
OSM country data. Adding a small sanity check that the country
must be an OSM relation and within the area where we expect the
country to be.
This commit is contained in:
Sarah Hoffmann
2020-12-09 11:38:19 +01:00
parent 38582c3e52
commit 65d8770b28
2 changed files with 59 additions and 0 deletions

View File

@@ -919,6 +919,18 @@ BEGIN
THEN
PERFORM create_country(NEW.name, lower(NEW.country_code));
--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;
-- For linear features we need the full geometry for determining the address