zoukankan      html  css  js  c++  java
  • Win10系统下编译GDAL1.9.2版本

    环境说明:

    1、Win10企业版、64位;

    2、VS2012旗舰版;

    3、GDAL1.9.2

    GADL编译

    1、解压GDAL压缩包至F:GDALgdal-1.9.2;

    2、设置GDAL编译后安装目录:打开解压目录下的nmake.opt文件,修改GDAL的安装目录GDAL_HOME为F:GDALgdal-1.9.2uild

    3、设置GDAL编译为64位版本:打开解压目录下的nmake.opt文件,修改WIN64项目信息,将#WIN64=YES修改为WIN64=YES

    4、以管理员身份运行cmd

    ①切换到VS2012的VC安装目录D:Program Files (x86)Microsoft Visual Studio 11.0VCin

    ②执行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_HOMEportcpl_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_HOMEfrmtsgdalallregister.cpp文件第73行左右)和OGRRegisterAll()函数(位于GDAL_HOMEogrogrsf_frmtsgenericogrregisterall.cpp文件第38行左右)中,然后重新编译GDAL即可。这样的方式就和使用以前版本的GDAL一样了,不用改动自己的代码,推荐使用这种方式。

    方法三:修改GDAL源代码,GDAL_HOMEportcpl_vsil_win32.cpp文件中的全部去掉CPLGetConfigOption全部去掉,或者将后面的YES改为NO,但是该工作量巨大,而且有好多地方,这种方式不推荐。

    GDAL使用示例

    1、Shapefile转GeoJson

    ogr2ogr -f "GeoJSON" output.json input.shp

    ~

  • 相关阅读:
    狗狗急性肠胃炎
    shell change password
    男职工为什么要交生育保险
    预扣预缴个税
    转《最优状态机》
    状态机编程-队列缓冲事件,事件可异步触发
    max713镍氢电池充电管理IC
    NUP2201MR
    LSP5513
    74HC14D(6反向施密特触发器)
  • 原文地址:https://www.cnblogs.com/hans_gis/p/6004026.html
Copyright © 2011-2022 走看看