在Cesium中,對于terrain地形、3dtiles模型、gltf模型的高度采樣是一個很基本的功能,基于此,可以做一些深度應用,而Cesium已經幫我們提供了相應的API,在這里,我幫大家總結一下,如果遇到了,可以當做幫助檔案隨時瀏覽,
terrain地形 高度采樣(API: Cesium.sampleTerrainMostDetailed)
通過兩點決定一條直線,求取這條直線在地表高度
- 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)
更多詳情見下面鏈接文章:
Cesium專欄-terrain地形、3dtiles模型、gltf模型 高度采樣
對本專欄感興趣的話,可以關注一波
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/3965.html
標籤:GIS
上一篇:GeoTools介紹、環境安裝、讀取shp檔案并顯示
下一篇:Cesium 限制相機進入地下
