mysql中两点之间距离的计算

男娘i 2022-06-02 02:05 991阅读 0赞

1.需求分析

  1. 对于两点之间的距离,在mysql中可以根据两点的经纬度进行计算;接下来笔者分享两种方式通过两点的经纬度计算两点之间的距离

2.实现方案

废话不说,贴代码

①mysql中计算

  1. ROUND(
  2. 6378.138 * 2 * asin(
  3. sqrt(
  4. pow(
  5. sin(
  6. (
  7. shop.shop_latitude * pi() / 180 - #{latitude} * pi() / 180
  8. ) / 2
  9. ),
  10. 2
  11. ) + cos(shop.shop_latitude * pi() / 180) * cos(#{latitude} * pi() / 180) * pow(
  12. sin(
  13. (
  14. shop.shop_longitude * pi() / 180 - #{longitude} * pi() / 180
  15. ) / 2
  16. ),
  17. 2
  18. )
  19. )
  20. )
  21. ,
  22. 2
  23. ) AS shop_distance

②另一种方案:编写方法类计算

  1. public class LocationUtil {
  2. private static double EARTH_RADIUS = 6378.137;
  3. private static double rad(double d) {
  4. return d * Math.PI / 180.0;
  5. }
  6. public static double getDistance(double lat1, double lng1, double lat2, double lng2) {
  7. double radLat1 = rad(lat1);
  8. double radLat2 = rad(lat2);
  9. double a = radLat1 - radLat2;
  10. dou

发表评论

表情:
评论列表 (有 0 条评论,991人围观)

还没有评论,来说两句吧...

相关阅读

    相关 根据经纬度计算之间距离

        经纬度计算有各种计算方式,一般误差也各不相同。个人觉着结合地球半径的计算方法可能靠谱一些,但是具体的计算公式是怎么来的,就不清楚,不知道谁提出的。下面给出一个计算方法和

    相关 mysql之间距离计算

    1.需求分析     对于两点之间的距离,在mysql中可以根据两点的经纬度进行计算;接下来笔者分享两种方式通过两点的经纬度计算两点之间的距离 2.实现方案 废话