编辑:刚刚意识到我传递了一个坐标,而它需要一个数组。将检查和更新。
需要将模型放置在地面(水)上。
据我了解,相对高度(如relativeToGround
在 KML 中)尚未实现。因此,目前最好的解决方案是向地形提供者询问某个位置的地形高度,并相应地调整模型的高度 [ 1 ](然后以某种方式处理细节级别的变化)。
这是Sandcastle的简单示例。我只是试图获得一个位置的高度。我希望Cesium.sampleTerrain
返回一个promise
比将Cartographic
其height
修改为该位置的地形高度来解决的问题。但它只是立即(同步?)解决未修改的输入(height == 100
)。
var viewer = new Cesium.Viewer('cesiumContainer');
viewer.terrainProvider =
new Cesium.CesiumTerrainProvider({ url : '//cesiumjs.org/stk-terrain/tilesets/world/tiles' })
// new Cesium.CesiumTerrainProvider({ url : '//cesiumjs.org/tilesets/terrain/smallterrain' })
// new Cesium.VRTheWorldTerrainProvider({ url : '//www.vr-theworld.com/vr-theworld/tiles1.0.0/73/' })
// new Cesium.EllipsoidTerrainProvider()
;
viewer.camera.flyTo({
destination: Cesium.Cartesian3.fromRadians(2.5269731598108605, -0.669099684580548, 100)
, duration: 0
});
Cesium.sampleTerrain(viewer.terrainProvider, 11, viewer.camera.positionCartographic.clone())
.then(function(x) { console.log(x) })
;
- 代码有什么问题?
- 有没有替代方法?
谢谢你。