通过经纬度计算两点直线距离的计算方法

编程入门 行业动态 更新时间:2024-10-24 22:24:01

通过<a href=https://www.elefans.com/category/jswz/34/1769711.html style=经纬度计算两点直线距离的计算方法"/>

通过经纬度计算两点直线距离的计算方法

  • 获取两点经纬度的具体的值,计算两地经度和纬度只差,使用Math包内提供的三角函数,进行计算
public final class DistanceUtils {/*** 地球半径,单位 km*/private static final double EARTH_RADIUS = 6378.137;public static void main(String[] args) {double d = getDistance(116.308479, 39.983171, 116.353454, 39.996059);System.out.println(d);}/*** 根据经纬度,计算两点间的距离** @param longitude1 第一个点的经度* @param latitude1  第一个点的纬度* @param longitude2 第二个点的经度* @param latitude2  第二个点的纬度* @return 返回距离 单位千米*/public static double getDistance(double longitude1, double latitude1, double longitude2, double latitude2) {// 纬度double lat1 = Math.toRadians(latitude1);double lat2 = Math.toRadians(latitude2);// 经度double lng1 = Math.toRadians(longitude1);double lng2 = Math.toRadians(longitude2);// 纬度之差double a = lat1 - lat2;// 经度之差double b = lng1 - lng2;// 计算两点距离的公式double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +Math.cos(lat1) * Math.cos(lat2) * Math.pow(Math.sin(b / 2), 2)));// 弧长乘地球半径, 返回单位: 千米s = s * EARTH_RADIUS;return s;}
}

数学公式
球面距离公式是计算球面上两点间距离的公式。设所求点A ,纬度角β1 ,经度角α1 ;点B ,纬度角β2 ,经度角α2。则距离S=R·arc cos[cosβ1cosβ2cos(α1-α2)+sinβ1sinβ2],其中R为球体半径。


其中,用到的函数分别是

  • Math.pow(x,y)        //这个函数是求x的y次方
  • Math.toRadians     //将一个角度测量的角度转换成以弧度表示的近似角度
  • Math.sin            //正弦函数
  • Math.cos           //余弦函数
  • Math.sqrt           //求平方根函数
  • Math.asin          //反正弦函数

以上,是笔者粗浅的理解和实现
当然,通过三角函数变换,计算方法的实现还有其他写法,欢迎大家补充,

更多推荐

通过经纬度计算两点直线距离的计算方法

本文发布于:2023-06-29 16:55:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/947910.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:经纬度   计算方法   直线   两点   距离

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!