如何将 GeoJSON 数据格式固定到 Cesium Sandcastle 中的地形?

How to clamp GeoJSON data format to terrain in Cesium Sandcastle?

我在 Cesium Sandcastle 中有地形视图,我加载了 GeoJSON 格式的道路数据,它们是线。我想将它们固定在地形上,就像这个例子(在下拉菜单中选择 "Sample line positions and draw with depth test disabled")-> http://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=Ground%20Clamping.html&label=Tutorials 在这个例子中,你看到的线是在代码中定义的,但我的电脑上有数据(道路),它是在应用程序中加载的。加载时,道路是平坦的(在地形下),不知何故我必须将它们夹在地形上但不知道如何。

我已经尝试使用示例中的现有代码,但没有成功。

这是我现在的代码:

//Add terrain
var viewer = new Cesium.Viewer('cesiumContainer');
var cesiumTerrainProviderMeshes = new Cesium.CesiumTerrainProvider({
    url : 'https://assets.agi.com/stk-terrain/v1/tilesets/world/tiles',
    requestWaterMask : true,
    requestVertexNormals : true
});
viewer.terrainProvider = cesiumTerrainProviderMeshes;
viewer.scene.globe.depthTestAgainstTerrain = true;

//Load data (roads)
var dataSource = Cesium.GeoJsonDataSource.load('../../SampleData/ceste_rab_okvir.geojson');
viewer.dataSources.add(dataSource);
viewer.zoomTo(dataSource);

我知道有 Cesium.GeoJsonDataSource.clampToGround,但由于我不是开发人员,所以我不知道如何在我的代码中编写它。 有谁知道该怎么做?或者也许还有另一种方法可以将道路固定在地形上?

提前致谢。

我已经弄明白了。应该这样写:

//Add terrain
var viewer = new Cesium.Viewer('cesiumContainer');
var cesiumTerrainProviderMeshes = new Cesium.CesiumTerrainProvider({
    url : 'https://assets.agi.com/stk-terrain/v1/tilesets/world/tiles',
    requestWaterMask : true,
    requestVertexNormals : true
});
viewer.terrainProvider = cesiumTerrainProviderMeshes;
viewer.scene.globe.depthTestAgainstTerrain = true;

//Load data (roads)
Cesium.GeoJsonDataSource.clampToGround = true;
var dataSource = Cesium.GeoJsonDataSource.load('../../SampleData/ceste_rab_okvir.geojson');
viewer.dataSources.add(dataSource);
viewer.zoomTo(dataSource);