📌  相关文章
📜  javascript 纬度经度到公里 - Javascript (1)

📅  最后修改于: 2023-12-03 14:42:37.391000             🧑  作者: Mango

Javascript纬度经度到公里

在地理位置应用中,我们可能需要将纬度经度转换成公里数。Javascript可以帮助我们实现这一功能。本文将简要介绍如何使用Javascript计算纬度经度之间的距离。

我们首先需要定义一个地球半径常量,通常为6371千米。

const earthRadius = 6371

然后我们需要两个位置的纬度和经度。我们可以定义两个对象,一个表示起点,一个表示终点。

const pointA = { lat: 40.748817, lng: -73.985428 }
const pointB = { lat: 51.507351, lng: -0.127758 }

接下来我们需要计算这两个位置之间的距离。我们可以使用Haversine公式,该公式计算两个经纬度之间的最短距离。该公式基于球体几何学,所以可以用于地球上不同的位置。这里是Haversine公式:

function getDistance(pointA, pointB) {
  const dLat = toRad(pointA.lat - pointB.lat)
  const dLng = toRad(pointA.lng - pointB.lng)

  const a = Math.sin(dLat / 2) * Math.sin(dLat / 2)
          + Math.cos(toRad(pointA.lat)) * Math.cos(toRad(pointB.lat))
          * Math.sin(dLng / 2) * Math.sin(dLng / 2)
  const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a))

  return earthRadius * c
}

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

上面的 getDistance 函数带有两个地点对象作为参数,计算这两个点之间的距离。函数先计算两点之间的经纬度差,然后使用Haversine公式计算距离。

我们可以使用以下代码调用该函数并输出结果。

const distance = getDistance(pointA, pointB)
console.log(distance)

以上代码将输出起点和终点之间的距离(以千米为单位)。如果对结果进行四舍五入,则可以使用 toFixed

const distance = getDistance(pointA, pointB).toFixed(2)
console.log(distance)

以上代码将输出结果保留2位小数。您可以根据需要自由调整小数位数。

以上是Javascript计算纬度经度之间的距离的简单介绍。在实际应用中,我们可能需要处理更多的位置对象,搜索附近的位置,或者提供路径规划服务。无论如何,Javascript都可以帮助我们轻松地管理地理位置数据。