Cesium常用知识点
Cartesian3
new Cesium.Cartesian3(x,y,z)
一个3D笛卡尔点
-
clone() -> Cartesian3 复制此Cartesian3实例 -> Cartesain3存储结果的对象
-
equals(right) -> Boolean 将两个Cartesian3的笛卡尔分量进行比较
-
Cesium.Cartesain3.angleBetween(left, right) -> Number 返回提供的笛卡尔之间的角度(以弧度为单位)
-
Cesium.Cartesain3.clamp(cartesain, min, max, result) -> Cartesian3 将一个值限制在两个值之间
-
Cesium.Cartesain3.clone(targetCartesian, result) -> 将targetCartesian实例复制到存储结果对象的result上
-
Cesium.Cartesian3.cross(leftCartesian, rightCartesian, resultCartesain) -> 计算两个笛卡尔的交叉积并存储到resultCartesain中
-
Cesium.Cartesian3.distance(leftCartesain, rightCartesain) -> Number 计算两个笛卡尔坐标之间的距离
-
Cesium.Cartesian3.fromDegrees(longitude, latitude, height, ellipsoid, result) -> 以度为单位的经纬度返回Cartesain3的位置
-
Cesium.Cartesian3.fromDegreesArray(coordinates, ellipsoid, result) -> 给定一个以度为单位的经纬度数组,返回一个笛卡尔位置数组
-
Cesium.Cartesian3.lerp(start, end, t, result) -> 使用提供的笛卡尔计算在t处的线性插值或外插
构建四元数
// 地理位置坐标(三维)
const position = Cesium.Cartesian3.fromDegrees(
-123.0744619,
44.0503706,
height
);
const heading = Cesium.Math.toRadians(135); // 航向
const pitch = 0; // 俯仰
const roll = 0; // 横滚角
const hpr = new Cesium.HeadingPitchRoll(heading, pitch, roll);
/**
Transforms: 将位置转换为各种参考系的函数
headingPitchRollQuaternion - 四元数
根据参考系计算四元数 =》 h: 航向 p: 俯仰 r: 横滚角
**/
// 构建四元数
cosnt orientation = Cesium.Transforms.headingPitchRollQuaternion(
position,
hpr,
)
通过entity添加3D模型
const entity = viewer.entities.add({
name: url,
position: position,
orientation: orientation,
model: {
uri: url,
minimumPixelSize: 128,
maximumScale: 20000,
}
});
viewer.trackedEntity = entity;
Cesium的knockout
Cesium3DTileset
一个3D Tiles瓦片集,用于流式传输海量异构3D地理控件数据集
* url: 瓦片集JSON文件的url。
* show: 确定是否显示图块集
* modelMatrix: 4*4变换矩阵,用于变换瓦片集的根瓦片
* modelUpAxis: Axis.Y 加载磁贴内容的时候考虑使用那个轴
* shadows:阴影模式 ShadowMode.ENABLED 确定瓦片集是投影还是接受来自光源的阴影
* maximum

浙公网安备 33010602011771号