如何查找是否在距离纬度,经度一定距离内的点作为MySQL查询

时间:2012-02-25 16:35:38

标签: mysql sql

我在mysql中有一个带有地点(纬度和经度)的表,给定另一个点(P2)和一个距离(D),我需要通过SQL查询找到该距离内的所有地方(D)从另一个点( P2)。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您可以使用以下mysql查询来获取此信息:

SELECT *, 
( 6373 * # Distance from center of earth to surface in     kilometers
acos(cos( radians( LATITUDE_OF_POINT) ) * cos( radians( `latitude` ) ) * 
     cos(radians( `longitude` ) - radians( LONGITUDE_OF_POINT ) ) +
     sin(radians(LATITUDE_OF_POINT)) * sin(radians(`latitude`)) ) )
 `distance` 
 FROM 
     `YOUR_DB_TABLE` 
 HAVING 
     `distance` < YOUR_DESIRED_DISTANCE 
 ORDER BY 
     `distance`;