2017-05-16 66 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.' 
    ) 
';