http://www.gissky.net- GIS空间站

我要投稿 投稿指南 RSS订阅 网站资讯通告:
搜索: 您现在的位置: GIS空间站 >> 技术专栏 >> ArcGIS >> ArcObjects开发 >> 正文

自己动手实现ArcMap的Identify功能+附源码

作者:xgyb1245…    文章来源:xgyb12459    点击数:    更新时间:2010-2-1
摘要:自己动手实现ArcMap的Identify功能+附源码,开发环境:AE9.2+VS2008 功能已经封装好,直接可用,并附源代码,交流学习。

开发环境:AE9.2+VS2008
功能已经封装好,直接可用。并附源代码,交流学习
 





 

核心代码其实很简单

        /// <summary>
        /// 在指定图层使用指定范围查询结果
        /// </summary>
        /// <param name="identifyLayer">查询图层</param>
        /// <param name="identifyGeom">查询范围</param>
        /// <returns>查询结果</returns>
        private IArray Identify(ILayer identifyLayer, IGeometry identifyGeom)
        {
            //保存结果的变量
            IArray identifyObjs = null;
            //设置查询形状
            if (identifyGeom == null)
            {
                //返回空值
                return identifyObjs;
            }
            //若是点的话做点的缓冲区
            IGeometry hitGeometry = identifyGeom;
            //判断图层类型,设置点击要素
            if (hitGeometry.GeometryType == esriGeometryType.esriGeometryPoint)
            {
                ITopologicalOperator topoOp = identifyGeom as ITopologicalOperator;
                hitGeometry = topoOp.Buffer(1);
            }
            ///判断图层的类型并作相应处理
            ///图层是要素图层
            if (identifyLayer is IFeatureLayer)
            {
                //获取要素图层
                IFeatureLayer featureLayer = identifyLayer as IFeatureLayer;
                //开始获取信息操作
                IIdentify2 identify2 = featureLayer as IIdentify2;
                //获取查询结果
                identifyObjs = identify2.Identify(hitGeometry, null);
            }
            ///图层是栅格数据层
            else if (identifyLayer is IRasterLayer)
            {
            }
                  else
            {
            }
            //返回获取要素的集合
            return identifyObjs;
        }

源码下载

Tags:Identify  
责任编辑:gissky
相关文章列表
没有相关文章
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 中国地图