我使用这个公式来计算,其中有以十进制格式纬度和经度领域我(我的)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