当前位置:   article > 正文

Java 通过两个经纬度, 计算两个地方的距离 单位:km_java百度地图计算两个经纬度的距离

java百度地图计算两个经纬度的距离

 

  1. public class AMapUtils {
  2. // 地球半径 单位km
  3. private static double EARTH_RADIUS = 6371.393;
  4. private static double rad(double d){
  5. return d * Math.PI / 180.0;
  6. }
  7. /**
  8. * 通过两个经纬度, 计算两个地方的距离 单位:km
  9. *
  10. * @param lat1 经度1
  11. * @param lng1 纬度1
  12. * @param lat2 经度2
  13. * @param lng2 纬度2
  14. * @return
  15. */
  16. public static double getDistanceByLngLat(double lat1, double lng1, double lat2, double lng2){
  17. double radLat1 = rad(lat1);
  18. double radLat2 = rad(lat2);
  19. double a = radLat1 - radLat2;
  20. double b = rad(lng1) - rad(lng2);
  21. double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) +
  22. Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
  23. s = s * EARTH_RADIUS;
  24. s = Math.round(s);
  25. return s;
  26. }
  27. public static void main(String[] args) {
  28. String gz = "广州市总统大酒店";
  29. String sz = "深圳市平安大厦 ";
  30. double distance = getDistanceByLngLat(113.33879, 23.133824, 114.108159, 22.561611);
  31. System.out.println(gz + "->" + sz + " 总距离: " + distance + "km");
  32. }
  33. }

广州市总统大酒店->深圳市平安大厦  总距离: 89.0km

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/736615
推荐阅读
相关标签
  

闽ICP备14008679号