.

.

sort distance by latitude & longitude in mysql

This query try to execute mysql database hotels 


set @orig_lat=122.4058; set @orig_lon=37.7907;set @dist=10;

SELECT *,
 3956 * 2 * ASIN(SQRT( POWER(SIN((@orig_lat -
abs( 
dest.lat)) * pi()/180 / 2),2) + COS(@orig_lat * pi()/180 ) * COS( 
abs
(dest.lat) *  pi()/180) * POWER(SIN((@orig_lon – dest.lon) *  pi()/180 / 2), 2) ))

as distanceFROM hotels desthaving distance < @distORDER BY distance limit 10;

Lat can be negative!











This is your mysql query data
+----------------+--------+-------+--------+
| hotel_name | lat | lon | dist |
+----------------+--------+-------+--------+
| Hotel Astori.. | 122.41 | 37.79 | 0.0054 |
| Juliana Hote.. | 122.41 | 37.79 | 0.0069 |
| Orchard Gard.. | 122.41 | 37.79 | 0.0345 |
| Orchard Gard.. | 122.41 | 37.79 | 0.0345 |
...+----------------+--------+-------+--------+
10 rows in set(4.10 sec)


EmoticonEmoticon