PIE SDK打開GDB、Dwg數據

 

1. 功能簡介

    目前不一樣的GIS軟件平臺具備本身獨特支持的數據格式,如ESRI的File GeoDataBase和Personal GeoDataBase、MapInfo的mif數據、AutoCAD的DWG數據、Google的Kml和Kmz數據等,PIE對這些經常使用軟件的數據格式都進行了支持,可以順利的進行瀏覽查看。數據庫

2. 功能實現說明

2.1 數據格式介紹

    File GeoDataBase和Personal GeoDataBase是ESRI的本地數據存儲格式,其中File GDB以文件方式存儲,Personal GDB則爲一個MS-Access 的mdb數據庫, FGDB較PGDB具備更高的效率、更大的數據支持空間、更廣的運行平臺。ide

 

    DWG是AutoCAD的數據格式,它採用點、線、面、文本組合存儲的方式存儲。spa

2.2  實現思路及原理說明

第一步3d

經過文件路徑打開數據集code

第二步視頻

進行多數據集接口轉換blog

第三步教程

經過多數據集建立多圖層接口

2.3 核心接口與方法

接口/類ip

方法

說明

DataSource.DatasetFactory

OpenDataset

打開數據集

Carto.LayerFactory

CreateDefaultMultiLayer

建立多圖層

CreateDefaultLayer

建立圖層

2.4 示例代碼

項目路徑

百度雲盤地址下/PIE示例程序/03.數據加載/04.打開GDB數據

數據路徑

百度雲盤地址下/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);
View Code

2.5 示例截圖

 

相關文章
相關標籤/搜索