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

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

Patricia Arquette
Patricia Arquette原创
2024-12-20 10:23:17863浏览

How Can I Calculate Great Circle Distance Using MySQL's Haversine Formula?

基于MySQL的大圆距离计算(半正矢公式)

计算地球表面上两个地理点之间的大圆距离,可以采用半正矢公式。该公式需要两个点的经度和纬度。

在本例中,您的目标是完全在 MySQL 中执行此计算,从而无需使用 PHP。要实现此目的,请考虑以下受 Google 代码常见问题解答启发的 SQL 语句:

SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin(radians(lat)) ) ) AS distance
FROM markers
HAVING distance < 25
ORDER BY distance
LIMIT 0, 20;

此语句假设起点为纬度 37,经度为 -122,并检索半径 25 英里内最近的 20 个位置。它利用半正矢公式计算每个点与起点之间的距离。通过相应地修改纬度和经度值,您可以根据您的特定要求定制查询。

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn