osgearth 3.2 加载高程数据
时间: 2023-10-11 09:10:24 浏览: 250
在 osgEarth 3.2 中,可以通过以下步骤加载高程数据:
1. 配置地图引擎的 options,设置 elevation 的 source。
```cpp
osgEarth::MapOptions mapOptions;
mapOptions.elevation() = osgEarth::ElevationLayerOptions()
.url("http://example.com/elevation.tif")
.profile("global-geodetic");
```
2. 创建地图对象,并将 options 传递给它。
```cpp
osgEarth::Map* map = new osgEarth::Map(mapOptions);
```
3. 创建地图视图对象。
```cpp
osgEarth::View* view = new osgEarth::View();
```
4. 将地图对象添加到地图视图中。
```cpp
view->setMap(map);
```
5. 创建一个高程查询对象。
```cpp
osgEarth::ElevationQuery query(map);
```
6. 使用高程查询对象获取一个位置的高程值。
```cpp
osg::Vec3d location(-122.157956, 37.447682, 0.0); // 经度、纬度、高程
double elevation = query.getElevation(location);
```
7. 创建一个地形层节点,将它添加到场景图中。
```cpp
osgEarth::TerrainLayer* terrainLayer = new osgEarth::TerrainLayer(map->getLayerByName("elevation"));
osgEarth::TerrainLayerNode* terrainNode = new osgEarth::TerrainLayerNode(map, terrainLayer);
root->addChild(terrainNode);
```
以上步骤是加载高程数据的基本流程,具体实现可以根据实际需求进行调整。
阅读全文