C#+AE 對於做屬性查詢的一定總結

來源:互聯網
上載者:User

本人剛做了有關屬性查詢的一些功能的實現,在這總結一下。

有錯誤之處和不專業之處還希望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())); ;

                         }

                     }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.