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

2020-02-27  本文已影响0人  磨陀货_

业务举例

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

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

  <resultMap id="BaseResultMapDis" type="cn.wx........vo.DistanceVo">
        <result column="distance" property="distance" />
  </resultMap>

<select id="rentInPageListByMap" parameterType="map"  resultMap="BaseResultMapDis"></select>

三、距离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

排序的话最后 ORDER BY distance ASC

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

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

上一篇 下一篇

猜你喜欢

热点阅读