X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/f535340d5af0b59c1bbdfde885b62dd483a9e38e..23369ce9704d3815faae22697338916a60ddf682:/lib-sql/functions/interpolation.sql diff --git a/lib-sql/functions/interpolation.sql b/lib-sql/functions/interpolation.sql index b0797df2..2fd21e8a 100644 --- a/lib-sql/functions/interpolation.sql +++ b/lib-sql/functions/interpolation.sql @@ -121,6 +121,8 @@ LANGUAGE plpgsql; CREATE OR REPLACE FUNCTION osmline_insert() RETURNS TRIGGER AS $$ +DECLARE + centroid GEOMETRY; BEGIN NEW.place_id := nextval('seq_place'); NEW.indexed_date := now(); @@ -135,10 +137,11 @@ BEGIN END IF; NEW.indexed_status := 1; --STATUS_NEW - NEW.country_code := lower(get_country_code(NEW.linegeo)); + centroid := get_center_point(NEW.linegeo); + NEW.country_code := lower(get_country_code(centroid)); NEW.partition := get_partition(NEW.country_code); - NEW.geometry_sector := geometry_sector(NEW.partition, NEW.linegeo); + NEW.geometry_sector := geometry_sector(NEW.partition, centroid); END IF; RETURN NEW; @@ -176,8 +179,8 @@ BEGIN END IF; NEW.parent_place_id := get_interpolation_parent(NEW.token_info, NEW.partition, - ST_PointOnSurface(NEW.linegeo), - NEW.linegeo); + get_center_point(NEW.linegeo), + NEW.linegeo); -- Cannot find a parent street. We will not be able to display a reliable -- address, so drop entire interpolation.