PIE SDK矢量數據的讀取

 

1.功能簡介

    GIS將地理空間數據表示爲矢量數據和柵格數據。矢量數據模型使用點、線和多邊形來表示具備清晰空間位置和邊界的空間要素,如控制點、河流和宗地等,每一個要素被賦予一個ID,以便與其屬性相關聯。柵格數據模型使用一個格網和格網元胞(像元)表明空間要素,元胞值表示該元胞位置的空間要素屬性。柵格數據模型適用於表示連續的要素,如海拔和降水量。ide

    

   [矢量數據模型]                                                    [柵格數據模型]spa

    目前PIE SDK支持多種數據格式的數據讀取,下面對矢量數據格式的數據讀取功能進行介紹。code

2.功能實現說明

2.1. 矢量數據的讀取

2.2. 實現思路及原理說明

第一步orm

獲取要讀取數據的數據集視頻

第二步blog

從數據集裏面讀取須要讀取的信息教程

2.3. 核心接口與方法

接口/類索引

方法/屬性接口

說明ip

IFeatureDataset

SpatialReference

空間參考

 

 

 

 

IFeatureClass

IFeature GetFeature (System.Int64 nFID)

獲取要素類的一個要素

GetFeatureCount()

獲得要素數量

GetFields()

獲取全部字段

GetFeatureDataset ()

獲取掛載的矢量數據集

GetName()

數據名稱

IFields

GetFieldIndex()

獲得字段的索引值

IFeatureCursor

NextFeature

獲取下一個要素

 

 

2.4. 示例代碼

項目路徑

百度雲盤地址下/PIE示例程序/04數據操做/03矢量數據集的讀取

數據路徑

              百度雲盤地址下/PIE示例數據/矢量數據/Shape/省級行政區.shp

視頻路徑

    百度雲盤地址下/PIE視頻教程/04數據操做/03矢量數據集的讀取.avi

示例代碼

 1          /// <summary>
 2         /// 矢量數據的讀取
 3         /// </summary>
 4         /// <param name="sender"></param>
 5         /// <param name="e"></param>
 6         private void toolStripButton_ReadShpDataInfo_Click(object sender, EventArgs e)
 7         {
 8             //1.獲取要讀取的數據
 9             ILayer layer = mapControlMain.FocusMap.GetLayer(0);
10             IFeatureClass featureClass = (layer as IFeatureLayer).FeatureClass;
11 
12             //2.要素數據集信息的讀取
13             string fileName = featureClass.GetName();
14             long featureCount = featureClass.GetFeatureCount();
15             string spatialReference = featureClass.GetFeatureDataset().SpatialReference.Name;// featureClass.SpatialReference.ExportToWkt();
16             string message = string.Format("數據名稱:{0};\r\n要素的數量:{1};\r\n數據空間參考:{2}", fileName, featureCount, spatialReference);
17             MessageBox.Show(message, string.Format("{0}數據的信息:", fileName));
18 
19             //要素的信息
20             IFeature feature = featureClass.GetFeature(0);
21             IFields fields = featureClass.GetFields();
22             int fieldIndex = fields.GetFieldIndex("NAME");
23             IField field = fields.GetField(fieldIndex);
24             string fieldValue = field.Name;
25             string fieldInfo = "";
26             while (feature != null)
27             {
28                 fieldInfo += fieldValue + "字段值爲:\r\n" + feature.GetValue(fieldValue) + "\r\n";
29                 MessageBox.Show(fieldInfo, "要素的信息");
30                 feature = null;//數據量太大,示例只讀取一條要素的信息
31                 //feature = featureClass.GetNextFeature();
32             }     
33         }
View Code 

2.5. 示例截圖

     

相關文章
相關標籤/搜索