版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_32857543/article/details/86550159
/// <summary>
/// 缩放到选择要素集
/// </summary>
/// <param name="pFeatureLayer"></param>
private void ZoomToFeatureLayerSelection(IFeatureLayer pFeatureLayer)
{
IFeatureSelection featureSelection = pFeatureLayer as IFeatureSelection;
if (featureSelection.SelectionSet.Count == 0) return;
IEnumGeometryBind tEnumGeometryBind = new EnumFeatureGeometryClass();
tEnumGeometryBind.BindGeometrySource(null, featureSelection.SelectionSet);
IEnumGeometry tEnumGeometry = (IEnumGeometry)tEnumGeometryBind;
IGeometryFactory tGeometryFactory = new GeometryEnvironmentClass();
IGeometry tGeometry = tGeometryFactory.CreateGeometryFromEnumerator(tEnumGeometry);
//缓冲处理,使处于边界的元素在视图中能够完全显示
ITopologicalOperator mTopologicalOperator = (ITopologicalOperator)tGeometry;
IGeometry mPolygonBuffer = mTopologicalOperator.Buffer(0.1) as IGeometry;
MapControl.Extent = mPolygonBuffer.Envelope;
MapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, featureSelection, tGeometry.Envelope);
}