Postgres, earthdistance - сортировка результатов по расстоянию gps
В настоящее время у меня есть запрос, который выбирает все объекты ближе, чем X км из указанных координат GPS:
$query =
'SELECT * FROM t_activity WHERE
POINT(gps_lat||\',\'||gps_lon) <@>
POINT(
'.$gps_latitude.',
'.$gps_longitude.'
) <= '.$search_range;
Я совсем не разбираюсь в БД, но хотелось бы знать:
Можно ли изменить запрос, чтобы отсортировать его от ближайших к ближайшим результатам?
1 ответ
Решение
Из вашего запроса я предполагаю, что это должно быть
$query =
'SELECT * FROM t_activity WHERE
POINT(gps_lat||\',\'||gps_lon) <@>
POINT(
'.$gps_latitude.',
'.$gps_longitude.'
) <= '.$search_range.'
ORDER BY POINT(gps_lat||\',\'||gps_lon) <@>
POINT(
'.$gps_latitude.',
'.$gps_longitude.'
)
';