矢量數據查詢有屬性查詢和空間幾何查詢,下面對矢量數據的屬性查詢和空間查詢作介紹ide
第一步spa |
獲得要查詢的圖層code |
第二步視頻 |
設置屬性/空間查詢條件blog |
第三步教程 |
根據查詢條件進行查詢並在地圖中高亮顯示接口 |
接口/類事件 |
方法/屬性ip |
說明ci |
IQueryFilter |
SetAttributeQuery() |
設置屬性條件 |
IQueryFilter |
SetSpatialQuery(); |
設置空間條件 |
IFeatureClass |
Search(IQueryFilter filter); |
查詢 |
IFeatureCursor |
NextFeature() |
得到下一個要素 |
屬性查詢:
項目路徑 |
百度雲盤地址下/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 } |
空間查詢:
項目路徑 |
百度雲盤地址下/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 } |
圖1.屬性查詢示例圖
圖2.空間幾何查詢