我正在使用gdal库开发一个Qt项目。
Qt5.9.1。 Ubuntu 16.10 LTS。
我收到错误,我不知道出了什么问题。
#include <QCoreApplication>
#include <QFile>
#include "ogrsf_frmts.h"
int main(int argc, char *argv[])
{
OGRRegisterAll();
OGRDataSource *source;
source = OGRSFDriverRegistrar::Open( <path to s57 file>, FALSE );
if( source == NULL )
{
printf( "Open failed.\n" );
exit( 1 );
}
}
我收到以下错误:
main.cpp:11: error:
'Open' is not a member of 'OGRSFDriverRegistrar';
source = OGRSFDriverRegistrar::Open( <path to s57 chart file>, FALSE );
有人可以帮我解决错误吗?
答案 0 :(得分:1)
OGRSFDriverRegistrar 类被标记为旧类,因此不推荐使用。
docs建议使用此处引用的GDALDriverManager():
在新代码中使用GDALDriverManager!此类可能会被删除 稍后发布。
您使用的是哪个版本的GDAL?可能已经删除了 OGRSFDriverRegistrar 。
无论如何删除,我建议您尝试使用GDALDriverManager更新代码。
编辑:添加了示例。
#include "gdal_priv.h"
#include "cpl_conv.h" // for CPLMalloc()
int main()
{
GDALDataset *poDataset;
GDALAllRegister();
poDataset = (GDALDataset *) GDALOpen( pszFilename, GA_ReadOnly );
if( poDataset == NULL )
{
...;
}
}
取自GDAL API tutorial。
答案 1 :(得分:0)
找到OGR Tutorial。这里用例子解释这些功能。 @Petar给出了初步帮助。在进一步探索网站时,我找到了确切的方法。
private int CAMERA_REQUEST = 2000;