用GDAL 1.4 For C#来写ShapeFile注意事项

本文分享了使用GDAL 1.4版本通过SWIG生成C# Wrap的经验,包括处理缺失几何体类如Point和Polygon的方法、利用WKT/WKB/GML格式创建几何对象的过程、创建Shapefile的步骤以及遇到的一些问题。

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

GDAL1.5已经出来一段时间了,一直没有机会用。用时又来不及下,现在还主要是用1.4。
用swig将在gdal1.4基础上生成C# 的Wrap后发现,OGR命名空间下几何体方面的类只有Geometry,没有那些熟悉的Point,PolyLine,Ploygon等,搜索了命名空间也没发现,可能是用的swig的头文件里边就没有包装1.4这个几个类吧。另外一些常量也没有找到,几何打算放弃1.4下载1.5编译,或者用JTS中的类库来操作。
不过最后还是搞好了,这里记录一下要点:

1、常量大部分在ogr类中,这里ogr(小写)是个类,主要提供了一下常量和静态函数,方便调用。不过元数据中没有注释,有点不方便理解只好参考c++版帮助。
2、有Geometry类基本就可以实现创建各类几何对象,方法是用WKT或者WKB或者GML格式先构造好几何数据,在该类构造函数中传入即可。
3、还有一点要注意的是,有的地方类型如果不是很清楚的时候尽量用UnKnow类型,这样类库可以根据传入参数自动识别,更可靠一些。
4、创建Shapefile的主要流程大概是:1)CreateDatasource。2)CreateLayer。3)CreateFiled。4)New Feature,注意要用Layer的Def,并给各个字段SetValue,SetGeometry。5)Layer.CreateFeature将Featrue写入文件。

5、还有一个问题没解决:操作完毕后无法关闭文件,导致别的进程无法访问刚刚创建的文件,必须关闭才可以。推测是托管造成的,但还不知道如何解决。也许这些问题都已经在1.5中解决掉了,有时间应该试一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值