Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ GPKG未被识别为受支持的文件格式_C++_Gdal - Fatal编程技术网

C++ GPKG未被识别为受支持的文件格式

C++ GPKG未被识别为受支持的文件格式,c++,gdal,C++,Gdal,我尝试读取gpkg文件,以提取街道和建筑物等地理信息 因此,我从以下代码开始: #include "gdal_priv.h" #include <iostream> int main() { GDALDataset* poDataset; GDALAllRegister(); std::cout << "driver# " << GetGDALDriverManager()->GetDriverCount()

我尝试读取gpkg文件,以提取街道和建筑物等地理信息

因此,我从以下代码开始:

#include "gdal_priv.h"
#include <iostream>

int main() {
    GDALDataset* poDataset;
    GDALAllRegister();

    std::cout << "driver# " << GetGDALDriverManager()->GetDriverCount()
              << std::endl;

    for (int i = 0; i < GetGDALDriverManager()->GetDriverCount(); i++) {
        auto driver = GetGDALDriverManager()->GetDriver(i);
        auto info = driver->GetDescription();
        std::cout << "driver " << i << ": " << info << std::endl;
    }

    auto driver = GetGDALDriverManager()->GetDriverByName("GPKG");

    poDataset = (GDALDataset*)GDALOpen("Building_LoD1.gpkg", GA_ReadOnly);

    if (poDataset == NULL) {
        //  ...;
    }

    return 0;
}
有人知道为什么
gpkg
文件可能被报告为不受支持吗


gdal
版本是
2.3.2

我解决了这个问题。产生此消息的原因不是gdal不支持文件格式,而是我使用了错误的函数来打开文件

如果我想读取包含矢量信息的文件,则需要使用:

GDALDataset* poDS;
poDS = (GDALDataset*)GDALOpenEx( "Building_LoD1.gpkg", GDAL_OF_VECTOR, NULL, NULL, NULL);

我解决了这个问题。产生此消息的原因不是gdal不支持文件格式,而是我使用了错误的函数来打开文件

如果我想读取包含矢量信息的文件,则需要使用:

GDALDataset* poDS;
poDS = (GDALDataset*)GDALOpenEx( "Building_LoD1.gpkg", GDAL_OF_VECTOR, NULL, NULL, NULL);