需要一些帮助将我的飞行功能从Google地球插件迁移到Cesium。基本上在ge中我创建了一个lookAt,并在下面调用了setAbstractView
import
这是我的Google地球插件代码。在迁移指南之后的铯中我做了:
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地球中的视图不完全相同)。
所以我尝试了这个代码,我也找到了。
// 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地球插件视图。但是,当然,它不会将相机飞到视图中。它只是立即设置视图。
我的问题是,如何利用我的lat,lng,航向,俯仰和范围值将相机飞到铯中的外观?
以下是GE和Cesium的相关API文档,如果您发现它们有用。
GE createLookAt proxyquire
GE Camera Control(搜索“平移到绝对位置”) https://developers.google.com/earth/documentation/reference/interface_g_e_plugin.html#a82f1b3618531a6bfab793b04c76a43e7
Cesium lookAt https://developers.google.com/earth/documentation/camera_control
Cesium flyTo https://cesiumjs.org/Cesium/Build/Documentation/Camera.html#lookAt
我也发现了这一点但不确定如何整合它。如果有人可以提供一个codepen / jsfiddle或类似的东西,将不胜感激! https://cesiumjs.org/Cesium/Build/Documentation/Camera.html#flyTo
答案 0 :(得分:3)
感谢Cesium论坛的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)
});