zoukankan      html  css  js  c++  java
  • C#+AE 对于做属性查询的一定总结

    本人刚做了有关属性查询的一些功能的实现,在这总结一下。

    有错误之处和不专业之处还希望GIS和AE开发的高手们给以指点。

    //******其中第二部分发生了点错误,现在已更改***********//

    ①:据FeatureLayer得到Feature的方法:

    代码如下:

                    ILayer pLayer;
                    pLayer = frm1.axMapControl1.Map.get_Layer(LayerBoxEdit.SelectedIndex) as ILayer;//frm1和LayerBoxEdit.SelectedIndex都是变量
                    IFeatureLayer pFeatureLayer;
                    pFeatureLayer = pLayer as IFeatureLayer;
                    if (pFeatureLayer == null)
                    {
                        return;
                    }

                   
                  
                    IFeatureCursor pFeatureCursor;
                    pFeatureCursor = pFeatureLayer.Search(null, false);
                    IFeature pFeature;
                    pFeature = pFeatureCursor.NextFeature();

    ②:据FeatureClass得到Feature的方法:

                

     IFeatureLayer pFeatureLayer;
                    pFeatureLayer = frm1.axMapControl1.Map.get_Layer(0) as IFeatureLayer;
                    IFeatureClass pFeatureClass;
                    pFeatureClass = pFeatureLayer.FeatureClass;
                    IQueryFilter pQueryFilter;
                    pQueryFilter = new QueryFilterClass();
                  //  pQueryFilter.WhereClause = "";

                    IFeature pFeature;

             for(int j=0;j< pFeatureClass.FeatureCount(pQueryFilter); j++)

                {

                     pFeature = pFeatureClass.GetFeature(j);
                }

                  ③:在TreeList中点击子节点得到Feature的方法:

                          

      if (e.Node.HasChildren)
                    {
                        return;
                    }

    if (!(e.Node.HasChildren)) //***********//这个存在bug,若节点超过两级则出错
                    {

                 

     for (int i = 0; i < this.axMapControl1.LayerCount; i++)
                        {

                            //如果父节点名称和图层名相同,获取索引
                            if (e.Node.ParentNode.GetValue(0).ToString() == this.axMapControl1.get_Layer(i).Name)
                            {
                                layerIndex = i;
                                IFeature pFeature;                             
     
                               pFeature = (this.axMapControl1.get_Layer(layerIndex) as IFeatureLayer).FeatureClass.GetFeature(int.Parse(this.treeList1.FocusedNode.GetValue(0).ToString())); ;

                             }

                         }

  • 相关阅读:
    linux 学习笔记 groupadd创建组
    linux学习笔记 4建立用户
    Linux学习笔记 3 权限篇
    Linux学习笔记 1 环境变量 2 vi命令
    指针 以及取地址
    练习题
    weblogic domain creation
    hibernate log4j 输出sql
    练习九 组函数应用
    练习八 spool导出
  • 原文地址:https://www.cnblogs.com/yanhan/p/2706860.html
Copyright © 2011-2022 走看看