没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论














第七节 空间查询与属性查询
1、新建项目
窗体设计如下:
在主窗体上的菜单项上添加一二级菜单。
查询(menuQuery)
……属性查询(menuAttributeQuery)
……空间查询(menuSpatialQuery)
添加两个窗体,分别用于空间查询和属性查询,参数设置如下表:
窗体名称(Name) Text 属性 描述
SpatialQueryForm
空间查询 用于空间查询参数设置
AttributeQueryForm
属性查询 用于属性查询参数设置

2、属性查询
(1)打开“属性查询”窗体的设计器。添加三个 Label 控件,两个 ComboBox,两个
Button 和一个 TextBox。各控件属性设置如下:
名称(Name)
Text 属性
描述
lblLayer
选择图层:
标签
lblField
字段名称:
标签
lblFind
查找内容:
标签
cboLayer
MapControl 中的图层名称
cboField
cboLayer 选中图层的所有字段名称
txtValue
输入的查询对象名称
btnOk
确定
查询按钮
btnCancel
取消
取消查询按钮
(2)代码编辑
添加引用:
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Geodatabase;
定义两个成员变量,一个用于存储地图数据,一个用于存储当前选中图层:
//地图数据
private AxMapControl mMapControl;
//选中图层
private IFeatureLayer mFeatureLayer;
修改其构造函数,构造函数中添加一个参数 MapControl,用于获取 MapControl 中的数据,
如下所示:
public AttributeQueryForm(AxMapControl mapControl)
{

InitializeComponent();
this.mMapControl = mapControl;
}
1111
窗体的 Load 事件:用于初始化 cboLayer,获取 MapControl 中的图层名称:
private void AttributeQueryForm_Load(object sender, EventArgs e)
{
//MapControl 中没有图层时返回
if (this.mMapControl.LayerCount <= 0)
return;
//获取 MapControl 中的全部图层名称,并加入 ComboBox
//图层
ILayer pLayer;
//图层名称
string strLayerName;
for (int i = 0; i < this.mMapControl.LayerCount; i++)
{
pLayer = this.mMapControl.get_Layer(i);
strLayerName = pLayer.Name;
//图层名称加入 cboLayer
this.cboLayer.Items.Add(strLayerName);
}
//默认显示第一个选项
this.cboLayer.SelectedIndex = 0;
}
在 CboLayer 的 SelectedIndexChanged 事件,当选中图层发生变化时,cboField 中的字段名
称重新获取:
private void cboLayer_SelectedIndexChanged(object sender, EventArgs e)
{
//获取 cboLayer 中选中的图层
mFeatureLayer = mMapControl.get_Layer(cboLayer.SelectedIndex) as IFeatureLayer;
IFeatureClass pFeatureClass = mFeatureLayer.FeatureClass;
//字段名称
string strFldName;
for (int i = 0; i < pFeatureClass.Fields.FieldCount; i++)
{
strFldName = pFeatureClass.Fields.get_Field(i).Name;
//图层名称加入 cboField
剩余12页未读,继续阅读
资源评论


尚尚尚5595
- 粉丝: 0
- 资源: 8
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
