2017-07-12 37 views
1

私はCesium Sandcastleの地形図を持っており、GeoJSON形式の道路データをロードしています。この例のように地形上にクランプしたいのですが(ドロップダウンメニューで "サンプルライン位置を選んでデプステストを無効にする") - >http://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=Ground%20Clamping.html&label=Tutorials この例では、表示される行はコード内で定義されていますが、私のPCのデータ(道路)は、アプリに読み込まれます。ロードされると、道路は平坦で(地形の下)、何とか私は地形に固定する必要がありますが、どのようにか分かりません。Cesium SandcastleでGeoJSONデータフォーマットを地形にクランプする方法は?

例の既存のコードを使用しようとしましたが、成功しませんでした。

これが今の私のコードです:

//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がある知っているが、私は、開発者ではないんだと、私は私のコードでそれを記述する方法を理解していません。 誰もそれを行う方法を知っていますか?あるいは、道路を地形に固定する別の方法がありますか?

ありがとうございます。

答えて

0

私はそれを理解しました。これは次のように書かれています:

//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); 
関連する問題