1. 程式人生 > >cesium(相機)

cesium(相機)

而且 enter height tin cart range setview ora 時間

本文示列 相機的幾種方式,及區別。

//創建viewer

var viewer = new Cesium.Viewer(‘cesiumContainer‘);

//第一種:viewer.zoomTo

viewer.zoomTo(greenCorridor,{
        heading:Cesium.Math.toRadians(0),
        pitch:Cesium.Math.toRadians(-30),
        range:100,//距離中心的距離(以米為單位)
})

//第二中:viewer.flyTo

viewer.flyTo(greenCorridor,{
        duration:
2.0, //飛行持續時間 maximumHeight:10000, //飛機中最大高度 offset:new Cesium.HeadingPitchRange(Cesium.Math.toRadians(0), Cesium.Math.toRadians(-90), Cesium.Math.toRadians(0)) })

//第三種:viewer.camera.flyTo

 viewer.camera.flyTo({
     destination: Cesium.Cartesian3.fromDegrees(-90, 35, 5000000), //攝像機的最終位置
     duration: 8,                           //
飛行所用時間 maximumHeight: 20000, //飛行高峰時的最大高度。 pitchAdjustHeight: 1500, //如果攝像機的飛行高於此值,請調整俯仰航向以降低俯仰,並將地球保持在視野中 orientation: { heading: Cesium.Math.toRadians(0), pitch: Cesium.Math.toRadians(90), roll: 0.0 } });

//四、 viewer.camera.lookAt

var center = Cesium.Cartesian3.fromDegrees(-98.0, 40.0)//目標位置
viewer.camera.lookAt(center, new Cesium.Cartesian3(0.0, -4790000.0, 3930000.0));//三個數字分別是:方位角,傾角,俯角

//五、viewer.camera.setView

viewer.camera.setView({
    destination : Cesium.Cartesian3.fromDegrees(-98.0, 40.0, 5000000),//相機位置
    orientation: {
        heading : Cesium.Math.toRadians(0), 
        pitch : Cesium.Math.toRadians(-90), 
        roll : 0.0                          
    }
});

區別:
viewer.zoomTo(): 方法可以立即定位到某個位置
viewer.flyTo(): flyTo則是通過動畫方式轉移到某個位置 可以設置動畫時間
viewer.camera.flyTo(): 也是通過動畫的方式轉移到某個位置, 參數比viewer.flyTo要多
viewer.camera.lookAt(): 立即定位到某個位置, 而且相機鎖住此位置。

註:
* heading:方位角
* pitch:傾角
* roll:旋轉角
* range:距離中心的距離(以米為單位)

cesium(相機)