1,根據元素的clampToGround屬性貼地
var options = {
camera : viewer.scene.camera,
canvas : viewer.scene.canvas,
clampToGround: true //開啓貼地
};
viewer.camera.flyHome(0);
var a = viewer.dataSources.add(Cesium.KmlDataSource.load('../data/kml/test_geojson_test.kml', options));
a.then( viewer.flyTo(a));
a.then(function(dataSource) {
var entities = dataSource.entities.values;
for (var i = 0; i < entities.length; i++) {
var entity = entities[i];
// 設置每個entity的樣式
entity.billboard.disableDepthTestDistance = Number.POSITIVE_INFINITY; //去掉地形遮擋
entity.billboard.color = Cesium.Color.WHITE;
entity.billboard.image = '../data/kml/img.jpg';
}
});
2.根據Cesium.sampleTerrain方法計算該點地形高程,真正意義上的貼地
Cesium.sampleTerrain(
AppCesium.cesiumViewer.terrainProvider, CesiumConfig.terrain.pointHeightLevel,
Cesium.Cartographic.fromDegrees([108.038640320, 25.24820000])
).then(function (updatedCartographics) {
console.log(updatedCartographics);
for(var i=0;i<updatedCartographics.length;i++){
var cartographic = updatedCartographics[i];
entityArr[i].position = Cesium.Cartesian3.fromRadians(
cartographic.longitude,
cartographic.latitude,
cartographic.height
),
viewer.entities.add(entityArr[i])
}
viewer.zoomTo(viewer.entities);
});
Cesium.sampleTerrain方法的經緯度可是多個座標組成的二維數組,返回相同組數的帶高程的地理信息(經度,緯度,高程)