2016-11-21 9 views
0

地形に3Dモデルを配置しようとしています。私はSample Terrain tutorialに従っています。 TerrainProviderは座標の高さを提供しますが、モデルを地面に置くと、必ずしも地面に座るとは限りません。いくつかの座標モデルについては、空中に表示されます。 (例:経度:96.12、緯度:22.02)。どうすればこの問題を解決できますか?地形の表面にモデルを配置する方法はありますか?地形にモデルを配置する

明確でない場合は、コードを投稿できますが、サンプルの地形チュートリアルと非常によく似ています。

答えて

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