1

私は、航空機の飛行経路を Google マップにプロットするシミュレーターに取り組んでいます。

シミュレーターは、緯度が -90 度から +90 度まで、経度が -180 度から +180 度までしか定義されていないことを認識していません。この結果、飛行経路にはマップの境界を超えるポイントが含まれる場合があります。経度を超えても問題はありませんが、プロットは正しく行われます (経度 x と x+360 の点は同じです) が、緯度が問題になります。

ポイントを正しい境界線の間に保持し、正しくプロットするよう Google マップに指示する方法はありますか?

それ以外の場合、そうする機能をどこで見つけることができるかについてのアイデアはありますか?

4

2 に答える 2

2

Longitude, latitude and elevation are a bad coordinate system for a flight simulator, because the mapping presents singularities i.e. there are points infinitely close on the earth that have very different coordinates. For example where you're close to one of the poles longitude variation speed can become arbitrarily big compared to airplane speed. When standing exactly on the pole the longitude doesn't even make sense.

A better solution is to use an XYZ coordinate system for the simulator and only convert to longitude/latitude and elevation for plotting. If you can approximate the earth to a sphere for your use case the computation of this transformation is trivial... otherwise things can get much more complex depending on how accurate you want it to be.

That said it's still possible to give "a" meaning to a point with latitude slightly outside the range -90...90 by extending it over the pole...

if latitude < -90:
    latitude = -180 - latitude
    longitude = longitude + 180
if latitude > 90:
    latitude = 180 - latitude
    longitude = longitude + 180

but using this coordinate system for navigating is a very bad idea (the same point in space can have multiple triplets of coordinates).

于 2012-12-08T20:46:38.833 に答える
1

シミュレーターが緯度の最大値が90度であることを認識していない場合、それは壊れており、修正する必要があります。Googleマップは、緯度と経度の有効な値/可能な値に対して正しく機能します。

于 2012-12-08T20:34:01.373 に答える