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.'
   )
';
Другие вопросы по тегам