我在mysql中有一个带有地点(纬度和经度)的表,给定另一个点(P2)和一个距离(D),我需要通过SQL查询找到该距离内的所有地方(D)从另一个点( P2)。
答案 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`;