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

~

posted @ 2016-10-28 15:33  百折不回  阅读(834)  评论(0编辑  收藏  举报