1. ホーム
  2. math

[解決済み] 2つのGPS座標間の距離を計算する

2022-03-24 03:57:10

質問

2つのGPS座標(緯度と経度を使用)間の距離を計算するには?

解答方法を教えてください。

2つの座標間の距離を緯度と経度で計算する Javascriptの実装を含む。

西 そして の位置はマイナスです。 分と秒は60分の1なので、S31 30'は-31.50度であることを思い出してください。

を忘れないでください。 度数からラジアンへの変換 . 多くの言語がこの機能を備えています。 あるいはその簡単な計算。 radians = degrees * PI / 180 .

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

function distanceInKmBetweenEarthCoordinates(lat1, lon1, lat2, lon2) {
  var earthRadiusKm = 6371;

  var dLat = degreesToRadians(lat2-lat1);
  var dLon = degreesToRadians(lon2-lon1);

  lat1 = degreesToRadians(lat1);
  lat2 = degreesToRadians(lat2);

  var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
          Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2); 
  var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
  return earthRadiusKm * c;
}

以下は使用例です。

distanceInKmBetweenEarthCoordinates(0,0,0,0)  // Distance between same 
                                              // points should be 0
0

distanceInKmBetweenEarthCoordinates(51.5, 0, 38.8, -77.1) // From London
                                                          // to Arlington
5918.185064088764