## 如何提高 MySQL 中基于半径的位置搜索的准确性?

Barbara Streisand
发布: 2024-10-28 04:58:01
原创
549 人浏览过

## How to Improve the Accuracy of Radius-Based Location Searches in MySQL?

提高基于半径搜索的 MySQL 经度和纬度查询的准确性

在 mySQL 中执行基于半径的位置搜索时,一个常见问题正在获得明显偏离指定半径的结果。这种差异通常是由距离计算公式中的错误引起的,从而导致距离测量不准确。

要解决此问题,请考虑使用稍微不同的距离计算方法的细化查询:

SELECT
    `id`,
    (
        6371 *
        acos(
            cos( radians( :lat ) ) *
            cos( radians( `lat` ) ) *
            cos(
                radians( `long` ) - radians( :long )
            ) +
            sin(radians(:lat)) *
            sin(radians(`lat`))
        )
    ) `distance`
FROM
    `location`
HAVING
    `distance` < :distance
ORDER BY
    `distance`
LIMIT
    25
登录后复制

在此查询中:

  • :lat 和 :long 表示用户定义的坐标。
  • lat 和 long 表示存储在数据库中的坐标。
  • :距离对应于指定的半径,以英里为单位(如果将 3959 替换为 6371,则为公里)。

此公式基于半正弦公式计算距离,该公式提供比使用的公式更准确的结果在你原来的查询中。通过合并此修订后的公式,您可以优化半径搜索功能,确保返回的结果符合指定的半径范围。

以上是## 如何提高 MySQL 中基于半径的位置搜索的准确性?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!