0

Google Earth (Web ブラウザー プラグイン、GE API) で、座標を変更してカメラを A 点から B 点に移動しています。それはうまくいきますが、GEは途中で常に高跳びをしているようです.

例 (ge.ALTITUDE_ABSOLUTE 設定を使用)

Point A:  camera.setLatitude(50.1);camera.setLongitude(14.1);camera.setAltitude(1000.0); 
Point B:  camera.setLatitude(51.1);camera.setLongitude(15.1);camera.setAltitude(1000.0); 

(両方のポイントで同じ高度 1000 m に注意してください)。

位置の変更は正常に機能しますが、途中で GE が Eye Alt でズームアウトします。72 kmまで進み、目的の 1000.0 m に戻ります (値はステータス ラインから読み取られ、flyTo 速度は非常に低速に設定されています)。

この高跳びを抑えて、一定の高度にとどまる方法はありますか? これまでのところ、この動作を制御するためのパラメーターは言うまでもなく、この動作の包括的な説明さえ見つけることができません。

(明らかに、「flightsim」タイプの GE アプリケーションはそれを行うことができますが、座標の変更を使用しているのではなく、進行方向/速度データに基づいて移動していると思います)。しかし、一定の高度移動を実現するためだけに、2 つの座標セットを最初に速度/速度に変換し、次に座標に戻さなければならないのは、ややばかげているように思えます。)

すべてのヒントをありがとう。

4

1 に答える 1

1

GE プラグインを使用してスムーズなアニメーションを探している場合は、GE が使用するデフォルトのアルゴリズムでは不十分であることをはっきりとお伝えできます。あなたの最善の策は、flyToSpeed を次のようにテレポートするように設定することです。

ge.getOptions().setFlyToSpeed(ge.SPEED_TELEPORT);

次に、開始点と終了点の間のフレームを補間するか、それらのフレームを事前に定義することにより、トランジション パスを自分で作成します (ヒント: さらに多くの中間点が必要になります)。

これを行う最も簡単な方法は、プラグインが画面の描画を完了するとすぐに発生する frameend イベントにフックし、すぐにカメラの位置を変更することです。これを示す最良の例は次のとおりです。

http://earth-api-samples.googlecode.com/svn/trunk/examples/event-frameend.html

残念ながら、この例は直線で機能するため、カメラのカーブを作成するのははるかに困難です。

もう 1 つの方法は、KML の GE プラグインのネイティブ サポートを確認することです。KML ツアーを読み込み、プラグインを再生すると、プラグインに面倒な作業を行わせることができます。

https://developers.google.com/earth/documentation/kml

于 2012-04-12T18:23:21.187 に答える