目前不一樣的GIS軟件平臺具備本身獨特支持的數據格式,如ESRI的File GeoDataBase和Personal GeoDataBase、MapInfo的mif數據、AutoCAD的DWG數據、Google的Kml和Kmz數據等,PIE對這些經常使用軟件的數據格式都進行了支持,可以順利的進行瀏覽查看。數據庫
File GeoDataBase和Personal GeoDataBase是ESRI的本地數據存儲格式,其中File GDB以文件方式存儲,Personal GDB則爲一個MS-Access 的mdb數據庫, FGDB較PGDB具備更高的效率、更大的數據支持空間、更廣的運行平臺。ide
DWG是AutoCAD的數據格式,它採用點、線、面、文本組合存儲的方式存儲。spa
第一步3d |
經過文件路徑打開數據集code |
第二步視頻 |
進行多數據集接口轉換blog |
第三步教程 |
經過多數據集建立多圖層接口 |
接口/類ip |
方法 |
說明 |
DataSource.DatasetFactory |
OpenDataset |
打開數據集 |
Carto.LayerFactory |
CreateDefaultMultiLayer |
建立多圖層 |
CreateDefaultLayer |
建立圖層 |
項目路徑 |
|
數據路徑 |
百度雲盤地址下/PIE示例數據/矢量數據/FGDB/China.gdb 百度雲盤地址下/PIE示例數據/矢量數據/PGDB/China.mdb 百度雲盤地址下/PIE示例數據/矢量數據/DWG/China.dwg |
視頻路徑 |
百度雲盤地址下/PIE視頻教程/03.數據加載/04.打開GDB數據.avi |
示例代碼 |
|
![]() 1 (方法一)打開File GeoDatabase 2 FolderBrowserDialog fb = new FolderBrowserDialog(); 3 fb.Description = "File GDB(*.gdb) | *.gdb"; 4 if (fb.ShowDialog() != DialogResult.OK) return; 5 //打開數據集,當GDB中只有一個圖層或無圖層時,均返回空值 6 IMultiDataset multiDataset = DatasetFactory.OpenDataset(fb.SelectedPath, OpenMode.ReadOnly) as IMultiDataset; 7 if (multiDataset == null) 8 { 9 //建立圖層 10 ILayer player = PIE.Carto.LayerFactory.CreateDefaultLayer(fb.SelectedPath); 11 if(player == null) return; 12 // 添加圖層到地圖並刷新 13 mapControlMain.FocusMap.AddLayer(player); 14 mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll); 15 } 16 else 17 { 18 //建立圖層 19 IMultiLayer multiLayer = LayerFactory.CreateDefaultMultiLayer(multiDataset); 20 if (multiLayer == null) return; 21 // 添加圖層到地圖並刷新 22 mapControlMain.FocusMap.AddLayer(multiLayer as ILayer); mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll); 23 } 24 25 (方法二)打開Personal GDB和Dwg 26 OpenFileDialog openFileDialog = new OpenFileDialog(); 27 openFileDialog.Filter = "Personal GDB數據|*.mdb|Dwg數據|*.dwg"; 28 if (openFileDialog.ShowDialog() != DialogResult.OK) return; 29 //建立數據集 30 IMultiDataset multiDataset = PIE.DataSource.DatasetFactory.OpenDataset(openFileDialog.FileName,OpenMode.ReadOnly) as IMultiDataset; 31 if (multiDataset == null) return; 32 33 //建立圖層 34 IMultiLayer multiLayer = PIE.Carto.LayerFactory.CreateDefaultMultiLayer(multiDataset); 35 if (multiLayer == null) return; 36 // 添加圖層到地圖並刷新 37 mapControlMain.FocusMap.AddLayer(multiLayer as ILayer); 38 mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll); |