mysql中两点之间距离的计算
1.需求分析
对于两点之间的距离,在mysql中可以根据两点的经纬度进行计算;接下来笔者分享两种方式通过两点的经纬度计算两点之间的距离
2.实现方案
废话不说,贴代码
①mysql中计算
ROUND(
6378.138 * 2 * asin(
sqrt(
pow(
sin(
(
shop.shop_latitude * pi() / 180 - #{latitude} * pi() / 180
) / 2
),
2
) + cos(shop.shop_latitude * pi() / 180) * cos(#{latitude} * pi() / 180) * pow(
sin(
(
shop.shop_longitude * pi() / 180 - #{longitude} * pi() / 180
) / 2
),
2
)
)
)
,
2
) AS shop_distance
②另一种方案:编写方法类计算
public class LocationUtil {
private static double EARTH_RADIUS = 6378.137;
private static double rad(double d) {
return d * Math.PI / 180.0;
}
public static double getDistance(double lat1, double lng1, double lat2, double lng2) {
double radLat1 = rad(lat1);
double radLat2 = rad(lat2);
double a = radLat1 - radLat2;
dou
还没有评论,来说两句吧...