美文网首页
通过经纬度 计算两点之间的距离

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

作者: 磨陀货_ | 来源:发表于2020-02-27 16:23 被阅读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
    
    • {para.ulongitude} --- 前端传参

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


    排序的话最后 ORDER BY distance ASC

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

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

    相关文章

      网友评论

          本文标题:通过经纬度 计算两点之间的距离

          本文链接:https://www.haomeiwen.com/subject/xgcxhhtx.html