From: Sarah Hoffmann Date: Mon, 13 Aug 2018 19:17:49 +0000 (+0200) Subject: reverse on street level should compute distance to object X-Git-Tag: v3.2.0~24 X-Git-Url: https://git.openstreetmap.org/nominatim.git/commitdiff_plain/62b60c70e6eb6b5752df621bf07ef016eb7d994a reverse on street level should compute distance to object The centroid of a building may be far away even when still inside the building. Fixes #1136. --- diff --git a/lib/ReverseGeocode.php b/lib/ReverseGeocode.php index 60f35449..0500df93 100644 --- a/lib/ReverseGeocode.php +++ b/lib/ReverseGeocode.php @@ -247,9 +247,7 @@ class ReverseGeocode // for POI or street level if ($iMaxRank >= 26) { $sSQL = 'select place_id,parent_place_id,rank_address,country_code,'; - $sSQL .= 'CASE WHEN ST_GeometryType(geometry) in (\'ST_Polygon\',\'ST_MultiPolygon\') THEN ST_distance('.$sPointSQL.', centroid)'; - $sSQL .= ' ELSE ST_distance('.$sPointSQL.', geometry) '; - $sSQL .= ' END as distance'; + $sSQL .= ' ST_distance('.$sPointSQL.', geometry) as distance'; $sSQL .= ' FROM '; $sSQL .= ' placex'; $sSQL .= ' WHERE ST_DWithin('.$sPointSQL.', geometry, '.$fSearchDiam.')';