gdal库中设置prj4库全路径的用法

手册/FAQ (707) 2016-04-21 09:44:53

 

 gdal库实现投影转换之类的功能实际上底层都是调用prj4库的功能。如果gdal使用非静态的方式集成prj4库,实际上是采用动态加载prj4库来调用它的接口的。我在gdal库的三个使用心得中提出一个问题:gdal库是如何找到prj4库的路径。今天研究了一下gdal库的源码,弄明白了这个问题。原来有一个ogr选项——PROJSO来专门设置prj4库的全路径的。代码如下:

  • std::string strPrjLibFullPath = (_T("C:\\projd.dll"));  
  • CPLSetConfigOption("PROJSO",strPrjLibFullPath.c_str());  

 

如果不进行设置,prj4库将已以下名字加载:

      Linux/Unix? 平台:libproj.so

      Windows : proj.dll

      MacOSX : libproj.dylib

      MinGW32 编译:libproj-0.dll 

      Cygwin编译:cygproj-0.dll

 

     需要指出的是,在WinCE平台上不支持PROJSO选项的设置。可以通过以下代码获取该选  项的设置值:

  • const char *pszLibName = NULL;  
  • pszLibName = CPLGetConfigOption("PROJSO",NULL);  
THE END