首页 > 后端开发 > php教程 > 如何在 MySQL 中使用半正矢公式计算大圆距离?

如何在 MySQL 中使用半正矢公式计算大圆距离?

Linda Hamilton
发布: 2024-12-27 09:27:17
原创
289 人浏览过

How Can I Calculate Great Circle Distance in MySQL Using the Haversine Formula?

MySQL:使用半正弦公式计算大圆距离

简介

计算之间的距离球体上的两个地理坐标是地理空间应用中的常见任务。一种广泛使用的方法是半正矢公式,它可以为两点之间的大圆距离提供准确的结果。

在 MySQL 中使用半正矢公式

到在MySQL中实现半正矢公式,我们可以利用以下步骤:

  1. 转换坐标值(纬度)使用 RADIANS() 函数将坐标值和经度)转换为弧度。
  2. 使用 SUBTRACT() 或 ABS() 函数计算坐标之间的差值。
  3. 将步骤 2 中获得的差值平方并然后将它们相加。
  4. 将步骤 3 中的总和乘以地球半径(6371 公里或3959 英里)。
  5. 最后,使用 SQRT() 函数计算步骤 4 结果的平方根。

示例 SQL 查询

这是一个示例 SQL 查询,它实现了半正矢公式来计算两个之间的大圆距离坐标:

SELECT (
    6371 * ACOS(
        COS(RADIANS(37)) * COS(RADIANS(lat)) * 
        COS(RADIANS(lng) - RADIANS(-122)) + 
        SIN(RADIANS(37)) * SIN(RADIANS(lat))
    )
) AS distance 
FROM markers 
WHERE distance < 25
ORDER BY distance
LIMIT 0, 20;
登录后复制

此查询将返回 25 公里半径内距离坐标 (37, -122) 最近的 20 个位置的 id 和计算的距离。

结论

通过MySQL中的Haversine公式,我们可以准确地确定两个地理区域之间的大圆距离坐标。该技术对于需要精确距离计算的基于位置的应用程序特别有用。

以上是如何在 MySQL 中使用半正矢公式计算大圆距离?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板