From f7258e314d3592ade68c6a34dec319d67354b211 Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Fri, 27 Oct 2017 20:06:53 +0200 Subject: [PATCH] ignore linked places for reverse geocoding Fixes #838. --- lib/ReverseGeocode.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/ReverseGeocode.php b/lib/ReverseGeocode.php index 0bcd3d33..a7bfad63 100644 --- a/lib/ReverseGeocode.php +++ b/lib/ReverseGeocode.php @@ -134,7 +134,7 @@ class ReverseGeocode $sSQL .= ' rank_search != 28 and rank_search >= '.$iMaxRank; $sSQL .= ' and (name is not null or housenumber is not null)'; $sSQL .= ' and class not in (\'waterway\',\'railway\',\'tunnel\',\'bridge\',\'man_made\')'; - $sSQL .= ' and indexed_status = 0 '; + $sSQL .= ' and indexed_status = 0 and linked_place_id is null'; $sSQL .= ' and (ST_GeometryType(geometry) not in (\'ST_Polygon\',\'ST_MultiPolygon\') '; $sSQL .= ' OR ST_DWithin('.$sPointSQL.', centroid, '.$fSearchDiam.'))'; $sSQL .= ' ORDER BY distance ASC limit 1'; @@ -205,9 +205,9 @@ class ReverseGeocode } else { $iPlaceID = $oResult->iId; } - $sSQL = 'select address_place_id'; - $sSQL .= ' FROM place_addressline'; - $sSQL .= " WHERE place_id = $iPlaceID"; + $sSQL = 'select coalesce(p.linked_place_id, a.address_place_id)'; + $sSQL .= ' FROM place_addressline a, placex p'; + $sSQL .= " WHERE a.place_id = $iPlaceID and a.place_id = p.place_id"; $sSQL .= " ORDER BY abs(cached_rank_address - $iMaxRank) asc,cached_rank_address desc,isaddress desc,distance desc"; $sSQL .= ' LIMIT 1'; $iPlaceID = chksql($this->oDB->getOne($sSQL), 'Could not get parent for place.'); -- 2.39.5