您现在的位置是:首页 > 科技 > 正文

MySQL根据经纬度计算距离🧐

发布时间:2025-04-01 19:16:50苗彪爽来源:

导读 在日常开发中,我们经常会遇到基于地理位置的应用场景,比如查找附近的好友或商家📍。假设你手头有一个包含经纬度信息的数据表,如何快速筛...

在日常开发中,我们经常会遇到基于地理位置的应用场景,比如查找附近的好友或商家📍。假设你手头有一个包含经纬度信息的数据表,如何快速筛选出距离某个固定点一定范围内的记录呢?MySQL 提供了一种简便的方法来实现这一需求。

首先,你需要了解地球表面两点之间的大致距离公式,这里常用的是 Haversine 公式✈️。它能根据两点的经纬度计算出球面距离,单位通常是公里或英里。

接下来,通过 SQL 查询实现筛选。例如,假设你的表名为 `locations`,其中存储了 `id`, `latitude`, 和 `longitude` 字段,你可以这样写查询语句:

```sql

SELECT id,

(6371 acos(cos(radians(40)) cos(radians(latitude))

cos(radians(longitude) - radians(114)) + sin(radians(40))

sin(radians(latitude)))) AS distance

FROM locations

HAVING distance < 50;

```

上述查询会返回距离坐标 `(40, 114)`(纬度和经度)50公里以内的所有记录,并且按照距离排序。🚀

通过这种方式,你可以轻松地在数据库层面完成地理距离的筛选任务,为你的应用提供更精准的位置服务。

标签:

上一篇
下一篇