C#环境下GDAL / OGR环境配置与入门

本文档介绍了在C#中使用GDAL.OGR库进行环境配置,通过NuGet安装并注册GDAL。文章详细展示了如何读取Shapefile的属性表,包括数据加载、属性修改,并提供了代码实例。虽然存在汉字乱码和图形界面加载等问题,但已实现了基本功能,适合初学者参考。

C#环境下GDAL.OGR环境配置与入门

0.概述

由于需要进行一些Shapefile文件的读取和管理,但是ArcGIS的二次开发工具又看起来过于臃肿,所以尝试学习GDAL完成上面的工作,由于刚刚接触,目前对这个库的了解还少之又少,先贴出官网,便于以后直接查看。GDAL-Java包官方文档

至于为什么是Java包,因为官网根本没有C#的相关文档啊,如下图,因为Java跟C#确实很像,所以基本可以套用,但是有部分函数不同,用到的时候再看吧
官网API目录
本教程中介绍了GDAL的环境配置,OGR一些类的作用,以及用基础理论实现的一个小程序,程序功能还不完善,但是对于学习很有帮助,界面如下(中文乱码问题还未解决)。
在这里插入图片描述

1.环境配置

使用的开发软件是Visual Studio 2015,高版本肯定也是可以的。

  • 网上的描述来看安装GDAL的方法主要有几种,一种下载官网编译好的DLL文件,一种自己编译源码,还有就是我用的最简单的在VS的NuGet中安装。
  • 官网提供的方法如下(我用的就是第三种):
    在这里插入图片描述
    因为另外两种比较复杂,容易出错,所以就用最简单的方法进行下面的教程吧。
  1. 新建一个窗体程序或控制台程序。
    在这里插入图片描述
    在这里插入图片描述
  2. 找到NuGet工具,准备下载GDAL
    在这里插入图片描述
  3. 下载GDAL和GDALNative
    在这里插入图片描述
    稍等片刻,GDAL就安装好了,之后程序里面会多出来这么几个东西,如下:
    在这里插入图片描述
    在这里插入图片描述
    #安装之后并不能直接用,需要进行注册工作。实际上很简单,就是在使用前加几行代码,代码是这样的,如果是控制台程序,这段代码放在Main函数里面,如果是窗体程序放在构造函数里面就可以了:
            GdalConfiguration.ConfigureGdal();
            GdalConfiguration.ConfigureOgr();
            OSGeo.GDAL.Gdal.AllRegister();
            OSGeo.OGR.Ogr.RegisterAll();

另外使用之前可以可以引用这三个命名空间,用不着可以不加,

using OSGeo.OGR;
using OSGeo.OSR;
using OSGeo.GDAL;

至于上面三个命名空间的含义,相信看了下面JavaAPI的介绍就会有所了解
在这里插入图片描述
完成上面的步骤,就可以愉快的使用GDAL和OGR了

2.类库介绍

由于刚刚开始学,也只做了矢量数据的处理,因此下面的介绍只针对OGR,也就是矢量数据处理。
先看Java官方的介绍,标红的几个是我目前接触的:
在这里插入图片描述
用一个图介绍他们的含义,相信看了这个图,大多数人都会知道它的结构,实际上Layer跟C#的DataTable有点像,但是它多了几何对象Geometry。
在这里插入图片描述
还有一个Driver没有介绍,它是一个用来处理数据的工具,有很多种类,大概下面这些吧,目前我只接触了标黄的两个,好像都是数据格式。:

第一列 第二列 第三列
ESRI Shapefile GMT GPSBabel
MapInfo File SQLite SUA
UK .NTF ODBC OpenAir
SDTS PGeo PDS
TIGER MSSQLSpatial WFS
S57 PostgreSQL HTF
DGN MySQL AeronavFAA
VRT PCIDSK Geomedia
REC XPlane EDIGEO
Memory AVCBin GFT
BNA AVCE00 SVG
CSV DXF CouchDB
NAS Geoconcept Idrisi
GML GeoRSS ARCGEN
GPX GPSTrackMaker SEGUKOOA
KML VFK SEGY
GeoJSON PGDump

3.代码实践

下面搭建一个简单的窗体程序,读取一下shpfile文件的属性表

  1. 在刚才搭建好的环境中使用工具箱搭建下面的界面,然后下面介绍各个函数,拼起来就是整个程序
    在这里插入图片描述
    2.文件目录读取,比较简单不再过多介绍,主要是为
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matrix_CS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值