資源簡介
通過gdal打開ArcGIS的File GeoDatabase數據格式,并顯示屬性。
代碼片段和文件信息
using?OSGeo.OGR;
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.Linq;
using?System.Text;
using?System.Threading.Tasks;
using?System.Windows.Forms;
namespace?GDALTest01
{
????public?partial?class?Form1?:?Form
????{
????????private?OSGeo.OGR.DataSource?poDS?=?null;
????????public?Form1()
????????{
????????????InitializeComponent();
????????}
????????private?void?button1_Click(object?sender?EventArgs?e)
????????{
????????????//?為了支持中文路徑,請添加下面這句代碼?????????
????????????OSGeo.GDAL.Gdal.SetConfigOption(“GDAL_FILENAME_IS_UTF8“?“NO“);
????????????OSGeo.GDAL.Gdal.SetConfigOption(“PGEO_DRIVER_TEMPLATE“?“DRIVER=Microsoft?Access?Driver?(*.mdb?*.accdb);DBQ=%s“);
????????????OSGeo.GDAL.Gdal.SetConfigOption(“MDB_DRIVER_TEMPLATE“?“DRIVER=Microsoft?Access?Driver?(*.mdb?*.accdb);DBQ=%s“);
????????????//?為了使屬性表字段支持中文,請添加下面這句?????????
????????????OSGeo.GDAL.Gdal.SetConfigOption(“SHAPE_ENCODING“?““);
????????????string?strVectorFile?=?@“D:\test.gdb“;
????????????//?注冊所有的驅動??????
????????????Ogr.RegisterAll();
????????????//創建數據,這里以創建ESRI的shp文件為例?????
????????????string?strDriverName?=?“OpenFileGDB“;
????????????Driver?oDriver?=?Ogr.GetDriverByName(strDriverName);
????????????if?(oDriver?==?null)
????????????????MessageBox.Show(“Driver?Error“);
????????????if?(System.Environment.GetEnvironmentVariable(“GDAL_DATA“)?==?null)
????????????????System.Environment.SetEnvironmentVariable(“GDAL_DATA“?Application.StartupPath?+?“\\gdal-data“);
????????????if?(System.Environment.GetEnvironmentVariable(“GEOTIFF_CSV“)?==?null)
????????????????System.Environment.SetEnvironmentVariable(“GEOTIFF_CSV“?Application.StartupPath?+?“\\gdal-data“);
????????????if?(System.Environment.GetEnvironmentVariable(“GDAL_DRIVER_PATH“)?==?null)
????????????????System.Environment.SetEnvironmentVariable(“GDAL_DRIVER_PATH“?Application.StartupPath?+?“\\gdalplugins“);
????????????
????????????oDriver.Register();
????????????poDS?=?oDriver.Open(strVectorFile?0);
????????????if?(poDS?==?null)
????????????????MessageBox.Show(“DataSource?Creation?Error“);
????????????for?(int?i?=?0;?i?yerCount();?i++)
????????????{
????????????????layer?layer?=?poDS.GetlayerByIndex(i);
????????????????listBox1.Items.Add(layer.GetName());
????????????}
????????}
????????private?void?listBox1_SelectedIndexChanged(object?sender?EventArgs?e)
????????{
????????????if(poDS?!=?null)
????????????{
????????????????layer?layer?=?poDS.GetlayerByName(listBox1.SelectedItem.ToString());
????????????????FeatureDefn?featDefn?=?layer.GetlayerDefn();
????????????????int?pFieldsCount?=?featDefn.GetFieldCount();
????????????????listView1.Columns.Clear();
????????????????for?(int?i?=?0;?i?????????????????{
????????????????????listView1.Columns.Add(featDefn.GetFieldDefn(i).GetName());
????????????????}
????????????????layer.ResetReading();
??????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????..A..H.?????57344??2018-10-02?13:10??GDALTest01\.vs\GDALTest01\v15\.suo
?????文件??????????0??2018-10-02?08:24??GDALTest01\.vs\GDALTest01\v15\Server\sqlite3\db.lock
?????文件?????598016??2018-10-02?12:52??GDALTest01\.vs\GDALTest01\v15\Server\sqlite3\storage.ide
?????文件??????32768??2018-10-02?11:39??GDALTest01\.vs\GDALTest01\v15\Server\sqlite3\storage.ide-shm
?????文件????4120032??2018-10-02?13:10??GDALTest01\.vs\GDALTest01\v15\Server\sqlite3\storage.ide-wal
?????文件????????187??2018-10-02?08:23??GDALTest01\GDALTest01\App.config
?????文件????2284544??2018-08-30?00:45??GDALTest01\GDALTest01\bin\Debug\cairo.dll
?????文件????1043456??2017-09-03?16:15??GDALTest01\GDALTest01\bin\Debug\cfitsio.dll
?????文件?????111104??2018-08-30?00:45??GDALTest01\GDALTest01\bin\Debug\expat.dll
?????文件????9428976??2017-07-26?11:01??GDALTest01\GDALTest01\bin\Debug\FileGDBAPI.dll
?????文件??????58368??2018-08-30?00:45??GDALTest01\GDALTest01\bin\Debug\freexl.dll
?????文件?????117760??2018-08-30?00:45??GDALTest01\GDALTest01\bin\Debug\fribidi.dll
?????文件???16848384??2018-08-30?00:45??GDALTest01\GDALTest01\bin\Debug\gdal203.dll
?????文件??????19968??2018-08-30?00:45??GDALTest01\GDALTest01\bin\Debug\gdalconst_csharp.dll
?????文件??????16384??2018-08-30?00:45??GDALTest01\GDALTest01\bin\Debug\gdalconst_wrap.dll
?????文件??????11264??2018-10-02?13:05??GDALTest01\GDALTest01\bin\Debug\GDALTest01.exe
?????文件????????187??2018-10-02?08:23??GDALTest01\GDALTest01\bin\Debug\GDALTest01.exe.config
?????文件??????30208??2018-10-02?13:05??GDALTest01\GDALTest01\bin\Debug\GDALTest01.pdb
?????文件??????97280??2018-08-30?00:45??GDALTest01\GDALTest01\bin\Debug\gdal_csharp.dll
?????文件??????80896??2018-08-30?00:45??GDALTest01\GDALTest01\bin\Debug\gdal_wrap.dll
?????文件????1012224??2018-08-30?00:45??GDALTest01\GDALTest01\bin\Debug\geos.dll
?????文件?????227840??2018-08-30?00:45??GDALTest01\GDALTest01\bin\Debug\geos_c.dll
?????文件????2108928??2017-09-03?18:00??GDALTest01\GDALTest01\bin\Debug\hdf5.dll
?????文件?????235520??2017-09-03?18:00??GDALTest01\GDALTest01\bin\Debug\hdf5_cpp.dll
?????文件??????97792??2017-09-03?18:00??GDALTest01\GDALTest01\bin\Debug\hdf5_hl.dll
?????文件??????10240??2017-09-03?18:00??GDALTest01\GDALTest01\bin\Debug\hdf5_hl_cpp.dll
?????文件?????546816??2017-09-03?18:05??GDALTest01\GDALTest01\bin\Debug\hdfdll.dll
?????文件?????900608??2018-08-30?00:45??GDALTest01\GDALTest01\bin\Debug\iconv.dll
?????文件?????291840??2018-08-30?00:45??GDALTest01\GDALTest01\bin\Debug\libcurl.dll
?????文件????1175552??2018-08-30?00:45??GDALTest01\GDALTest01\bin\Debug\libeay32.dll
............此處省略93個文件信息
評論
共有 條評論