笔者正在努力学习GDAL,如有错误或不足之处,还请大佬指点。
使用GDAL读取数据源,需要遵循以下方法:
获取驱动==>打开数据源
一、Ogr可用的驱动
Ogr获取驱动的方法:
//读取方法1
Ogr.GetDriver(int index);
//读取方法2
Ogr.GetDriverByName(string name);
针对读取方法有以下几种:
GetDriver() | GetDriverByName() | 描述 |
0 | PCIDSK | PCIDSK是一种地理空间数据库文件格式,它支持存储栅格和矢量数据。该格式由加拿大公司PCI Geomatics开发 |
1 | PDS4 | PDS4是由美国国家航空航天局(NASA)开发的行星数据系统第四版,旨在提供一种统一、灵活和可扩展的数据格式,以支持行星科学数据的存储、管理和分发。 |
2 | VICAR | |
3 | JP2OpenJPEG | |
4 | MBTiles | |
5 | EEDA | |
6 | OGCAPI | |
7 | ESRI Shapefile | SHP驱动 |
8 | MapInfo File | MapInfo File是一种受支持的重要地理空间数据格式。MapInfo文件通常包括.tab、.map、.dat和.id等扩展名的文件组合,这些文件共同构成了一个完整的MapInfo数据集。 |
9 | UK .NTF | |
10 | LVBAG | |
11 | OGR_SDTS | |
12 | S57 | |
13 | DGN | |
14 | OGR_VRT | |
15 | Memory | "Memory" 数据源是一种特殊的数据存储方式,它允许在内存中创建和操作地理空间数据,而无需将其存储在磁盘上的文件中。 |
16 | CSV | |
17 | NAS | |
18 | GML | |
19 | GPX | |
20 | LIBKML | |
21 | KML | |
22 | GeoJSON | |
23 | GeoJSONSeq | |
24 | ESRIJSON | |
25 | TopoJSON | |
26 | Interlis 1 | |
27 | Interlis 2 | |
28 | OGR_GMT | |
29 | GPKG | |
30 | SQLite | 打开SQLite数据库的驱动 |
31 | WAsP | |
32 | PGeo | Esri的MDB数据库驱动 |
33 | MSSQLSpatial | |
34 | OGR_OGDI | |
35 | PostgreSQL | |
36 | MySQL | |
37 | OpenFileGDB | Esri的GDB数据库驱动 |
38 | DXF | |
39 | CAD | |
40 | FlatGeobuf | |
41 | Geoconcept | |
42 | GeoRSS | |
43 | VFK | |
44 | PGDUMP | |
45 | OSM | |
46 | GPSBabel | |
47 | OGR_PDS | |
48 | WFS | |
49 | OAPIF | |
50 | EDIGEO | |
51 | SVG | |
52 | Idrisi | |
53 | XLS | |
54 | ODS | |
55 | XLSX | |
56 | Elasticsearch | |
57 | Carto | |
58 | AmigoCloud | |
59 | SXF | |
60 | Selafin | |
61 | JML | |
62 | PLSCENES | |
63 | CSW | |
64 | VDV | |
65 | GMLAS | |
66 | MVT | |
67 | NGW | |
68 | MapML | |
69 | GTFS | |
70 | PMTiles | |
71 | JSONFG | |
72 | TIGER | |
73 | AVCBin | |
74 | AVCE00 | |
75 | HTTP |
获取完驱动后即可通过文件路径读取数据源:
//示例:
Driver mdbDriver = Ogr.GetDriverByName("pGeo");
//该方法也可以:Driver mdbDriver = Ogr.GetDriver(32);
DataSource mdbSource = mdbDriver.Open(mdbPath, 0);
//以下的方法更加直接,无需考虑数据源所需的驱动:
DataSource source = Ogr.Open(pgdbPath, 0);
二、遇见的问题梳理
1.当使用GDAL打开MDB数据库时,出现以下报错:
由于笔者电脑中没有Access数据库,但是使用GDAL读取GDB和SHP数据库时正常读取,读取MDB数据库时出现错误,初步猜测可能是未安装Access导致的原因。