getNearestNamed*Feature functions better return values

This commit is contained in:
Sarah Hoffmann
2020-01-16 21:43:26 +01:00
parent f863040b38
commit 3b6c2c9155
4 changed files with 41 additions and 51 deletions

View File

@@ -12,7 +12,7 @@ DECLARE
out_partition INTEGER;
out_parent_place_id BIGINT;
location RECORD;
address_street_word_id INTEGER;
address_street_word_ids INTEGER[];
out_postcode TEXT;
BEGIN
@@ -21,11 +21,10 @@ BEGIN
out_partition := get_partition(in_countrycode);
out_parent_place_id := null;
address_street_word_id := get_name_id(make_standard_name(in_street));
IF address_street_word_id IS NOT NULL THEN
FOR location IN SELECT * from getNearestNamedRoadFeature(out_partition, place_centroid, address_street_word_id) LOOP
out_parent_place_id := location.place_id;
END LOOP;
address_street_word_ids := word_ids_from_name(in_street);
IF address_street_word_ids IS NOT NULL THEN
out_parent_place_id := getNearestNamedRoadFeature(out_partition, place_centroid,
address_street_word_ids);
END IF;
IF out_parent_place_id IS NULL THEN

View File

@@ -248,7 +248,6 @@ LANGUAGE plpgsql STABLE;
-- \param centroid Location of the address.
--
-- \return Place ID of the parent if one was found, NULL otherwise.
-- The returned parent is always a street (rank 26/27 and a way).
CREATE OR REPLACE FUNCTION find_parent_for_address(street TEXT, place TEXT,
partition SMALLINT,
centroid GEOMETRY)
@@ -263,9 +262,7 @@ BEGIN
-- Note that addr:street links can only be indexed, once the street itself is indexed
word_ids := word_ids_from_name(street);
IF word_ids is not null THEN
SELECT place_id
FROM getNearestNamedRoadFeature(partition, centroid, word_ids)
INTO parent_place_id;
parent_place_id := getNearestNamedRoadFeature(partition, centroid, word_ids);
IF parent_place_id is not null THEN
--DEBUG: RAISE WARNING 'Get parent form addr:street: %', parent.place_id;
RETURN parent_place_id;
@@ -277,9 +274,7 @@ BEGIN
IF place is not null THEN
word_ids := word_ids_from_name(place);
IF word_ids is not null THEN
SELECT place_id
FROM getNearestNamedPlaceFeature(partition, centroid, word_ids)
INTO parent_place_id;
parent_place_id := getNearestNamedPlaceFeature(partition, centroid, word_ids);
IF parent_place_id is not null THEN
--DEBUG: RAISE WARNING 'Get parent form addr:place: %', parent.place_id;
RETURN parent_place_id;