藕锘 2022-10-11 14:25 采纳率: 87.5%
浏览 20
已结题

AE中,进行mxd文档内图形的查询选择

AE中,想在进窗口引入上一个窗口的mapcontrol控件,进行mxd文档内图形的查询选择
在上一个窗体的【空间查询】处,设置弹出一个新窗口,用于关键字查询,查询内容为上一个窗口中mapcontrol中mxd文档内图形的查询选择

img

img

img

private void SelectFeatureByAttribute()
        {
         
            string searchName = this.textBox1.Text.Trim();
            if (null != searchName && searchName.Length > 1)
            {//实例化给axMapControl1.Map.get_Layer()
                 ILayer layer = axMapControl1.Map.get_Layer(1);
                 IFeatureLayer featureLayer = layer as IFeatureLayer;//接口转换(查询),将矢量图层转成要素图层
                 IFeatureClass featureClass = featureLayer.FeatureClass;//只读,存放所有图形,构建一个要素类
                 IQueryFilter queryFilter = new QueryFilterClass();//报错Geodatabase改为false//查询过滤器
                 queryFilter.WhereClause = "continent like '%" + searchName + "%'";//设定过滤表达式%代表任何字符,这里写死了
                 IFeatureCursor featureCursor;//访问要素类一系列要素,用于实现属性查询
                 featureCursor = featureClass.Search(queryFilter, true);//形成一个查询记录集,指针定位。需要一个游标指向它
                 IFeature feature = null;
                 feature = featureCursor.NextFeature();//当feature为空时,第一次使用next,指向查询到的图形结果的第一个,下一次使用时就是下一个
                 if (feature != null)//此处只选择第一个
                 {//如果不为空,调用selectfeature方法,把图层上被选中的图形选出来,这个才可以高亮显示
                     axMapControl1.Map.SelectFeature(axMapControl1.get_Layer(1), feature);//把图层
                     axMapControl1.Refresh(esriViewDrawPhase.esriViewGeoSelection, null, null);
                 }
            }
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 已结题 (查看结题原因) 10月13日
    • 修改了问题 10月11日
    • 修改了问题 10月11日
    • 创建了问题 10月11日

    悬赏问题

    • ¥15 lvgl v8.2定时器提前到来
    • ¥15 qtcp 发送数据时偶尔会遇到发送数据失败?用的MSVC编译器(标签-qt|关键词-tcp)
    • ¥15 cam_lidar_calibration报错
    • ¥15 拓扑学,凸集,紧集。。
    • ¥15 如何扩大AIS数据容量
    • ¥15 单纯型python实现编译报错
    • ¥15 c++2013读写oracle
    • ¥15 c++ gmssl sm2验签demo
    • ¥15 关于模的完全剩余系(关键词-数学方法)
    • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助