Cesium專欄-terrain地形、3dtiles模型、gltf模型 高度採樣

在Cesium中,對於terrain地形、3dtiles模型、gltf模型的高度採樣是一個很基本的功能,基於此,能夠作一些深度應用,而Cesium已經幫咱們提供了相應的API,在這裏,我幫你們總結一下,若是遇到了,能夠當作幫助文檔隨時瀏覽。api

terrain地形 高度採樣(API: Cesium.sampleTerrainMostDetailed)

經過兩點決定一條直線,求取這條直線在地表高度promise

  • var start = Cesium.Cartesian3.fromDegrees(114, 30);
  • var end = Cesium.Cartesian3.fromDegrees(115, 30);
  •  
  • var positions = [Cesium.Cartographic.fromCartesian(start)];
  • // 插值100個點(自定義)
  • var count = 100;
  • for (var i = 1; i < count; i++) {
  • var cart = Cesium.Cartesian3.lerp(start, end, i / count, new Cesium.Cartesian3());
  • positions.push(Cesium.Cartographic.fromCartesian(cart));
  • }
  • positions.push(Cesium.Cartographic.fromCartesian(end));
  •  
  • var promise = Cesium.sampleTerrainMostDetailed(terrainProvider, positions);
  • Cesium.when(promise, function (updatedPositions) {
  • // 每一個點的高度
  • var height = [];
  • for (var i = 0; i < updatedPositions.length; i++) {
  • height.push(updatedPositions[i].height);
  • }
  • }

3dtiles模型 高度採樣(API: Scene.clampToHeightMostDetailed)

  • var start = new Cesium.Cartesian3(1216467.760147752, -4736154.3567799, 4081478.9167016773);
  • var end = new Cesium.Cartesian3(1216183.8039071201, -4736456.592237458, 4081200.6372076278);
  • // 插值100個點
  • var count = 100;
  • var positions = [];
  • for (var i = 0; i <= count; i++) {
  • positions.push(Cesium.Cartesian3.lerp(start , end , i / count, new Cesium.Cartesian3()));
  • }
  • scene.clampToHeightMostDetailed(positions).then( function (clampedCartesians) {
  • // 每一個點的高度
  • var height = [];
  • for (var i = 0; i < count; ++i) {
  • height.push(Cesium.Cartographic.fromCartesian(clampedCartesians[i]).height);
  • }
  • }

gltf模型 高度採樣(API: Scene.sampleHeightMostDetailed)

更多詳情見下面連接文章ide

Cesium專欄-terrain地形、3dtiles模型、gltf模型 高度採樣spa

對本專欄感興趣的話,能夠關注一波3d

相關文章
相關標籤/搜索