2017-05-16 6 views
0

Actuellement, j'ai une requête qui sélectionne tous les objets situés à moins de X km de coordinations GPS spécifiées:Postgres, earthdistance - Trier les résultats par distance GPS

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

Im pas qualifiés dans BDs du tout, mais je voudrais à savoir:

Est-il également possible de modifier la requête afin de la trier des résultats les plus proches aux plus éloignés?

Répondre

1

de votre requête, je suppose qu'il devrait être

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