当前位置:首页 > 编程笔记 > 正文
已解决

5.OsgEarth加载地形

来自网友在路上 156856提问 提问时间:2023-10-28 15:44:05阅读次数: 56

最佳答案 问答题库568位专家为你答疑解惑

愿你出走半生,归来仍是少年!

        在三维场景中除了使用影像体现出地貌情况,还需要通过地形体现出地势起伏,还原一个相对真实的三维虚拟世界。

        osgEarth可通过直接加载Dem数据进行场景内的地形构建。

1.数据准备

        由于我也没有高程数据,所以在地理空间数据源中下载。

地理空间数据云 (gscloud.cn)

登录后选择
数据下载

         数据下载后可通过ArcMap或者QGis将其转换为Wgs84的Tif格式数据。

2.代码

        通过OsgEarth的GDALElevationLayer类构建地形图层并进行加载完成地形的构建。

/// <summary>
/// 通过本地的tif(dem)数据创建地形图层
/// </summary>
/// <param name="fileFullName"></param>
/// <returns></returns>
osgEarth::GDALElevationLayer* Cv::LayerFactory::CreateTerrainLayer(std::string fileFullName)
{osgEarth::GDALElevationLayer* ly = new osgEarth::GDALElevationLayer();ly->setURL(fileFullName);int pos = fileFullName.find_last_of('\\', fileFullName.length());auto name = fileFullName.substr(pos);ly->setName(name);return ly;
}

3.效果

大场景下明显的地形隆起(正方形范围)
边缘处抬起的地形
近处的地形起伏
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"5.OsgEarth加载地形":http://eshow365.cn/6-26911-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!