GIS是怎样建成的之四:gdal\ogr以及provider

本文介绍了如何利用开源GIS库gdalogr在C/C++中构建GIS系统,首先定义了Provider和FeatureProvider接口,接着通过OGRFeatureProvider类实现了矢量数据的读取功能,包括打开、关闭数据源以及根据条件获取特征。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      好久没写这个系列的博客了,原先打算研究sharpmap从而从存储和显示部分来探究gis是怎么建成的。最近由于项目的需要,得从.net平台转到C/C++领域,因此改变计划,探究C/C++领域的开源GIS软件。C/C++领域的开源GIS内容是非常丰富,典型的代表有GRASS、QGIS等,而其基本读写部分则是gdal\ogr的天下。gdal\ogr非常强大,可以读写180多种栅格和矢量的格式,存在C++,java,C#,python等多个版本。gdal是读写栅格格式的GIS库,而ogr则是矢量部分。与NTS和JTS对应,C++下的对应基本的空间分析库为geos,其与NTS和JTS接口基本可以一一对应。proj4则是最好开源投影库,gdal在使用了这两个库之后,我们惊奇地发现基本的gis功能已经满足了,有关gdal和ogr的更多内容可以参考李民录老师的博客http://blog.youkuaiyun.com/liminlu0314/article/category/777646

        好了,有了此利器之后,我们可以开始着手建立一个简单gis系统。参照官方的例子和sharpmap架构,封装一个ogr的读写的类,首先创建一个Provider接口,provider接口表示数据源,数据源有打开、关闭两个功能。

#pragma once
#include <string>


using namespace std;
namespace VMap
{
/************************************************************************/
/* 
数据源类
class Provider
*/
/************************************************************************/
class Provider
{

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值