首页
学习
活动
专区
工具
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.6K40

    两个经纬度之间的距离计算公式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.4K20

    【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 {

    6.4K20

    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

    3K93

    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 * 中心精度 * @

    10.3K20

    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.4K51
    领券