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.
This commit is contained in:
Sarah Hoffmann
2018-08-13 21:17:49 +02:00
parent 0394f32438
commit 62b60c70e6

View File

@@ -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.')';