首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何计算两对坐标之间的距离(纬度/经度)

计算两对坐标之间的距离(纬度/经度)可以使用地球表面上的两点之间的大圆距离公式,也称为Haversine公式。该公式基于球面三角学,可以计算出两个坐标点之间的直线距离。

以下是计算两对坐标之间距离的步骤:

  1. 获取两个坐标点的纬度和经度值。
  2. 将纬度和经度值转换为弧度。因为Haversine公式使用弧度而不是角度进行计算。
    • 纬度的弧度 = 纬度 * π / 180
    • 经度的弧度 = 经度 * π / 180 这里的π是圆周率,约等于3.14159。
  • 使用Haversine公式计算两个坐标点之间的距离:
    • a = sin²((纬度差值) / 2) + cos(纬度1) * cos(纬度2) * sin²((经度差值) / 2)
    • c = 2 * atan2(√a, √(1-a))
    • 距离 = 地球半径 * c 这里的地球半径可以根据需要选择不同的单位,例如使用千米、英里或海里作为单位。
    • 地球半径(千米)= 6371
    • 地球半径(英里)= 3959
    • 地球半径(海里)= 3440

下面是一个示例代码,使用JavaScript语言计算两个坐标点之间的距离(单位为千米):

代码语言:txt
复制
function calculateDistance(lat1, lon1, lat2, lon2) {
  const earthRadius = 6371; // 地球半径(千米)

  const toRadians = (degrees) => {
    return degrees * Math.PI / 180;
  };

  const deltaLat = toRadians(lat2 - lat1);
  const deltaLon = toRadians(lon2 - lon1);

  const a = Math.sin(deltaLat / 2) * Math.sin(deltaLat / 2) +
            Math.cos(toRadians(lat1)) * Math.cos(toRadians(lat2)) *
            Math.sin(deltaLon / 2) * Math.sin(deltaLon / 2);
  const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));

  const distance = earthRadius * c;
  return distance;
}

// 示例使用
const distance = calculateDistance(40.7128, -74.0060, 34.0522, -118.2437);
console.log(distance); // 输出结果:3938.3893795639725

这段代码使用了JavaScript语言,通过传入四个参数(两个坐标点的纬度和经度)来计算两个坐标点之间的距离。最后的结果以千米为单位。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯位置服务:提供了一系列地理位置相关的API,包括计算两个坐标点之间的距离。
    • 产品介绍链接:https://cloud.tencent.com/product/tianditu
  • 腾讯云地理位置服务:提供了一系列地理位置相关的API和工具,包括地理编码、逆地理编码、路径规划等功能。
    • 产品介绍链接:https://cloud.tencent.com/product/lbs
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 如何计算纬度之间距离_根据经纬度距离

    大家好,又见面了,我是你们朋友全栈君 用php计算两个指定纬度地点之间距离,代码: /** *求两个已知经纬度之间距离,单位为米 *@param lng1,lng2 经度 *@param lat1...,lat2 纬度 *@return float 距离,单位米 *@edit www.jbxue.com **/ function getdistance(lng1,lat1,lng2,lat2){ /...> 举例,“上海市延安西路2055弄”到“上海市静安寺”距离: 上海市延安西路2055弄 经纬度:31.2014966,121.40233369999998 上海市静安寺 经纬度:31.22323799999999,121.44552099999998...几乎接近真实距离了,看来用php计算两个经纬度地点之间距离,还是靠谱,呵呵。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    4.5K40

    两个经纬度之间距离计算公式excel_excel经纬度坐标计算距离

    大家好,又见面了,我是你们朋友全栈君。...已知AB列分别为起点经纬度,CD列分别终点经纬度,根据两点经纬度计算距离 在E2单元格里输入: =6371004*ACOS(1-(POWER((SIN((90-B2)*PI()/180)COS...SIN((90-D2)*PI()/180)SIN(C2PI()/180)),2)+POWER((COS((90-B2)*PI()/180)-COS((90-D2)*PI()/180)),2))/2) 计算出第二行两点距离...: 点击E2单元格,将鼠标移动到右下角小正方形点上,此时鼠标变为+号,双击鼠标,计算出所有数据距离: 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    3.1K20

    php如何计算坐标之间距离

    本文实例为大家分享了php计算坐标之间距离实现代码,供大家参考,具体内容如下 地球上两个点之间,可近可远。 当比较近时候,可以忽略球面因素,当做是一个平面,这样就有了两种计算方法。...cos($theta)); if ($dist < 0 ) { $dist += M_PI; } return $dist = $dist * $radius; } 小编再为大家分享一段php坐标之间距离求解代码...php define('EARTH_RADIUS', 6378.137);//地球半径 define('PI', 3.1415926); /** * 计算两组经纬度坐标 之间距离...* params :lat1 纬度1; lng1 经度1; lat2 纬度2; lng2 经度2; len_type (1:m or 2:km); * return m or km */ function.../米 以上就是本文全部内容,希望对大家学习有所帮助。

    2K21

    【GIS - 地理信息系统】经纬度计算 ( 经度纬度概念 | 地球周长计算 | 地球经线周长计算 | 经纬度相关计算 | 经纬度坐标距离计算公式 | 经纬度与实际距离换算 | 相关代码实现 )

    一、经度纬度概念 经度 Longitude , 本初子午线 位置 为 0 度经线 , 相当于水平 x 轴 坐标 , 经度取值范围 -180 度 ~ +180 度 ; 纬度 Latitude , 相当于...北极 位置 , 纬度为 90 度 , \cos 90 = 0 ; 三、经纬度相关计算 ---- 1、经纬度坐标距离计算公式 经纬度坐标距离计算公式 : S = 2 \arcsin \sqrt{...1 米对应经度 经度 ( 东西方向 ) 上 1 米 , 对应度数是由当前纬度决定 ; 不同 纬度 上 , 纬线 ( 东西方向 ) 周长不一样 ; 赤道上 1 米对应经度计算 : 赤道上 纬度为..., 对应度数是固定 ; 值为 360° / 40030173 = 0.00000899° 3、实际距离与经纬度换算 1 度经度对应东西距离 1 度经度对应东西距离 : 赤道位置公式为 : \...111194.926 644 558 737 \times \cos纬度 米 四、相关代码实现 ---- 1、计算两个经纬度之间距离 public class LocationUtils {

    5.3K20

    java计算两个经纬度之间距离

    实现方式还是比较简单,首先用户在APP上开启定位权限,将自己纬度都存储到数据库,然后以此经纬度为基准,以特定距离为半径,查找此半径内所有用户。...那么,如何java如何计算两个经纬度之间距离呢?有两种方法,误差都在接受范围之内。 1、基于googleMap中算法得到两经纬度之间距离,计算精度与谷歌地图距离精度差不多。...* @param lat1 第一点纬度 * @param lon2 第二点精度 * @param lat2 第二点纬度 * @return 返回距离,单位...s = s * EARTH_RADIUS; s = Math.round(s * 10000) / 10000; return s; } 2、计算中心经纬度与目标经纬度距离...(米) /** * 计算中心经纬度与目标经纬度距离(米) * * @param centerLon * 中心精度 * @param

    2.9K93

    java计算两个经纬度之间距离

    实现方式还是比较简单,首先用户在APP上开启定位权限,将自己纬度都存储到数据库,然后以此经纬度为基准,以特定距离为半径,查找此半径内所有用户。...那么,如何java如何计算两个经纬度之间距离呢?有两种方法,误差都在接受范围之内。 1、基于googleMap中算法得到两经纬度之间距离,计算精度与谷歌地图距离精度差不多。...* @param lat1 第一点纬度 * @param lon2 第二点精度 * @param lat2 第二点纬度 * @return 返回距离,单位...s = s * EARTH_RADIUS; s = Math.round(s * 10000) / 10000; return s; } 2、计算中心经纬度与目标经纬度距离...(米) /** * 计算中心经纬度与目标经纬度距离(米) * * @param centerLon * 中心精度 * @

    9.8K20

    Python学习——库Geopy用法之经纬度坐标转换、经纬度距离计算

    Geopy作为一个专注于地理位置处理包,能实现地理编码、逆地理编码功能;此外,还可以根据两个经纬度坐标计算在地球上最短距离。 2. 具体用法 2.1....,纬度在前,经度在后 print(location.address) 结果: 1#, 西二旗北路, 东北旺村, 海淀区, 北京市, 102208, 中国 2.3 根据两个经纬度坐标计算距离 Geopy距离计算功能包含在...大圆算法将地球简化为一个圆球,其计算距离是球面上过两点大圆距离。 大地线使用目前国际通用方法,用旋转椭球面表示地球,其计算是两点在椭球面上最短距离。...同样返回distance对象 gc.km 1057.0946827378225 print(f'{(dist.km - gc.km) / dist.km:%}') 0.129416% #哈尔滨到北京大圆与大地线距离之间有...13%差异 内容参考: (24条消息) Python 库 Geopy 用法,经纬度坐标转换、经纬度距离计算_小张Python-CSDN博客_geopy 使用 geopy 处理地址和坐标数据 | GNSS

    5.1K51
    领券