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


    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中解决掉了,有时间应该试一下。

  • 相关阅读:
    Rails中使用图表(ChartJs)显示数据
    Ubuntu下sublime无法输入中文问题完美解决
    ruby--$:.unshift File.expand_path('..', __FILE__)(转载)
    消息闪现
    Rails中编写自己的任务
    Rails定时任务
    rails中设置配置信息 读取配置信息
    在lib下编写的自己的类需要用到model内相关方法
    rails_ajax 验证验证码
    rails添加验证码
  • 原文地址:https://www.cnblogs.com/flyingfish/p/1147610.html
Copyright © 2020-2023  润新知