How to get distance of 1degree longitude
緯度(北緯)1度あたりの距離はおよそ111kmですが、経度(東経)1度あたりの距離は緯度によって大きく変わります。経度1度の距離は赤道に近づくほど大きく、遠ざかるほど小さくなります。
GPSセンサーを使ったアプリケーションで距離を測る時に困ってしまいます。
経度1度のおおよその距離(km)は次の式で求められます。
経度1度の距離(km) = cos(緯度×0.017453293) × 111.3194908
※0.017453293=2×π÷360(角度からラジアンを求める係数)
※111.3194908=6378.137×2×π÷360(地球を半径6378.137kmの球として断面の円周を求める係数)
cos関数の括弧の中は緯度(北緯)のラジアンです。経度(東経)ではないのでご注意ください。緯度と経度を間違えると正しく計算できません。
この計算は地球を真円としてしますが、実際の地球は楕円です。
計算結果がどれくらい誤差があるのか、国土地理院の距離と方位角の計算と比較してみます。
緯度(北緯) | 計算値(km) | 国土地理院(km) | 大まかな位置 |
20 | 104.60610 | 104.64693 | 沖ノ鳥島 |
26 | 100.05330 | 100.11747 | 尖閣諸島 |
33 | 93.36038 | 93.45286 | 四国、九州 |
36 | 90.05936 | 90.16329 | 関東、近畿、竹島(島根県) |
40 | 85.27568 | 85.39341 | 東北 |
44 | 80.07654 | 80.20570 | 北海道 |
案の定、赤道から遠ざかるほど誤差が大きくなってます。北緯44度の地点で誤差0.16%です。
とは言え、三角関数1個の計算で距離が求まるので、
実際に使ってみると計算誤差よりセンサーの誤差のほうが大きいくらいです。
distance(km) of 1degree longitude = cos(latitude_degrees * 0.017453293) * 111.3194908
計算にはMicrosoft Excel 2010を使いました。
(※1) 2010年当時、スマートフォンが今のものよりスペックが低くバッテリー容量が少なかった頃の考えです (2016年4月追記)
以上、参考になれば幸いです。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。