业务举例
新增发布订单的时候 有两个参数 一个是经度 一个是纬度。这两个参数都是用户所在地点的经纬度,现在要做的就是在列表查询中添加 与用户相隔多少米,以及添加距离排序
一、在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(加群时请备注)