MySQL 通过经纬度查询附近的目标

文章目录

    之前一直使用 Redis 的 GeoHash 来查询附近的目标,但是为了架构的简化,我决定尝试一下 MySQL 来进行查询。

    SELECT name, latitude, longitude, SQRT(
        POW(69.1 * (latitude - [target_lat]), 2) +
        POW(69.1 * ([target_lng] - longitude) * COS(latitude / 57.3), 2)) AS distance
    FROM TableName 
    HAVING distance < [distance]
    ORDER BY distance;
    

    单位为 miles, 英里。

    1 英里=1.6093 千米

    参考

    https://stackoverflow.com/questions/2234204/latitude-longitude-find-nearest-latitude-longitude-complex-sql-or-complex-calc

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式