[sql] 利用坐標找出指定距離內的記錄


SELECT *, (3959 * acos( cos( radians() ) * cos( radians() ) * cos( radians() - radians() ) + sin( radians() ) * sin( radians( ) ) ) ) AS distance 
FROM markers HAVING distance <=  距離
ORDER BY distance;

3359 是常數(Constance), 即是地球的半徑, 因為它以坐標作單位, 並靠這個換算距離. 若用公里(km) 作單位的話, 只須將這個常數轉為6371 便可.


留言

這個網誌中的熱門文章

名言-神劍闖江湖

[VPN] windows 7上用bat 自動連接PPTP VPN 並設定ROUTE

[php] 裁切圖片並縮小至指定大小