math - algorithm - 緯度経度の2点間の距離を計算しますか?(ハヴァージンの公式)

algorithm / maps / latitude-longitude / haversine

緯度経度で指定された2点間の距離を計算するには?

Zero



Answer #1

地球の外周は、赤道上では40,000Km、グリニッジ(または任意の経度)サイクルでは約37,000Kmです。したがって

pythagoras = function (lat1, lon1, lat2, lon2) {
   function sqr(x) {return x * x;}
   function cosDeg(x) {return Math.cos(x * Math.PI / 180.0);}

   var earthCyclePerimeter = 40000000.0 * cosDeg((lat1 + lat2) / 2.0);
   var dx = (lon1 - lon2) * earthCyclePerimeter / 360.0;
   var dy = 37000000.0 * (lat1 - lat2) / 360.0;

   return Math.sqrt(sqr(dx) + sqr(dy));
};