楕円体の2つの座標間の距離を見つける?


18

緯度と経度の2つのセットがあります。

地球が完全な楕円体(0.0167の離心率)であると仮定した場合、2つの場所の間の距離を見つけるにはどうすればよいですか?

回答:


16

チェックアウトすることをお勧めします:
球状:http : //www.movable-type.co.uk/scripts/latlong.html
Great-Circle:http : //www.movable-type.co.uk/scripts/gis-faq -5.1.html


1
そのページの式は、偏心を無視しているように見えます。彼らは地球が楕円体ではなく球体であると仮定しています。
ジョンブリングハースト

以前は、いくつかの緯度経度のセット間の距離が既知のライブラリを常に使用してから、平均化を実行して未知のポイントの距離を計算していました。これについて何人かの人々に尋ねます。
Wallbasher

ああ、2番目のリンクには正しい式があるようです。ありがとう!
ジョンブリングハースト

1
@Wallbasherにご回答いただきありがとうございます。ただし、答えがそれ自体で成り立つ場合は最善です。関連するフォーミュラをあなたの回答とともに投稿することも大いに役立ちます。
RK

7

あなたはあなたの2つの緯度と経度を知っている、と言うことができます

それぞれのデカルト座標を計算できます:

xa = (Cos(thisLat)) * (Cos(thisLong));
ya = (Cos(thisLat)) * (Sin(thisLong));
za = (Sin(thisLat));

xb = (Cos(otherLat)) * (Cos(otherLong));
yb = (Cos(otherLat)) * (Sin(otherLong));
zb = (Sin(otherLat));

次に、2つの間の大円距離を計算します。

MeanRadius * Acos(xa * xb + ya * yb + za * zb);

この単純化されたアプローチにより、x、y、およびz値の事前計算が可能になり、効率的な「xマイル内のポイント」クエリのためにデータベースに保存できます。

もちろん、これは完全な球体を想定しており、地球は完全な楕円体でさえないため、精度は数メートルになります。


1
また、「完全な球体」を指摘するつもりでした。この方法では、地球上のどこにいるかに応じてさまざまな精度が得られることに注意してください。
TroutSlayer

@TrotuSlayerは、ほとんどのアプリケーションで一般に十分であり、速度と精度の間には常にトレードオフがあります。より正確にする必要がある場合は、トランドルホイールを外すか、指定されたエリアで地球が平らであり、2Dの距離で十分であるという仮定に頼るときです。
ローランドショー

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.