X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/d75a235c1f9ad7bc490ee01ea360d62ddfa54e8e..efafa5271957fb54b356ec1c90e8613f14de40d4:/lib-sql/functions/interpolation.sql?ds=inline diff --git a/lib-sql/functions/interpolation.sql b/lib-sql/functions/interpolation.sql index 55e44dfd..a8ef3771 100644 --- a/lib-sql/functions/interpolation.sql +++ b/lib-sql/functions/interpolation.sql @@ -1,3 +1,10 @@ +-- SPDX-License-Identifier: GPL-2.0-only +-- +-- This file is part of Nominatim. (https://nominatim.org) +-- +-- Copyright (C) 2022 by the Nominatim developer community. +-- For a full list of authors see the git log. + -- Functions for address interpolation objects in location_property_osmline. -- Splits the line at the given point and returns the two parts @@ -43,7 +50,7 @@ LANGUAGE plpgsql STABLE; -- find the parent road of the cut road parts -CREATE OR REPLACE FUNCTION get_interpolation_parent(street INTEGER[], place INTEGER[], +CREATE OR REPLACE FUNCTION get_interpolation_parent(token_info JSONB, partition SMALLINT, centroid GEOMETRY, geom GEOMETRY) RETURNS BIGINT @@ -52,7 +59,7 @@ DECLARE parent_place_id BIGINT; location RECORD; BEGIN - parent_place_id := find_parent_for_address(street, place, partition, centroid); + parent_place_id := find_parent_for_address(token_info, partition, centroid); IF parent_place_id is null THEN FOR location IN SELECT place_id FROM placex @@ -155,9 +162,8 @@ BEGIN NEW.interpolationtype = NEW.address->'interpolation'; place_centroid := ST_PointOnSurface(NEW.linegeo); - NEW.parent_place_id = get_interpolation_parent(token_addr_street_match_tokens(NEW.token_info), - token_addr_place_match_tokens(NEW.token_info), - NEW.partition, place_centroid, NEW.linegeo); + NEW.parent_place_id = get_interpolation_parent(NEW.token_info, NEW.partition, + place_centroid, NEW.linegeo); interpol_postcode := token_normalized_postcode(NEW.address->'postcode');