osgearth 天地图
时间: 2025-05-09 10:27:35 浏览: 25
### 如何在 OSGEarth 中集成和使用天地图
为了在 OSGEarth 中集成并使用天地图服务,通常需要通过配置文件来指定 WMS (Web Map Service) 或 TMS (Tile Map Service) 的 URL 地址以及相应的参数设置。具体实现方式如下:
#### 配置 XML 文件加载在线影像图层
创建一个名为 `tianditu.xml` 的配置文件,在其中定义 TiandiTu 图像瓦片的服务地址和服务选项[^1]。
```xml
<?xml version="1.0" encoding="UTF-8"?>
<map name="Tianditu">
<!-- 设置坐标系 -->
<options>
<option name="datum">WGS84</option>
</options>
<!-- 添加矢量底图 -->
<layer type="wms" driver="gdal_wms">
<url>http://t0.tianditu.gov.cn/vec_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=c&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&FORMAT=tiles</url>
<name>Tianditu Vector BaseMap</name>
</layer>
<!-- 添加影像底图 -->
<layer type="wms" driver="gdal_wms">
<url>http://t0.tianditu.com/img_c/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=img&tileMatrixSet=c&TileMatrix={z}&TileRow={y}&TileCol={x}</url>
<name>Tianditu Image Layer</name>
</layer>
<!-- 可选:添加标注图层 -->
<layer type="wms" driver="gdal_wms">
<url>http://t0.tianditu.com/cia_c/wmts?service=wmts&request=gettile&version=1.0.0&layer=cia&style=default&format=tiles&tiledmatrixset=c&tilerow={y}&tilecol={x}&zoom={z}</url>
<name>Tianditu Annotation Labels</name>
</layer>
</map>
```
#### 使用 C++ 加载自定义的地图源
编写一段简单的代码片段用于读取上述配置文件,并将其作为场景的一部分展示出来。
```cpp
#include <osgViewer/Viewer>
#include <osgEarth/MapNode>
#include <osgDB/readFile>
int main(int argc, char* argv[])
{
// 初始化 viewer 和 mapnode
osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer();
osg::ref_ptr<osgEarth::MapNode> mapNode;
// 创建一个新的地图对象并通过 read() 方法解析 tianditu.xml 文件中的内容
osg::ref_ptr<osgEarth::Map> map(new osgEarth::Map());
if (!map->read("tianditu.xml"))
{
std::cerr << "Failed to load the specified file." << std::endl;
return -1;
}
// 将构建好的地图节点加入到视窗中显示
mapNode = new osgEarth::MapNode(map.get());
viewer->setSceneData(mapNode);
// 进入主循环等待用户交互
return viewer->run();
}
```
此方法允许开发者轻松地将中国国家地理信息公共服务平台——天地图的数据集嵌入至基于 OSGEarth 构建的应用程序当中[^2]。
阅读全文
相关推荐


















