X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/be47cd2549da482f3a408307eee8bfe7967cff25..544db4302625c1969d21195eb4653402405dc3f5:/sql/functions.sql diff --git a/sql/functions.sql b/sql/functions.sql index bad4b17c..f3bff89c 100644 --- a/sql/functions.sql +++ b/sql/functions.sql @@ -1286,7 +1286,7 @@ BEGIN -- cheaper but less acurate place_centroid := ST_PointOnSurface(NEW.geometry); -- For searching near features rather use the centroid - near_centroid := ST_Centroid(NEW.geometry); + near_centroid := ST_Envelope(NEW.geometry); NEW.centroid := null; NEW.postcode := null; --DEBUG: RAISE WARNING 'Computing preliminary centroid at %',ST_AsText(place_centroid); @@ -1521,7 +1521,7 @@ BEGIN NEW.postcode := location.postcode; END IF; IF NEW.postcode is null THEN - NEW.postcode := get_nearest_postcode(NEW.country_code, near_centroid); + NEW.postcode := get_nearest_postcode(NEW.country_code, NEW.geometry); END IF; END IF; @@ -1791,7 +1791,7 @@ BEGIN CASE WHEN NEW.rank_search >= 26 AND NEW.rank_search < 30 THEN NEW.geometry - ELSE near_centroid END, + ELSE place_centroid END, search_maxrank, isin_tokens) LOOP IF location.rank_address != location_rank_search THEN @@ -2386,7 +2386,7 @@ BEGIN -- postcode table IF for_place_id IS NULL THEN - SELECT parent_place_id, country_code, rank_address, postcode, 'place', 'postcode' + SELECT parent_place_id, country_code, rank_search, postcode, 'place', 'postcode' FROM location_postcode WHERE place_id = in_place_id INTO for_place_id, searchcountrycode, searchrankaddress, searchpostcode,