mysql 计算两点之间距离
时间: 2023-06-29 13:19:37 浏览: 119
MySQL计算两个坐标之间的直线距离函数
MySQL 可以通过以下公式计算两点之间的距离:
```
SELECT
ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN((lat1 * PI() / 180 - lat2 * PI() / 180) / 2), 2) + COS(lat1 * PI() / 180) * COS(lat2 * PI() / 180) * POW(SIN((lng1 * PI() / 180 - lng2 * PI() / 180) / 2), 2))), 2) AS distance
FROM
table_name
WHERE
...
```
其中,`lat1`、`lng1` 和 `lat2`、`lng2` 分别表示两个经纬度点的纬度和经度,`table_name` 是要查询的表名,`...` 是查询条件。
公式中的 `6378.138` 是地球半径的公里数,可以根据实际需要进行修改。`ASIN` 表示反正弦函数,`SIN` 和 `COS` 表示正弦和余弦函数,`POW` 表示幂函数,`PI` 表示圆周率。`ROUND` 函数用于将计算结果保留两位小数。
需要注意的是,这个公式是基于球体模型的计算,对于近地面的计算结果可能会有一定误差。
阅读全文