【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。
