Skip to content

Cesium类

方法

sampleTerrain

sampleTerrain 方法用于从 地形数据中采样特定位置高度 的方法。

语法:

js
Cesium.sampleTerrain(terrainProvider, level, positions, rejectOnTileFail)

参数:

参数描述
terrainProvider地图中使用的地形provider
level查询地形的层次细节
positions要查询地形中高度的位置点坐标,可以数组存放多个
rejectOnTileFail默认为 false。为 true 时,若地形高度请求失败,则 Promise 直接抛出错误,为 false 时,则为 undefined
js
// 地形Provider
const terrainProvider = await Cesium.createWorldTerrainAsync({
  requestVertexNormals: true,
  requestWaterMask: true,
});

const viewer = new Cesium.Viewer("cesiumContainer", {
  infoBox: false,
  terrainProvider: terrainProvider,
});

// positions可以是多个点的集合
const positions = [Cesium.Cartographic.fromDegrees(86.925145, 27.988257)];
const updatedPositions = await Cesium.sampleTerrain(terrainProvider, 11, positions);

console.log(`当前点的高度是 ${updatedPositions[0].height}`);

CustomDataSource

CustomDataSource 是Cesium中的一个数据源类,允许你将自定义的空间数据(例如点、线、面等)添加到场景中

js
const viewer = new Cesium.Viewer("cesiumContainer", {
  infoBox: false,
});

const customDataSource = new Cesium.CustomDataSource("myDataSource");

// 将自定义数据源添加到viewer
viewer.dataSources.add(customDataSource);
// 移除所有数据源
viewer.dataSources.removeAll();

还可以向 customDataSource 中添加 Entity 实体:

js
const viewer = new Cesium.Viewer("cesiumContainer", {
  infoBox: false,
});

const customDataSource = new Cesium.CustomDataSource("myDataSource");
// 将自定义数据源添加到viewer
viewer.dataSources.add(customDataSource);

// 想数据源中添加一个点
const entity = customDataSource.entities.add({
  id: "1001",
  name: "Point_1001",
  position: Cesium.Cartesian3.fromDegrees(114.169, 22.319, 100),
  point: {
    pixelSize: 10,
    color: Cesium.Color.RED,
  },
  label: {
    text: "Point_1001",
    font: "14pt sans-serif",
    fillColor: Cesium.Color.WHITE,
  },
});

// 允许随时更新实体对象
entity.position = Cesium.Cartesian3.fromDegrees(120.0, 30.0, 200);
entity.point.pixelSize = 15;

// 获取实体
const entityById = customDataSource.entities.getById("1001");
// 获取所有实体
const entities = customDataSource.entities.values;

// 移除已添加的实体
customDataSource.entities.remove(entity);
// 移除所有已添加的实体
customDataSource.entities.removeAll();

Released under the MIT License.