2017-05-16 34 views
0

目前我有一个从指定的GPS配位选中所有比X公里接近对象的查询:的Postgres,earthdistance - 排序结果通过GPS距离

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

我不是熟练的DB可言,但我想要知道:

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

回答

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.' 
    ) 
';