Win10系统下编译GDAL1.9.2版本
环境说明:
1、Win10企业版、64位;
2、VS2012旗舰版;
3、GDAL1.9.2
GADL编译
1、解压GDAL压缩包至F:\GDAL\gdal-1.9.2;
2、设置GDAL编译后安装目录:打开解压目录下的nmake.opt文件,修改GDAL的安装目录GDAL_HOME为F:\GDAL\gdal-1.9.2\build
3、设置GDAL编译为64位版本:打开解压目录下的nmake.opt文件,修改WIN64项目信息,将#WIN64=YES修改为WIN64=YES
4、以管理员身份运行cmd
①切换到VS2012的VC安装目录D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin
②执行vcvars32.bat命令
5、编译GDAL
①切换到GDAL解压目录
②运行命令:nmake /f makefile.vc
完成编译大概需要十来分钟吧,配置好的机器可能三五分钟能编译完。
6、安装GDAL
①运行命令:nmake /f makefile.vc install
②运行命令:nmake /f makefile.vc devinstall
编译的结果在第2步设置的GDAL_HOME目录下
不支持中文路径的解决办法
GDAL从1.8版本起,默认不支持中文路径。原因在VSIWin32FilesystemHandler类(位于GDAL_HOME\port\cpl_vsil_win32.cpp文件)中,在函数中添加了一个CPLGetConfigOption( "GDAL_FILENAME_IS_UTF8", "YES" ),指定的默认值UTF8编码,系统将含有中文路径的字符串以UTF8编码来进行转换,结果导致汉字内容乱码。
解决办法有如下三种
方法一:不改变GDAL源代码,在调用GDALRegisterAll()和OGRAllRegiser()函数后,加上下面一句即可:CPLSetConfigOption("GDAL_FILENAME_IS_UTF8","NO"); 这样的优点是,不用改动GDAL的源代码,但是如果自己的工程中经常打开图像的话,每次都要加,比较麻烦。
方法二:修改GDAL源代码,将下面一句CPLSetConfigOption("GDAL_FILENAME_IS_UTF8","NO"); 分别添加到GDALAllRegister()函数(位于GDAL_HOME\frmts\gdalallregister.cpp文件第73行左右)和OGRRegisterAll()函数(位于GDAL_HOME\ogr\ogrsf_frmts\generic\ogrregisterall.cpp文件第38行左右)中,然后重新编译GDAL即可。这样的方式就和使用以前版本的GDAL一样了,不用改动自己的代码,推荐使用这种方式。
方法三:修改GDAL源代码,GDAL_HOME\port\cpl_vsil_win32.cpp文件中的全部去掉CPLGetConfigOption全部去掉,或者将后面的YES改为NO,但是该工作量巨大,而且有好多地方,这种方式不推荐。
GDAL使用示例
1、Shapefile转GeoJson
ogr2ogr -f "GeoJSON" output.json input.shp
~
出处:http://www.cnblogs.com/hans_gis/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。