2

与えられた緯度と経度のポイントが 2 つあります。たとえば、座標 (lat1、lon1) と (lat2、lon2) に 2 つの位置 (point_1 と point_2) があるとします。point_2 と同じ緯度ですが、point_2 の東または西に x km 離れた 3 番目のポイントを計算したいと思います。したがって、3 番目のポイントは point_2 と同じ緯度になりますが、距離 x (キロメートル単位) に応じて経度が異なります。つまり、point_3 は (lat2, lon?) になります。これは IDL で書いていますが、他の言語や式でも大歓迎です。

ありがとう

4

2 に答える 2

2

どこでもポイント1を使用していませんよね?ポイントが P = (lat, lon) だとしましょう

このような問題の最初のルール: 絵を描く! 地球の断面から、地球の軸を中心とし、2 点を通る円の半径が であることがわかりますR*cos(lat)。(Rは地球の半径です。ここで地球を楕円体と考える必要がないことを願っています。)xしたがって、長さは の角度 (度単位) を占め360*x/(2*pi*R*cos(lat))ます。次に、必要な新しいポイントは次のとおりです。

P' = ( lat, lon +- 180*x/(2Rcos(lat)) )

西経に -180 から 0 を使用していると仮定しているので、東/西には +/- があります。ラップアラウンドが必要かどうかを確認する必要があります。擬似コード:

if (lon < -180)
   lon += 360
else if (long > 180)
   lon -= 360

楽しみのために: 地球が楕円体であることを気にする場合、円の半径は (R*cos(lat) ではなく):

1/sqrt(tan^2 lat / Rp^2 + 1 / Re^2)

ここで、Rp は極半径、Re は赤道半径です。Rp = Re の場合、これは元の式に還元されます。1 + tan^2 lat = sec^2 lat

于 2009-10-06T15:48:58.930 に答える