【GDAL】解决获取S57图层数异常

环境

系统:win10 x64

GDAL版本 :2.2.4

 

问题

使用GDAL读写S57文件,GDAL初始化时需要初始化环境变量。 如果未初始化,获取S57图层数异常。

 

解决方法

方法一

初始化GDAL时,需要设置环境变量。

CPLSetConfigOption("GDAL_DATA", "C:\\warmerda\\bld\\data");  

 GDAL正常初始化代码如下。

GDALDataset	*pGdalDataset;

GDALAllRegister();
CPLSetConfigOption("GDAL_DATA", "C:\\warmerda\\bld\\data");        //环境变量设置,必须调用
pGdalDataset = (GDALDataset *)GDALOpenEx(strFileName.c_str(), GDAL_OF_READONLY, NULL, NULL, NULL);

if (pGdalDataset == NULL)
{
    cout << "Open failed!" << endl;
    exit(1);
}
else
{
    cout << "Open successfully!" << endl;
}

 

方法二

点击 我的电脑右键属性 弹出对话框中选择 高级系统设置\高级\环境变量\系统变量 增加 GDAL_DATA,值为 C:\\warmerda\\bld\\data

 

跟踪调试,S57图层正常为28,异常为5。