参数
-
pszFilename – 要访问的文件的名称。在特殊驱动程序的情况下,这可能不是指物理文件,而是包含有关驱动程序如何访问数据集的信息。它应该是 UTF-8 编码。
-
eAccess – 所需的访问权限,GA_Update 或 GA_ReadOnly。许多驱动程序仅支持只读访问
返回值
GDALDatasetH 句柄或失败时为 NULL。对于 C++ 应用程序,此句柄可以转换为GDALDataset *。
GDALOpenEx ( const char * pszFilename , unsigned int nOpenFlags , const char * const * papszAllowedDrivers , const char * const * papszOpenOptions , const char * const * papszSiblingFiles )
打开栅格或矢量文件作为GDALDataset。
该函数将依次调用每个注册的GDALDriver的 Open 方法来尝试打开传递的文件或虚拟数据集名称。第一次成功打开将导致返回数据集。如果所有驱动程序都失败,则返回 NULL 并发出错误。
参数
-
pszFilename – 要访问的文件的名称。在特殊驱动程序的情况下,这可能不是指物理文件,而是包含有关驱动程序如何访问数据集的信息。它应该是 UTF-8 编码。
-
nOpenFlags – GDAL_OF_ 标志的组合,可以通过逻辑或运算符组合。
-
驱动程序类型:
-
GDAL_OF_RASTER 用于光栅驱动程序,
-
GDAL_OF_MULTIDIM_RASTER 用于多维光栅驱动程序,
-
GDAL_OF_VECTOR 用于矢量驱动程序,
-
GDAL_OF_GNM 用于地理网络模型驱动程序。
-
-
访问模式:GDAL_OF_READONLY(独占)或GDAL_OF_UPDATE。
-
共享模式:GDAL_OF_SHARED。如果设置,它允许与设置了 GDAL_OF_SHARED 的其他调用者共享数据集的GDALDataset句柄。特别是,GDALOpenEx ()将首先查询其当前打开和共享的GDALDataset的列表,如果 GetDescription() 名称与传递给GDALOpenEx ()的 pszFilename 完全匹配,它将被引用并返回,如果GDALOpenEx ()是从同一个线程调用。
-
详细错误:GDAL_OF_VERBOSE_ERROR。如果设置,尝试打开文件失败将导致报告错误消息。
-
-
papszAllowedDrivers – NULL 以考虑所有候选驱动程序,或 NULL 终止的字符串列表,其中包含必须考虑的驱动程序短名称。
-
papszOpenOptions– NULL 或以 NULL 结尾的字符串列表,其中包含传递给候选驱动程序的打开选项。所有驱动程序都有一个选项 OVERVIEW_LEVEL=level,用于选择数据集的特定概览级别。级别索引从 0 开始。级别编号可以加上“only”后缀,以指定只有此概览级别必须可见,而不是子级别。默认情况下会验证打开的选项,如果无法识别该选项,则会发出警告。在某些情况下,这可能是不可取的(例如,当不知道哪个驱动程序将打开文件时),因此可以将特殊的打开选项 VALIDATE_OPEN_OPTIONS 设置为 NO 以避免此类警告。或者,从 GDAL 2.1 开始,选项名称前面可以带有 @ 字符,以指示如果驱动程序未声明此选项,它可能不会导致警告。从 GDAL 3.3 开始,
-
papszSiblingFiles – NULL,或作为主文件名辅助文件名的以 NULL 结尾的字符串列表。如果传递了 NULL,则将进行文件系统的探测。