我使用這個公式來計算,其中有以十進制格式緯度和經度領域我(我的)SQL數據庫條目之間的距離:SQL查詢來計算座標接近
6371 * ACOS(SIN(RADIANS(%lat1%)) * SIN(RADIANS(%lat2%)) + COS(RADIANS(%lat1%)) * COS(RADIANS(%lat2%)) * COS(RADIANS(%lon2%) - RADIANS(%lon1%)))
代%LAT1%和%lat2%,可以在WHERE子句中使用它來查找另一個條目的某個半徑內的條目,在ORDER BY子句中使用它和LIMIT一起將找到最近的x條目等。
我在寫這個主要是爲了我自己,但總是歡迎改進。 :)
注意:正如下面的Valerion所述,它以公里計算。替代6371 appropriate alternative number使用米,英里等
我發現它是「大圓距離公式」,但看着它,是的,它可能是。 – deceze 2008-09-18 09:24:19