2016-12-12 17 views
0

私のフライング機能をGoogle Earthプラグインからセシウムに移行するための助けが必要です。基本的には、私はlookAtを作成し、以下のようにsetAbstractViewを呼び出します。セシウムJS camera.lookAtに飛ぶ(Google EarthプラグインAPI lookAtから移行する)

var ge = google.earth.createInstance('map3d') 
var lookAt = TVV.mapObject.createLookAt(''); 
lookAt.set(
    21.2765107698755, 
    -157.825362273258, 
    0, 
    ge.ALTITUDE_RELATIVE_TO_GROUND, 
    20.1690873648706, 
    74.9605580474674, 
    764.534479411941 
); 
ge.getView().setAbstractView(lookAt); 

これはGoogle Earthプラグインのコードです。移行ガイドに従ってセシウムで私は:

// fly to code that works with cesium (but a little bit off) 
viewer.camera.flyTo({ 
    destination : Cesium.Cartesian3.fromDegrees(-157.825362273258, 21.2765107698755, 764.534479411941), 
    orientation : { 
     heading : Cesium.Math.toRadians(20.1690873648706), 
     pitch : Cesium.Math.toRadians(74.9605580474674 - 90.0), 
     roll: 0 
    } 
}) 

そのコードはほぼ正しい場所に行く。以前設定した目印を見るには右にドラッグする必要があります(ビューはGoogle Earthのものとまったく同じではありません)。

私はこのコードも試しました。

// code that works with cesium 
var center = Cesium.Cartesian3.fromDegrees(-157.825362273258, 21.2765107698755); 
var heading = Cesium.Math.toRadians(20.1690873648706); 
var pitch = Cesium.Math.toRadians(74.9605580474674); 
var range = 764.534479411941; 
viwer.camera.lookAt(center, new Cesium.HeadingPitchRange(heading, pitch, range)); 

このコードは、以前のGoogle Earthプラグインの表示にかなり近くなっています。しかし、もちろん、カメラを視界に向けて飛ばすことはありません。すぐにビューを設定します。

私の緯度、経度、見出し、ピッチ、および範囲の値を利用してセシウムのlookAtビューにカメラをどのように飛ばすことができますか?

GEやセシウムに関連するAPIドキュメントがあります

GE createLookAt https://developers.google.com/earth/documentation/reference/interface_g_e_plugin.html#a82f1b3618531a6bfab793b04c76a43e7

GEカメラ制御( "絶対位置にパニング" を検索) https://developers.google.com/earth/documentation/camera_control

セシウムルックアット https://cesiumjs.org/Cesium/Build/Documentation/Camera.html#lookAt

セシウムflyTo https://cesiumjs.org/Cesium/Build/Documentation/Camera.html#flyTo

Iまたこれを見つけましたが、それを統合する。もし誰かがcodepen/jsfiddleやそのようなものを提供できればそれは大いに評価されるでしょう! https://groups.google.com/forum/#!topic/cesium-dev/r5rddMUeS80

答えて

1

回答のためにセシウムフォーラムのHannah Pinkosに感謝します。

エンティティを作成し、Googleアースプラグインからのヘディング、ピッチ(チルト)、および範囲の値を使用した後、あなたは、また...オフセットを持つエンティティになぜわからない

var heading = Cesium.Math.toRadians(20.1690873648706g); 
var pitch = Cesium.Math.toRadians(74.9605580474674 - 90); 
var range = 764.534479411941; 

TVV.mapObject.flyTo(entity, { 
offset: new Cesium.HeadingPitchRange(heading, pitch, range) 
}); 
+0

を飛ぶことができます私はdownvoted ???うわー、スタックオーバーフロー。 –