生活随笔
收集整理的這篇文章主要介紹了
ArcGIS Engine属性查询和空间查询联合查询要素
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ArcGIS Engine屬性查詢和空間查詢聯合查詢要素
項目中遇到了需要通過屬性查詢和空間查詢兩種查詢方式聯合,查找要素,主要流程是先通過空間查詢,選擇到符合條件的要素,添加到選擇集中,然后再通過屬性查詢條件在候選集中查找要素,最終篩選出符合條件的要素。
主要代碼如下:
/
/定義和創建用于空間查詢的ISpatialFilter接口的對象ISpatialFilter spatialFilter = new SpatialFilterClass();//默認設定用于查詢的空間幾何體為當前地圖源圖層中所有要素幾何體的集合spatialFilter.Geometry = pFeature.Shape;//根據對空間選擇方法的選擇采用相應的空間選擇方法spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;//進行接口轉換,使用IFeatureSelection接口選擇要素IFeatureSelection featureSelection = pLayer as IFeatureSelection;//使用IFeatureSelection接口的SelectFeatures方法根據空間查詢過濾器選擇要素,將其放在新的選擇集中featureSelection.SelectFeatures((IQueryFilter)spatialFilter, esriSelectionResultEnum.esriSelectionResultAdd, false);//新建IQueryFilter接口的對象來進行where語句的定義IQueryFilter queryFilter = new QueryFilterClass();設置where語句內容queryFilter.WhereClause = sql;featureSelection.SelectFeatures(queryFilter, esriSelectionResultEnum.esriSelectionResultAnd, false);featureSelection.SelectionSet.Search(null, false, out ppCursor); ICursor ppCursor;IFeatureCursor pFeatureCursor2 = ppCursor as IFeatureCursor;IFeature pFeature2 = pFeatureCursor2.NextFeature();while (pFeature2 != null){.....}
總結
以上是生活随笔為你收集整理的ArcGIS Engine属性查询和空间查询联合查询要素的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。