欢迎来到天天文库
浏览记录
ID:17389308
大小:28.50 KB
页数:6页
时间:2018-08-30
《如何在csharp中使用gdal》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、如何在CSharp中使用GDAL如何在CSharp中使用GDALGDAL库的简洁、高效深受开发人员的喜爱,很多开源的GIS软件甚至是商业GIS软件都使用了这个库。GDAL使用C++,在Visualstudio环境下开发,对C,C++的支持当然不会有什么问题。但对于C#、Python、Java来说,过程就相对繁琐一些,对初学者造成了不少的麻烦。本文以GDAL1.50为例,详细说明在CSharpe语言中使用GDAL的环境配置问题,至于Python的环境配置问题,在另一篇文章“如何在CSharpe中使用GDAL”中另行讨论。希望对初用GDAL的人员有所帮助。GDAL从1.4.1开始添加
2、了swig,以支持.NET环境下的C#语言。在swig文件夹中包含了C#源代码。以下是主要的处理步骤:1、准备一个C++编译器。建议使用Visualstudio2005。2、下载源代码。地址:http://download.osgeo.org/gdal/gdal150.zip。3、把gdal150.zip解压至“C:gdal-1.5.0”,当然放在其它文件夹也可以。4、修改源代码中的错误。源文件“C:gdal-1.5.0frmtslevellerlevellerdataset.cpp”的第171行的内容如下:{"?,kPI/180.0,UNITLABEL_DEGREE}
3、,在?号后面加上双引呈",改成如下形式:{"?",kPI/180.0,UNITLABEL_DEGREE},你可以使用任何一种文本文件的编辑工具来进行修改。笔者尝试过下载GDAL1.52的版本,存在同样的问题,真想不到GDAL库也会犯如此低级的错误。5、创建安装的目标文件夹“C:gdal-runtime”,稍后的编译配置中,我们将配置GDAL把编译后将会安装到这个文件夹内。6、修改编译配置文件夹“C:gdal-1.5.0make.opt”。以下是第41至第43行的内容:!IFNDEFGDAL_HOMEGDAL_HOME="C:warmerdabld"!ENDIF默认的情
4、况下,GDAL将会安装到"C:warmerdabld"文件夹内,为了更好地了解安装过程,我们把第42行修改成如下内容:GDAL_HOME="C:gdal-runtime"7、编译源文件。使用“VisualStudio2005命令提示”工具来进行,(该工具位于“开始程序MicrosoftVisualStudio2005VisualStudioTools”内)。打开“VisualStudio2005命令提示”工具,键入"cdC:gdal-1.5.0",进入源文件所在的文件夹,再键入"nmake/fmakefile.vc"执行编译。编译过程可能需要一些时间,主要取决于机器
5、的性能。如果没有第4步的修改,将会出现大量的编译错误,累积至100个后,VS2005将自动停止编译。8、安装文件。键入“nmake/fmakefile.vcinstall”,执行完毕后,"C:gdal-runtime"文件夹下增加了bin,data,及html文件夹。键入“nmake/fmakefile.vcdevinstall”执行完毕后,"C:gdal-runtime"文件夹下增加了lib,include文件夹。这两个文件夹主要用于C及C++的开发。在"C:gdal-runtimebin"文件夹内已经生成了gdal15.dll文件,这是GDAL库的核心,不管采用何种开
6、发方式,最终都由这个DLL文件来执行实质性的操作。9、编译C#源文件。键入“cdC:gdal-1.5.0swigcsharp”,进入C#源文件所在的文件夹。键入“nmake/fmakefile.vc”,编译完毕后生成8个DLL文件:gdal_csharp.dll、gdalconst_csharp.dll、ogr_csharp.dll、osr_csharp.dll和gdal_wrap.dll、gdalconst_wrap.dll、ogr_wrap.dll、osr_wrap.dll。前面4个文件名中都含有"csharp",用法与另外4个稍有不同,稍后详细讨论。10、把8个DLL
7、文件复制到安装文件夹"C:gdal-runtimebin"。11、创建环境变量。把路径C:gdal-runtimebin添加到系统变量Path,如果没有该变量,则应新建一个。如果你使用的是windows2003,添加后不必重启,修改即时生效;如果你不能确定是否已经生效,可以在doc窗口内输入“echo%path%”,如果显示的内容中包含了"C:gdal-runtimebin",则表示修改已经生效。如果你还是无法确定,那就重启吧,这是最安全的方式。12、在VS2005C
此文档下载收益归作者所有