ArcgisEngine+C#开发中,对一个图层进行过滤,并只显示符合条件的要素
2013-07-17 15:01
155 查看
在二次开发中,经常会对一个图层进行查询,查询出符合条件的要素,我们通常会想到:
IQueryFilter queryFilter = new QueryFilterClass();
queryFilter.WhereClause = "XZQDM =510113";
IFeatureCursor featureCursor = sourceFeatureClass.Search(queryFilter, true);
IFeature feature= featureCursor.NextFeature();
while (feature!= null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(feature);
pFeature = featureCursor.NextFeature();
}
System.Runtime.InteropServices.Marshal.ReleaseComObject(featureCursor);
但是这种方法虽然可以找到我们希望得到的效果,但是不符合条件的要素依然显示。
其实有一种高效的方法,可以实现从一个图层查询,并只显示符合条件的要素:
其中featureLayer是进行查询的图层,"XZQDM =510113"是查询条件
IFeatureLayerDefinition featureLayerDefinition = featureLayer as IFeatureLayerDefinition;
featureLayerDefinition.DefinitionExpression ="XZQDM =510113";
在使用地图模块动态开发,即地图图层的要素类动态从sde数据库中获取要素类时(大量空间数据存储在sde的要素类中),
此方法十分有效,前提是模板要素类的表结构和sde中的获取要素类表结构相同。
其中featureClass是从sde空间数据库中获取的要素类,
featureLayer.FeatureClass=featureClass;
IFeatureLayerDefinition featureLayerDefinition = featureLayer as IFeatureLayerDefinition;
featureLayerDefinition.DefinitionExpression ="XZQDM =510113";
IQueryFilter queryFilter = new QueryFilterClass();
queryFilter.WhereClause = "XZQDM =510113";
IFeatureCursor featureCursor = sourceFeatureClass.Search(queryFilter, true);
IFeature feature= featureCursor.NextFeature();
while (feature!= null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(feature);
pFeature = featureCursor.NextFeature();
}
System.Runtime.InteropServices.Marshal.ReleaseComObject(featureCursor);
但是这种方法虽然可以找到我们希望得到的效果,但是不符合条件的要素依然显示。
其实有一种高效的方法,可以实现从一个图层查询,并只显示符合条件的要素:
其中featureLayer是进行查询的图层,"XZQDM =510113"是查询条件
IFeatureLayerDefinition featureLayerDefinition = featureLayer as IFeatureLayerDefinition;
featureLayerDefinition.DefinitionExpression ="XZQDM =510113";
在使用地图模块动态开发,即地图图层的要素类动态从sde数据库中获取要素类时(大量空间数据存储在sde的要素类中),
此方法十分有效,前提是模板要素类的表结构和sde中的获取要素类表结构相同。
其中featureClass是从sde空间数据库中获取的要素类,
featureLayer.FeatureClass=featureClass;
IFeatureLayerDefinition featureLayerDefinition = featureLayer as IFeatureLayerDefinition;
featureLayerDefinition.DefinitionExpression ="XZQDM =510113";
相关文章推荐
- C# ArcgisEngine开发中,对一个图层进行过滤,只显示符合条件的要素
- 【转】C# ArcgisEngine开发中,对一个图层进行过滤,只显示符合条件的要素
- 用C#进行ArcGIS 10 Engine 开发 - 安装配置和入门程序说明
- ArcGIS Engine + C# 实例开发教程: 属性数据表的查询显示
- ArcGIS Engine + C# 实例开发教程:第八讲 属性数据表的查询显示
- 在datagrid里面生成指定的DataView ,进行过滤.把符合条件的数据显示出来
- 在datagrid里面生成指定的DataView ,进行过滤.把符合条件的数据显示出来
- ARCGIS Extending Objects开发小控件限制条件---如果没有图层按钮显示灰色
- C#之要素图层过滤显示
- ArcGIS Engine + C# 开发过程中,鼠标在地图上滑过时,显示地图相关信息
- ArcGIS图层和要素的过滤显示
- ArcgisEngine+c#二次开发,sde要素类进行GP操作总结
- ArcEngine二次开发_03(鼠标在图层中选择要素进行高亮显示)
- 过滤数据源,只显示那些符合条件的数据
- 使用C#和Excel进行报表开发(七)-设置单元格的显示格式
- ArcGIS Desktop和Engine中对点要素图层Graduated Symbols渲染的实现
- iOS开发技巧之:如何在iOS平台上对一个视频进行解码和显示
- AE+C#开发问题之二——axTOCControl控件图层不显示问题
- 用C#在MVC模式下进行Web项目开发,cshtml下三级联动下拉框获取初始值及传值显示的问题
- C#实现将一个字符串进行翻转显示的6种方法