首页 / 浏览问题 / 三维GIS / 问题详情
获取模型高程出错
4EXP 2023年09月12日
在b3dm格式的模型上使用以下两个函数获取高度,画面 会报错或者是,卡住没反应,而使用原生cesuim的clampToHeightMostDetailed方法就没问题
Cesium.DrawHandler(viewer, Cesium.DrawMode.Polygon, Cesium.ClampMode.S3mModel)
clampToHeightMostDetailed

报错信息
A 3D tile failed to load:
Error: Request has failed

1个回答

A 3D tile failed to load通常是在服务失败之后,无法加载的情况

另外可能的问题:

1. 用自定义集合PrimitiveCollection添加3DTileset。改成直接加载。

2. 异步获取。通过同步的sampleHeight和clampToHeight获取到的高程也是对的。

参考:https://blog.csdn.net/qq_40043761/article/details/119997317

4,151EXP 2023年09月12日
主要是切换到原生cesuim clampToHeightMostDetailed方法就没问题
以下是我测试代码的一部分:

//贴地线
                    viewer.entities.add({
                        polyline: {
                            positions: positions,
                            cornerType: Cesium.CornerType.BEVELED,
                            material: Cesium.Color.RED.withAlpha(0.8),
                            outline: true,
                            width: 5,
                            outlineColor: Cesium.Color.Red,
                        }
                    });

                    var heights = [];
                    scene.clampToHeightMostDetailed(positions).then(function(clampedCartesians) {
                        // 每个点的高度
                        for (var i = 1; i < count; i++) {
                            heights.push(Cesium.Cartographic.fromCartesian(clampedCartesians[i]).height);
                        }
                    })

测试出来并无问题

如果说有问题的话,在几年前的版本 clampToHeightMostDetailed 有过结果出错的问题,但是在如今的版本已经是修复了

如果您用的是11版本,那么包应该是没有问题的
...