开发环境: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;
}