X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/dcab7a19e540ff22a49e8322d775f13657edc3bd..795153b213121c6ec8cc725451d4f20c307b4174:/lib/ReverseGeocode.php diff --git a/lib/ReverseGeocode.php b/lib/ReverseGeocode.php index b3899e3b..1de0893c 100644 --- a/lib/ReverseGeocode.php +++ b/lib/ReverseGeocode.php @@ -57,7 +57,7 @@ class ReverseGeocode $sSQL .= ' , ST_Distance(linegeo,'.$sPointSQL.') as distance'; $sSQL .= ' FROM location_property_osmline'; $sSQL .= ' WHERE ST_DWithin('.$sPointSQL.', linegeo, '.$fSearchDiam.')'; - $sSQL .= ' and indexed_status = 0 '; + $sSQL .= ' and indexed_status = 0 and startnumber is not NULL '; $sSQL .= ' ORDER BY ST_distance('.$sPointSQL.', linegeo) ASC limit 1'; return chksql( @@ -118,7 +118,7 @@ class ReverseGeocode $iMaxRank = 26; } - $sSQL = 'select place_id,parent_place_id,rank_search,calculated_country_code'; + $sSQL = 'select place_id,parent_place_id,rank_search,country_code'; $sSQL .= ' FROM placex'; $sSQL .= ' WHERE ST_DWithin('.$sPointSQL.', geometry, '.$fSearchDiam.')'; $sSQL .= ' and rank_search != 28 and rank_search >= '.$iMaxRank; @@ -135,7 +135,7 @@ class ReverseGeocode ); $iPlaceID = $aPlace['place_id']; $iParentPlaceID = $aPlace['parent_place_id']; - $bIsInUnitedStates = ($aPlace['calculated_country_code'] == 'us'); + $bIsInUnitedStates = ($aPlace['country_code'] == 'us'); } // If a house was found make sure there isn't an interpolation line @@ -153,7 +153,7 @@ class ReverseGeocode // look for an interpolation that is closer $aPlaceLine = $this->lookupInterpolation($sPointSQL, $fDistancePlacex); - if ($aPlaceLine) { + if ($aPlaceLine && (float) $aPlaceLine['distance'] < (float) $fDistancePlacex) { // interpolation is closer to point than placex house $bPlaceIsLine = true; $aPlace = $aPlaceLine;