第一步:根据鼠标点击处的点,找到被选中的要素

 public IFeature Find2(IPoint pPoint)
{
ITopologicalOperator pTopoOpe = pPoint as ITopologicalOperator;
double dis = m_pMapControl.ActiveView.ScreenDisplay.DisplayTransformation.FromPoints();
if (dis < 0.01)
dis = 0.01;
IGeometry pBuffer = pTopoOpe.Buffer(dis);
pBuffer.SpatialReference = m_pMapControl.Map.SpatialReference; UIDClass id = new UIDClass();
id.Value = "{E156D7E5-22AF-11D3-9F99-00C04F6BC78E}";
IEnumLayer pEnumLayer = m_pMapControl.Map.get_Layers(id, true);
pEnumLayer.Reset();
IFeatureLayer pFLayer = pEnumLayer.Next() as IFeatureLayer; ISpatialFilter pSpatialFilter = new SpatialFilterClass();
pSpatialFilter.Geometry = pBuffer;
pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;
pSpatialFilter.WhereClause = ""; while (pFLayer != null)
{
if (pFLayer.Visible == false)
{
pFLayer = pEnumLayer.Next() as IFeatureLayer;
continue;
}
IFeatureCursor pCursor = pFLayer.Search(pSpatialFilter, false);
IFeature pFeat = pCursor.NextFeature();
if (pFeat != null)
{
return pFeat;
}
System.Runtime.InteropServices.Marshal.ReleaseComObject(pCursor);
pFLayer = pEnumLayer.Next() as IFeatureLayer;
}
return null;
}

第二步:取出被选要素的属性值

 IFields pFields = pFeat.Fields;
for (int i = ; i < pFields.FieldCount; i++)
{
IField pField = pFields.get_Field(i);
if (pField.Type != esriFieldType.esriFieldTypeBlob & pField.Type != esriFieldType.esriFieldTypeOID
& pField.Type != esriFieldType.esriFieldTypeGeometry)
{
checkedListBox1.Items.Add(pField.AliasName);
}
}

第三步:在mapcontrol中显示属性,用到ICallout 加ITextElement

 ICallout pCallout = new ESRI.ArcGIS.Display.BalloonCalloutClass();
pCallout.AnchorPoint = pPoint;
pCallout.LeaderTolerance = ; ITextElement pTextElement = new TextElementClass();
IElement pElement = pTextElement as IElement;
ITextSymbol pTextSysmbol = pTextElement.Symbol;
IFormattedTextSymbol pFormattedTextSymbol = new TextSymbolClass();
pFormattedTextSymbol.Background = pCallout as ITextBackground;
pFormattedTextSymbol.Size = ;
pFormattedTextSymbol.HorizontalAlignment = esriTextHorizontalAlignment.esriTHALeft;
pTextElement.Symbol = pFormattedTextSymbol;
pTextElement.Text = labelString; pElement.Geometry = pPoint;
m_pMapControl.ActiveView.GraphicsContainer.AddElement(pElement, );
m_pMapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, m_pMapControl.Extent);

AE实现点击一个要素,并显示其属性的更多相关文章

  1. 商务系统的构造思路(无源码!)+如何用jsp实现点击单选框内容显示在另一个jsp页面

    敲码经验总结: 之前犯了一个错误就是,没有从底层开始学起,有啥问题,就直接博客园找源码,去CSDN找源代码,看到代码就复制粘贴,结果从新梳理知识点的时候,貌似除了复制粘贴,印象深刻的知识啥也没学到. ...

  2. 页面上有3个输入框:分别为max,min,num;三个按钮:分别为生成,排序,去重;在输入框输入三个数字后,先点击生成按钮,生成一个数组长度为num,值为max到min之间的随机整数点击排序,对当前数组进行排序,点击去重,对当前数组进行去重。 每次点击之后使结果显示在控制台

    <!DOCTYPE html> <html> <head> <!-- 页面上有3个输入框:分别为max,min,num:三个按钮:分别为生成,排序,去重: 在 ...

  3. AE三维点击查询(3D Identify)的实现(转)

    AE三维点击查询(3D Identify)的实现,类似ArcGIS的Identify对话框/////////////////////////////////////////////////////// ...

  4. AE常用代码(标注要素、AE中画带箭头的线、如何获得投影坐标、参考坐标、投影方式、FeatureCount注意事项)

    手上的电脑已经用了将近三年了,想入手一台Surface Pro,所以计划着把电脑上的资料整理下,部分资料打算发到博客上来,资料有同事.也有自己的.也有来自网络的,来源途径太多,也没法详细注明,请见谅! ...

  5. 如何设计点击点击一个div,其他div做出对应反应,以及获取一个节点下的子节点

    <div id="show"> <div>1</div> <div>2</div> <div>3</d ...

  6. 关于一个隐藏和显示物品列表的demo

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  7. Winform 基础二 最小化 最大化 关闭 点击任务栏隐藏显示 点击鼠标左键移动窗体

    一 最大化 二 最小化 三 关闭 四 点击任务栏隐藏显示 五 点击鼠标左键移动窗体 六 阴影效果鼠标左键移动窗口 #region UI设置 最大化.最小化.关闭.鼠标移动窗口.点击任务栏切换窗口 th ...

  8. JS实现点击参数面板按钮显示或隐藏数据

    当报表中列出数据太多时,想通过显示按钮隐藏明细数据只显示统计数据.如下图示例,那么该如何实现呢?本文以FineReport为例,来讲述JS如何实现点击参数面板按钮显示或隐藏数据. 打开报表 在参数面板 ...

  9. Bootstrap学习笔记(5)--实现Bootstrap导航条可点击和鼠标悬停显示下拉菜单

    实现Bootstrap导航条可点击和鼠标悬停显示下拉菜单 微笑的鱼 2014-01-03 Bootstrap 5,281 次围观 11条评论 使用Bootstrap导航条组件时,如果你的导航条带有下拉 ...

随机推荐

  1. Codeforces Gym 100002 D"Decoding Task" 数学

    Problem D"Decoding Task" Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com ...

  2. HttpClient 设置代理方式

    HttpClient httpClient = new HttpClient(); //设置代理服务器的ip地址和端口 httpClient.getHostConfiguration().setPro ...

  3. GitHub使用详解

    1.GitHub是什么? GitHub这个名词既可以是那个流行的代码分享和协作网站 https://github.com/,也可以是指Git客户端工具(与其他的Git客户端工具如GitEye类似,只不 ...

  4. Windows 7旗舰版搭建andriod 4.0开发环境记录

    搭建Android环境步骤(仅供参考): 官方搭建步骤: http://developer.android.com/index.html 搭建环境之前需要下载下面几个文件包: 一.安装Java运行环境 ...

  5. 2.目录:疯子讲iOS课程

    目录:疯子讲iOS课程 写这个目录让我纠结好几天,一是我在考虑要不要从Objective-c基础开始讲,是否要使用ARC的方式讲,二是本人的游戏这几天正在封测,时间也比较紧张.纠结于有些朋友可能还不了 ...

  6. android 自定义按钮实现 home键 和返回键

    由于在自己做的东西中用到了就总结一下,自己做了测试 在一个程序运行中如果按 返回键  分别执行了 : onpause()     onStop()   onDestory()方法 如果点击 home键 ...

  7. 网络IPC:套接字

    网络进程间通信(network IPC):不同计算机(通过网络相连)上运行的进程相互通信的机制. 套接字网络IPC接口:进程能够使用该接口和其他进程通信.通过该接口,其他进程运行位置是透明的,它们可以 ...

  8. centos安装memcache与telnet

    ####################linux下安装memcache过程######################http://www.cnblogs.com/zgx/archive/2011/ ...

  9. Codeforces Round 190 div.2 322C 321A Ciel and Robot

    唔...这题是数学题. 比赛时做出来,但题意理解错了,以为只要判断那点是不是在线上就行了,发现过不了样例就没提交. 思路:记录每一步的偏移,假设那点是在路径上的某步,然后回推出那一个周期的第一步,判断 ...

  10. Android 自学之核心服务

    所谓Android的核心服务主要包括熵服务(Entropy Service).电源管理器(Power Manager).Activity管理器(Activity Manager).通话寄存器(Tele ...