我试图将我的3D模型放在地形上。我跟着Sample Terrain tutorial。 Terrainprovider提供坐标的高度,但是当我尝试将模型放在地面上时,它并不总是坐在地上。对于某些坐标模型出现在空中。 (例如:经度:96.12,纬度:22.02)。我怎么解决这个问题?无论如何将模型放置在地形表面?
如果不清楚,我可以发布我的代码,但它与示例地形教程非常相似。
答案 0 :(得分:1)
我想我已经通过使用光线解决了这个问题。
let rayPos = new Cesium.Cartographic(pos.longitude, pos.latitude, pos.height + 100);
let rayCartesianPos = ellipsoid.cartographicToCartesian(rayPos);
let ray = new Cesium.Ray(rayCartesianPos, Cesium.Cartesian3.negate(rayCartesianPos, new Cesium.Cartesian3()));
let newCoords = viewer.scene.globe.pick(ray, viewer.scene);