Cesium代码解析
一、镜头初始设置
tileset.readyPromise.then(
function(tileset)
{
viewer.scene.primitives.add(tileset);
viewer.zoomTo(
tileset, new Cesium.HeadingPitchRange(1, -0.6, tileset.boundingSphere.radius * 2.5));
})
.otherwise(function(error) {
console.log(error);
});
zoomTo(target, offset)是Viewer的方法,可以异步设置摄像头以查看提供的实体,实体或数据源。
如果数据源仍处于加载过程中,或者仍然可以加载可视化,此方法在执行缩放之前等待数据准备就绪。
偏移是在以边界球体的中心为中心的局部东 - 北 - 上参考系中的航向/俯仰/范围。
航向和俯仰角在本地东 - 北 - 向上参考系中定义。
航向是从y轴开始朝向x轴增加的角度。
间距是从xy平面的旋转。正俯仰角在平面上方。负俯仰角在平面下方。
范围是距离中心的距离。如果范围为零,则将计算范围,使得整个边界球体可见。
在2D中,必须有自上而下的视图。相机将放在目标上方向下看。目标上方的高度将是范围。标题将根据偏移确定。如果无法根据偏移确定航向,则航向将为北。
其中target传递的类型为Entity | Array.entity | EntityCollection | DataSource | ImageryLayer | Cesium3DTileset | TimeDynamicPointCloud|Promise.Entity|Array.Entity|EntityCollection|DataSource|ImageryLayer|Cesium3DTileset|TimeDynamicPointCloud)>
以上HeadingPitchRange(1, -0.6, tileset.boundingSphere.radius * 2.5));
可以从Api手册中查到new Cesium.HeadingPitchRange(heading, pitch, range),其中
heading为以弧度为单位的航向角,
pitch是以弧度表示的俯仰角,
range是距离中心的距离以米为单位。
二、一些方法解释
new Cesium.Cartographic(longitude, latitude, height)
新建一个由经度,纬度和高度定义的位置。
Cesium.Cartesian3.fromRadians