- $sSQL .= ' FROM placex';
- $sSQL .= ' WHERE ST_DWithin('.$sPointSQL.', geometry, '.$fSearchDiam.')';
- $sSQL .= ' and rank_search != 28 and rank_search >= '.$iMaxRank;
+ $sSQL .= ' FROM ';
+ if ($fSearchDiam < 0.01) {
+ $sSQL .= ' placex';
+ $sSQL .= ' WHERE ST_DWithin('.$sPointSQL.', geometry, '.$fSearchDiam.')';
+ $sSQL .= ' AND';
+ } else {
+ $sSQL .= ' (SELECT * FROM placex ';
+ $sSQL .= ' WHERE ST_DWithin('.$sPointSQL.', geometry, '.$fSearchDiam.')';
+ $sSQL .= ' LIMIT 1000) as p WHERE';
+ }
+ $sSQL .= ' rank_search != 28 and rank_search >= '.$iMaxRank;