温馨提示×

js根据经纬度计算两点距离

js
小亿
276
2023-12-19 12:51:58
栏目: 编程语言

可以使用Haversine公式来计算两点之间的距离,该公式可以通过给定两个经纬度来计算它们之间的直线距离。

以下是一个使用JavaScript编写的示例代码:

function calculateDistance(lat1, lon1, lat2, lon2) {
  const R = 6371; // 地球半径(单位:千米)
  
  const dLat = toRadians(lat2 - lat1);
  const dLon = toRadians(lon2 - lon1);
  
  const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
            Math.cos(toRadians(lat1)) * Math.cos(toRadians(lat2)) *
            Math.sin(dLon / 2) * Math.sin(dLon / 2);
  
  const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
  
  const distance = R * c;
  
  return distance;
}

function toRadians(degrees) {
  return degrees * Math.PI / 180;
}

// 例子
const distance = calculateDistance(40.7128, -74.0060, 34.0522, -118.2437);
console.log(distance); // 输出:3934.85(单位:千米)

在上面的代码中,calculateDistance函数接受四个参数:lat1lon1是第一个点的纬度和经度,lat2lon2是第二个点的纬度和经度。该函数首先将经纬度转换为弧度,然后使用Haversine公式计算两点之间的距离,并返回结果。在示例中,我们计算了纽约和洛杉矶之间的距离,并将结果以千米为单位输出到控制台。

0