[转] AE中如何由IFeature 如何获取所对应的FeatureClass

简介:

转载的原文 AE中如何由IFeature 如何获取所对应的FeatureClass

 
先获取FeatureClass,然后遍历Map中所有的FeatureLayer,然后比较
FeatureClass与FeatureLayer所对应的FeatureClass。
 
下面的例子中是在编辑功能里,删除一个Feature后,所触发的事件。目的是找到该Feature所在的FullPathName,并且输出该对象的坐标和ID号。
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
private  void  OnDeleteFeatureMethod( object  o)
{          
  IFeature pFeature = o  as  IFeature;        
  IFeatureClass pFeatureClass = pFeature.Class  as  IFeatureClass;
   for  ( int  i = 0; i < axMapControl1.Map.LayerCount;i++ )
  {
             IFeatureLayer iFeatureLayer = axMapControl1.get_Layer(i)  as  IFeatureLayer;
             IFeatureClass iFeatureCla = iFeatureLayer.FeatureClass;
              
                 if  (iFeatureCla == pFeatureClass)
                 {
                     IWorkspace pWorkSpace = m_EngineEditor.EditWorkspace;
                     textBox3.Text +=  "操作的文件全路径:"  + pWorkSpace.PathName +  "\\"  +       axMapControl1.get_Layer(i).Name +  ".shp "  "\r\n" ;
                     break ;
                 }
         }
 
          if  (pFeature.Shape.GeometryType == esriGeometryType.esriGeometryPoint)
          {
              IGeometry iGe = pFeature.Shape;
              IPoint ipo =  new  PointClass();
              ipo = iGe  as  IPoint;
              int  a = 0;
              int  b = 0;
              axMapControl1.FromMapPoint(ipo,  ref  a,  ref    b);
              textBox3.Text +=  "删除的点的ID号:"  + pFeature.OID +  ",坐标:("  + a +  ","  + b +  ")"  "\r\n" ;
          }
          else  if  (pFeature.Shape.GeometryType == esriGeometryType.esriGeometryPolygon)
          {
              textBox3.Text +=  "删除的多边形对象的ID号:"  + pFeature.OID +  ",坐标:" ;
              IPolygon pPolygon = (IPolygon)pFeature.Shape;
              int  a = 0;
              int  b = 0;
              //把该feature强制转换为一个点的集合,再取点的坐标
              IPointCollection pPointCollection = pPolygon  as  IPointCollection;
              for  ( int  i = 0; i < pPointCollection.PointCount - 1; i++)
              {
                  IPoint ipo = pPointCollection.get_Point(i);
                  axMapControl1.FromMapPoint(ipo,  ref  a,  ref    b);
                  textBox3.Text +=  "("  + a +  ","  + b +  ")"  "\t" ;
              }
              textBox3.Text +=  "\r\n" ;
          }
  
          else  if  (pFeature.Shape.GeometryType == esriGeometryType.esriGeometryPolyline)
          {
              textBox3.Text +=  "删除的线对象的ID号:"  + pFeature.OID +  ",其坐标:" ;
              IPolyline pPolygon = (IPolyline)pFeature.Shape;
              int  a = 0;
              int  b = 0;
              //把该feature强制转换为一个点的集合,再取点的坐标
              IPointCollection pPointCollection = pPolygon  as  IPointCollection;
              for  ( int  i = 0; i < pPointCollection.PointCount; i++)
              {
                  IPoint ipo = pPointCollection.get_Point(i);
                  axMapControl1.FromMapPoint(ipo,  ref  a,  ref    b);
                  textBox3.Text +=  "("  + a +  ","  + b +  ")"  "\t" ;
              }
              textBox3.Text +=  "\r\n" ;
  }
  axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography,  null null );
}

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。



    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/5903577.html,如需转载请自行联系原作者



相关文章
|
9月前
|
网络协议
移远EC600N 4G模块连接步骤
移远EC600N 4G模块连接步骤
218 0
|
16天前
|
网络架构
移远EC20、EC200S-CN上网测试
移远EC20、EC200S-CN上网测试
24 2
|
5月前
InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY EB3E94ADBE1229CF
InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY EB3E94ADBE1229CF
|
缓存 NoSQL
KUC720AE101 ABB 遵循提取、解码和执行步骤
KUC720AE101 ABB 遵循提取、解码和执行步骤
118 0
KUC720AE101   ABB 遵循提取、解码和执行步骤
AD2428W手册解读之其他发现流程示例
AD2428W手册解读之其他发现流程示例
AD2428W手册解读之其他发现流程示例
|
XML SQL Java
|
存储 Java Linux
|
监控 Java 编译器
[云监控]AE3-Script AE3脚本引擎
本文介绍了阿里云监控计算引擎 **AE3-Script** 语法。旨在帮助云监控报警用户更高效、更灵活地使用alert,实现所想即所得的报警体验。 ## 一、为什么需要AE3-Script 过去几年间,alert报警表达式引擎经历了两代衍进。 **第一代**,简单二元运算表达式,形如:``$Average >= 3``。该表达式要求必须为二元运算。其形式为: 。聚合方式必须以`$`开头,后
158 0
[云监控]AE3-Script AE3脚本引擎
|
存储 安全 算法
AB153x API----概述
AB153x API----概述
192 0
AB153x API----概述
|
机器学习/深度学习 编解码 数据可视化
自动编码(AE)器的简单实现
自动编码(AE)器的简单实现 一.目录 自动编码(AE)器的简单实现 一.目录 二.自动编码器的发展简述 2.1 自动编码器(Auto-Encoders,AE) 2.2 降噪自编码(Denoising Auto-Encoders, DAE)(2008) 2.
5384 0