作者:朱金灿

来源:http://blog.csdn.net/clever101

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);

参考文献:

1. Configuration Options

04-19 18:02