通过经纬度 计算两点之间的距离

业务举例

新增发布订单的时候 有两个参数 一个是经度 一个是纬度。这两个参数都是用户所在地点的经纬度,现在要做的就是在列表查询中添加 与用户相隔多少米,以及添加距离排序

一、在xml(MYSQL)中新加映射 并引用

  
        
  


三、距离SQL

ROUND(
        6378.138 * 2 * ASIN(
        SQRT(
        POW(
        SIN(

        (
        #{para.ulatitude} * PI() / 180 - latitude * PI() / 180
        ) / 2
        ),
        2
        ) + COS(#{para.ulatitude} * PI() / 180) * COS(latitude * PI() / 180) * POW(
        SIN(
        (
        #{para.ulongitude} * PI() / 180 - longitude * PI() / 180
        ) / 2
        ),
        2
        )
        )
        ) * 1000
        ) AS distance
  • {para.ulongitude} --- 前端传参

  • {para.ulatitude} --- 前端传参


排序的话最后 ORDER BY distance ASC

          java育儿园里的小学生“磨陀货”友情提供!!!
          请大家尊重原创,如要转载,请注明出处:
          转载自:https://www.jianshu.com/p/0b2ba1364796,谢谢!!

          有任何疑问,欢迎加入Java交流群458443587(加群时请备注)

你可能感兴趣的:(通过经纬度 计算两点之间的距离)