先不说其他的,直接上SQL语句吧:
convert((6371 * acos(cos(radians(#{latitude})) * cos(radians(SUBSTRING_INDEX(a.coords,',',1))) * cos(radians(SUBSTRING_INDEX(SUBSTRING_INDEX(a.coords,';',1),',',-1)) - radians(#{longitude}))
+ sin(radians(#{latitude})) * sin(radians(SUBSTRING_INDEX(a.coords,',',1))))),decimal(10,1)) AS "distance"
说明:计算的是两点之间的直线距离
其中 :
latitude------维度,
longitude-------精度,
coords是数据库存储货源的一个起点和终点的经纬度
数据存储形式如下图:
经纬度:如上图所示的值第一列,34.75343400296841为维度,113.63141597343925为经度。