HeightReference指相对于地形的位置,只和地形有关系,和三维模型没有关系。
一、NONE
NONE是绝对高度,是entity距离椭球表面(椭球无地形)的距离,比如entity高度为130,不管场景中是否有地形,entity都在距离椭球表面130米的位置。如果此时有地形,并且地形高度为120,那么entity距离地形的距离就是10。
let car = viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(119.181807, 28.140487, 130),
model: {
uri: "./data/car.gltf",
heightReference: Cesium.HeightReference.NONE,
},
});
二、CLAMP_TO_GROUND
CLAMP_TO_GROUND指该位置与地形相适应,意思就是entity贴地。比如entity高度为130,如果场景中有地形,地形高度为120,此时entity贴地形,高度为120;如果场景中没有地形,此时entity贴在椭球表面,高度为0。因此只要设置CLAMP_TO_GROUND,entity本身的高度就没有意义了,entity实际高度由场景中是否有地形决定。
let car = viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(119.181807, 28.140487, 130),
model: {
uri: "./data/car.gltf",
heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
},
});
三、RELATIVE_TO_GROUND
RELATIVE_TO_GROUND指该位置相对于地形的高度,此时设置entity的高度就是一个相对于地形的相对值。比如设置entity为10,如果场景中没有地形,那么entity就距离椭球表面高度为10;如果场景中有地形,并且地形高度为120,那么entity就距离地形高度为10,此时entity距离椭球表面的高度就是120+10=130;
let car = viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(119.181807, 28.140487, 10),
model: {
uri: "./data/car.gltf",
heightReference: Cesium.HeightReference.RELATIVE_TO_GROUND,
},
});