PIE SDK矢量數據的查詢

 

1.功能簡介

    矢量數據查詢有屬性查詢和空間幾何查詢,下面對矢量數據的屬性查詢和空間查詢作介紹ide

2.功能實現說明

2.1. 矢量數據的屬性和空間查詢

2.2. 實現思路及原理說明

第一步spa

獲得要查詢的圖層code

第二步視頻

設置屬性/空間查詢條件blog

第三步教程

根據查詢條件進行查詢並在地圖中高亮顯示接口

2.3.  核心接口與方法

接口/類事件

方法/屬性ip

說明ci

IQueryFilter

SetAttributeQuery()

設置屬性條件

IQueryFilter

SetSpatialQuery();

設置空間條件

IFeatureClass

Search(IQueryFilter filter);

 查詢

IFeatureCursor

NextFeature()

得到下一個要素

2.4. 示例代碼

屬性查詢:

項目路徑

百度雲盤地址下/PIE示例程序/04數據操做/04矢量數據的查詢

數據路徑

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

視頻路徑

   百度雲盤地址下/PIE示例程序/04數據操做/04矢量數據的查詢.avi

示例代碼

 1          /// <summary>
 2         /// 矢量數據集屬性查詢
 3         /// </summary>
 4         /// <param name="sender">事件觸發器</param>
 5         /// <param name="e">事件參數</param>
 6         private void toolStripButton_QueryAttribute_Click(object sender, EventArgs e)
 7         {
 8             //1.首先要獲取圖層要素
 9             IMap map = mapControlMain.FocusMap;
10             ILayer layer = map.GetLayer(0);
11             IFeatureLayer featureLayer = layer as IFeatureLayer;
12 
13             //2.設置查詢條件
14             IQueryFilter queryFilter = new QueryFilter();
15             string filter = "NAME='北京'";
16             queryFilter.SetAttributeQuery(filter);
17 
18             //3.獲得查詢結果
19             IFeatureCursor featureCursor = featureLayer.FeatureClass.Search(queryFilter);
20             IFeature feature = null;
21             feature = featureCursor.NextFeature();
22 
23             //清除以前查詢高亮顯示的結果
24             map.ClearSelectionFeatures();
25             //4.地圖顯示獲得的結果
26             if (feature != null)
27             {
28                 mapControlMain.FocusMap.SelectFeature(featureLayer as ILayer, feature);
29               }            mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);
30         }
View Code

 

空間查詢:

 

項目路徑

百度雲盤地址下/PIE示例程序/04數據操做/04矢量數據的查詢

數據路徑

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

視頻路徑

   百度雲盤地址下/PIE視頻教程/04數據操做/04矢量數據的查詢.avi

示例代碼

 1         /// <summary>
 2         /// 矢量數據集空間查詢
 3         /// </summary>
 4         /// <param name="sender">事件觸發器</param>
 5         /// <param name="e">事件參數</param>
 6         private void toolStripButton_QuerySpatial_Click(object sender, EventArgs e)
 7         {
 8             //1.首先要獲取圖層要素
 9             IMap map = mapControlMain.FocusMap;
10             ILayer layer = map.GetLayer(0);
11             IFeatureLayer featureLayer = layer as IFeatureLayer;
12 
13             //2.設置查詢條件
14             IQueryFilter queryFilter = new QueryFilter();
15             // 定義範圍
16             IEnvelope envelope = new Envelope();
17             envelope.PutCoords(110, 30, 115, 40);
18             queryFilter.SetSpatialQuery(envelope as IGeometry);
19 
20             //3.獲得查詢結果
21             IFeatureCursor featureCursor = featureLayer.FeatureClass.Search(queryFilter);
22             IFeature feature = null;
23             feature = featureCursor.NextFeature();
24 
25             //4.地圖顯示獲得的結果
26             map.ClearSelectionFeatures();
27             while (feature != null)
28             {
29                 mapControlMain.FocusMap.SelectFeature(featureLayer as ILayer, feature);
30                 feature = featureCursor.NextFeature();
31             }          mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);
32         }
View Code

2.5. 示例截圖

 

圖1.屬性查詢示例圖

  

圖2.空間幾何查詢

相關文章
相關標籤/搜索