Postgres,earthdistance - 按gps距离排序结果

时间:2017-05-16 11:45:58

标签: sql postgresql gps distance earthdistance

目前,我有一个查询,可以选择距指定GPS协调距离小于X km的所有对象:

$query = 
  'SELECT * FROM t_activity WHERE
   POINT(gps_lat||\',\'||gps_lon) <@> 
   POINT(
     '.$gps_latitude.', 
     '.$gps_longitude.'
   ) <= '.$search_range;

我根本不熟悉数据库,但我想知道:

是否也可以修改查询以便从最接近的结果到最近的结果进行排序?

1 个答案:

答案 0 :(得分: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.'
   )
';