愿你出走半生,归来仍是少年!
在三维场景中除了使用影像体现出地貌情况,还需要通过地形体现出地势起伏,还原一个相对真实的三维虚拟世界。
osgEarth可通过直接加载Dem数据进行场景内的地形构建。
由于我也没有高程数据,所以在地理空间数据源中下载。
数据下载后可通过ArcMap或者QGis将其转换为Wgs84的Tif格式数据。
通过OsgEarth的GDALElevationLayer类构建地形图层并进行加载完成地形的构建。
- ///
- /// 通过本地的tif(dem)数据创建地形图层
- ///
- ///
- ///
- 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;
- }