mysql - MYSQL中获取距离10km的记录

标签 mysql latitude-longitude

我在 MYSQL 中有表以及纬度和经度值。

我想在当前经纬度的背景下获取 10 公里半径内的用户。

我正在尝试执行以下查询,但它给了我空输出。

SELECT
`id`,
`name`,
ACOS( SIN( RADIANS( `latitude` ) ) * SIN( RADIANS( $fLat ) ) + COS( RADIANS( `latitude` ) )
* COS( RADIANS( $fLat )) * COS( RADIANS( `longitude` ) - RADIANS( $fLon )) ) * 6380 AS `distance`
FROM `users`
WHERE
ACOS( SIN( RADIANS( `latitude` ) ) * SIN( RADIANS( $fLat ) ) + COS( RADIANS( `latitude` ) )
* COS( RADIANS( $fLat )) * COS( RADIANS( `longitude` ) - RADIANS( $fLon )) ) * 6380 < 10
ORDER BY `distance`

其中纬度和经度是列名称,$fLat 和 $fLon 是当前的纬度和经度值。

最佳答案

使用此查询您的问题将得到解决:

SELECT `id`, `name`, `phone`, `latitude`, `longitude`, SQRT( POW(69.1 * (`latitude` - 24.900363), 2) + POW(69.1 * (67.099760 - `longitude`) * COS(`latitude` / 57.3), 2))
AS `distance`
FROM `users` HAVING `distance` < 25
ORDER BY `distance`

关于mysql - MYSQL中获取距离10km的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43693317/

相关文章:

r - 在R中查找两组点(纬度和经度)点之间的最短距离

php - mysql中列值不超过255

java - SQL错误: check the manual that corresponds to your MySQL server version for the right syntax

ios - 绘制经度和​​纬度

python - 在 Python 中以 1000 秒为单位测量两个经纬度点之间的距离

javascript - Google Map 获取动态 LatLng 索引

c# - EF5、SQL Server、经度和纬度

mysql - 我删除了 general_log 表,如何再次创建它?

PHP MYSQL 将搜索查询保存到数据库中

python - 它会返回行数吗?