mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-16 15:47:58 +00:00
also take place tags into account for address rank
An admin boundary might have a place tag but no matching place node. We still should use the place value as indicator for the address rank in this case.
This commit is contained in:
@@ -534,6 +534,7 @@ DECLARE
|
|||||||
|
|
||||||
centroid GEOMETRY;
|
centroid GEOMETRY;
|
||||||
parent_address_level SMALLINT;
|
parent_address_level SMALLINT;
|
||||||
|
place_address_level SMALLINT;
|
||||||
|
|
||||||
addr_street TEXT;
|
addr_street TEXT;
|
||||||
addr_place TEXT;
|
addr_place TEXT;
|
||||||
@@ -828,6 +829,17 @@ BEGIN
|
|||||||
THEN
|
THEN
|
||||||
NEW.importance = linked_importance;
|
NEW.importance = linked_importance;
|
||||||
END IF;
|
END IF;
|
||||||
|
ELSE
|
||||||
|
-- No linked place? As a last resort check if the boundary is tagged with
|
||||||
|
-- a place type and adapt the rank address.
|
||||||
|
IF NEW.rank_address > 0 and NEW.extratags ? 'place' THEN
|
||||||
|
SELECT address_rank INTO place_address_level
|
||||||
|
FROM compute_place_rank(NEW.country_code, 'A', 'place',
|
||||||
|
NEW.extratags->'place', 0::SMALLINT, False, null);
|
||||||
|
IF place_address_level > parent_address_level THEN
|
||||||
|
NEW.rank_address := place_address_level;
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- Initialise the name vector using our name
|
-- Initialise the name vector using our name
|
||||||
|
|||||||
Reference in New Issue
Block a user