开发Osg有一段时间了,之前一直用的别人提供的sdk,底层代码很少去看,今天突然发现居然不知道如何去加载tm瓦片数据,在网上的资料也是少之又少,唯一一个是osgEarthDrivers的头文件去加载的,结果打开我的osgearth一看,根本没有这个头文件,网上也有这部分资料,一开始还以为是那个不知名的库,后续才知道,因为版本迭代,已经不叫这个名字了,搞了半天在osgearth自带的例子中发现了如何加载tms,故特地记录一下,后续也会记录一下osgearth的每个例子,熟悉一下接口。
1.接口功能
加载tms瓦片数据,加载高程,加载矢量
2. 代码解析
源码全复制于osgearth_city(不同版本不一样,以官网例子为主)
加载tms瓦片数据
void addImagery(Map* map)
{
// add a TMS imagery layer:
TMSImageLayer* layer = new TMSImageLayer();
layer->setURL(IMAGERY_URL);
map->addLayer(layer);
}
例子十分简洁明了,
创建一个tms图层,设置tms的地址,可以为线上的,也可以为线下的,如xxx/xxx/tms.xml,对应的即为瓦片数据。
map为mapnode的一个接口变量
加载高程
void addElevation(Map* map)
{
// add a TMS elevation layer:
TMSElevationLayer* layer = new TMSElevationLayer();
layer->setURL(ELEVATION_URL);
map->addLayer(layer);
}
与上一个影像无不同
加载矢量
void addStreets(Map* map)
{
// create a feature source to load the street shapefile.
OGRFeatureSource* data = new OGRFeatureSource();
data->setURL(STREETS_URL);
data->options().buildSpatialIndex() = true;
//设置采样率
ResampleFilterOptions resample;
resa

本文介绍了如何在osgEarth中加载TMS瓦片数据、高程数据和矢量数据,提供了简洁的代码示例,包括影像、高程图层的添加以及矢量数据的样式设置,展示了osgEarth的接口使用方法。

1711

被折叠的 条评论
为什么被折叠?



