X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/2e5c8b5cd33cd2647414a87d8fd8bcae8b4698ec..d442bf904b68d26dd7daf62746919475ce5a151a:/sql/functions/placex_triggers.sql diff --git a/sql/functions/placex_triggers.sql b/sql/functions/placex_triggers.sql index e80f14cb..87f15e8c 100644 --- a/sql/functions/placex_triggers.sql +++ b/sql/functions/placex_triggers.sql @@ -97,7 +97,7 @@ BEGIN -- Instead simply use the containing area with the largest rank. FOR location IN SELECT place_id FROM placex - WHERE bbox @ geometry AND _ST_Covers(geometry, ST_Centroid(bbox)) + WHERE bbox && geometry AND _ST_Covers(geometry, ST_Centroid(bbox)) AND rank_address between 5 and 25 ORDER BY rank_address desc LOOP @@ -112,7 +112,7 @@ BEGIN -- contains the bbox, only use addressable features FOR location IN SELECT place_id FROM placex - WHERE bbox @ geometry AND _ST_Covers(geometry, ST_Centroid(bbox)) + WHERE bbox && geometry AND _ST_Covers(geometry, ST_Centroid(bbox)) AND rank_address between 5 and 25 ORDER BY rank_address desc LOOP @@ -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