GDALOpenEx
GDALDatasetH GDALOpenEx(const char *pszFilename,
unsigned int nOpenFlags,
const char *const *papszAllowedDrivers, const char *const *papszOpenOptions,
const char *const *papszSiblingFiles)
参数意义:
主要是前两项,后面三项默认设置为空即可
pszFilename – 要访问的文件的名称。在特殊驱动程序的情况下,这可能不是指物理文件,而是包含有关驱动程序如何访问数据集的信息。它应该是 UTF-8 编码。
nOpenFlags-GDAL_OF_标志的组合,可以通过逻辑或运算符进行组合。
① 驱动程序种类: GDAL_OF_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完全匹配,它将被引用并返回。
papszAllowedDrivers-NULL表示考虑所有的候选驱动,或者是一个以NULL结尾的字符串列表,其中包含必须考虑的驱动短名称。
papszOpenOptions-NULL,或者一个以NULL结尾的字符串列表,包含传递给候选驱动的开放选项。所有驱动程序都有一个选项,OVERVIEW_LEVEL=level,用于选择数据集的特定概览级别。级别索引从0开始。 级别号可以以 "only "为后缀,指定只有这个概览级别必须可见,而不是子级别。默认情况下,打开的选项会被验证,如果选项不被识别,会发出警告。在某些情况下,这可能是不可取的(例如,当不知道哪个驱动程序将打开文件时),所以特殊的打开选项VALIDATE_OPEN_OPTIONS可以被设置为NO,以避免这种警告。另外,从GDAL 2.1开始,一个选项的名字前面可以加上@字符,表示如果驱动程序没有声明这个选项,它可能不会引起警告。
papszSiblingFiles-NULL,或者一个以NULL结尾的字符串列表,这些字符串是主文件名的辅助性文件名。如果传递NULL,将对文件系统进行探测。