基于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中文网其他相关文章!