zoukankan      html  css  js  c++  java
  • windows编译GDAL1.11.2/geos3.4.2/proj4.9.1

    机器环境:Win7 64位

    编译工具:VS 2010 X86命令提示

    1.编译proj,参看其路径下Readme文件

    nmake /f makefile.vc
    nmake /f makefile.vc install-all

    2.编译geos,参看其路径下Readme文件

    nmake /f makefile.vc MSVC_VER=1600

    3.编译gdal

    1)c++版本

    -->修改nmake.opt文件

         L45:MSVC_VER=1600

         添加Proj支持:

      PROJ_FLAGS = -DPROJ_STATIC
      PROJ_INCLUDE = -IC:proj-4.9.1src
      PROJ_LIBRARY = C:proj-4.9.1srcproj_i.lib

      添加Geos支持:

      GEOS_DIR=C:geos-3.4.2

      GEOS_CFLAGS = -I$(GEOS_DIR)/capi -I$(GEOS_DIR)/include -DHAVE_GEOS
      GEOS_LIB = $(GEOS_DIR)/src/geos_c_i.lib

    -->编译Gdal1.11.2

      nmake /f makefile.vc

      nmake /f makefile.vc install

      nmake /f makefile.vc devinstall

    2)c#版本

    -->定位文件夹  cd swig/csharp

    -->修改文件

      GdalPINVOKE.cs、OgrPINVOKE.cs、OsrPINVOKE.cs(有两个)文件中L188行static ***PINVOKE()删除重复定义

      gdaland.cs文件L17  BandUpcast改为Band_SWIGUpcast

      gdalDataset.cs文件L17   DatasetUpcast改为Dataset_SWIGUpcast

      gdalDriver.cs文件L17     DriverUpcast改为Driver_SWIGUpcast

    -->编译

      nmake /f makefile.vc

    4.使用GDAL

    将gdal111.dll及C#的8个dll,还有proj.dll,geos.dll,geos_c.dll拷贝在起共同使用。此版本不再考虑中文路径问题,貌似GDAL官方对此问题进行了解决,目前使用此版本进行数据读取时,均可以正常运行,只是在Datasource.GetName()和Layer.GetName()时出现的还是乱码,不清楚这个会不会对以后造成影响。

    对于矢量字段中的中文问题,参考李民录大神的博客:

      // 注册所有的驱动  

      Ogr.RegisterAll();   

      // 为了支持shp属性表字段支持中文,请添加下面这句  

      OSGeo.GDAL.Gdal.SetConfigOption("SHAPE_ENCODING","");  

    ------------------------------------------------------------------------------------------

    目前发生了问题,采用上面的语句能够解决矢量字段中的中文问题,但是属性表中的中文就变成了乱码……研究中~

  • 相关阅读:
    java对象的实例化过程
    关键字super
    方法的重写
    继承
    JavaBean
    this关键字
    类的构造方法
    四种访问权限修饰符
    封装和隐藏
    初入博客园——你我共勉,至我的准读者朋友们
  • 原文地址:https://www.cnblogs.com/lovesumer/p/4409675.html
Copyright © 2011-2022 走看看