gpt4 book ai didi

javascript - 如何在 Cesium SandcaSTLe 中将 GeoJSON 数据格式固定到地形?

转载 作者:行者123 更新时间:2023-11-28 04:25:56 28 4
gpt4 key购买 nike

我在Cesium SandcaSTLe中有地形 View ,并且我已经加载了GeoJSON格式的道路数据,它们是线。我想将它们夹在地形上,就像这个例子一样(在下拉菜单中选择“采样线位置并在禁用深度测试的情况下绘制”)-> http://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=Ground%20Clamping.html&label=Tutorials在示例中,您看到的线路是在代码中定义的,但我的 PC 上有数据(道路),这些数据已在应用程序中加载。加载后,道路是平坦的(在地形下方),不知何故我必须将它们夹在地形上,但不知道如何。

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

这是我现在的代码:

//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);

关于javascript - 如何在 Cesium SandcaSTLe 中将 GeoJSON 数据格式固定到地形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45061840/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com