![]() |
This document is archived and information here might be outdated. Recommended version. |
Draws graphic buffers around the selected features in the map using distance units specified.
///<summary>Draws graphic buffers around the selected features in the map using distance units specified.</summary>
///
///<param name="activeView">An IActiveView interface.</param>
///<param name="distance">A System.Double that is the distance in map units around the select features to draw a graphic buffer. Example: 10</param>
///
///<remarks></remarks>
public void CreateGraphicBuffersAroundSelectedFeatures(ESRI.ArcGIS.Carto.IActiveView activeView, System.Double distance)
{
//parameter check
if (activeView == null || distance < 0)
{
return;
}
ESRI.ArcGIS.Carto.IMap map=activeView.FocusMap;
// Clear any previous buffers from the screen
ESRI.ArcGIS.Carto.IGraphicsContainer graphicsContainer=(ESRI.ArcGIS.Carto.IGraphicsContainer)map; // Explicit Cast
graphicsContainer.DeleteAllElements();
// Verify there is a feature(s) selected
if (map.SelectionCount == 0)
{
return;
}
// Reset to the first selected feature
ESRI.ArcGIS.Geodatabase.IEnumFeature enumFeature=(ESRI.ArcGIS.Geodatabase.IEnumFeature)map.FeatureSelection; // Explicit Cast
enumFeature.Reset();
ESRI.ArcGIS.Geodatabase.IFeature feature=enumFeature.Next();
// Buffer all the selected features by the buffer distance and create a new polygon element from each result
ESRI.ArcGIS.Geometry.ITopologicalOperator topologicalOperator;
ESRI.ArcGIS.Carto.IElement element;
while (!(feature == null))
{
topologicalOperator=(ESRI.ArcGIS.Geometry.ITopologicalOperator)feature.Shape; // Explicit Cast
element=new ESRI.ArcGIS.Carto.PolygonElementClass();
element.Geometry=topologicalOperator.Buffer(distance);
graphicsContainer.AddElement(element, 0);
feature=enumFeature.Next();
}
activeView.PartialRefresh(ESRI.ArcGIS.Carto.esriViewDrawPhase.esriViewGraphics, null, null);
}
'''<summary>Draws graphic buffers around the selected features in the map using distance units specified.</summary>
'''
'''<param name="activeView">An IActiveView interface.</param>
'''<param name="distance">A System.Double that is the distance in map units around the select features to draw a graphic buffer. Example: 10</param>
'''
'''<remarks></remarks>
Public Sub CreateGraphicBuffersAroundSelectedFeatures(ByVal activeView As ESRI.ArcGIS.Carto.IActiveView, ByVal distance As System.Double)
'parameter check
If activeView Is Nothing OrElse distance < 0 Then
Return
End If
Dim map As ESRI.ArcGIS.Carto.IMap=activeView.FocusMap
' Clear any previous buffers from the screen
Dim graphicsContainer As ESRI.ArcGIS.Carto.IGraphicsContainer=CType(map, ESRI.ArcGIS.Carto.IGraphicsContainer) ' Explicit Cast
graphicsContainer.DeleteAllElements()
' Verify there is a feature(s) selected
If map.SelectionCount=0 Then
Return
End If
' Reset to the first selected feature
Dim enumFeature As ESRI.ArcGIS.Geodatabase.IEnumFeature=CType(map.FeatureSelection, ESRI.ArcGIS.Geodatabase.IEnumFeature) ' Explicit Cast
enumFeature.Reset()
Dim feature As ESRI.ArcGIS.Geodatabase.IFeature=enumFeature.Next()
' Buffer all the selected features by the buffer distance and create a new polygon element from each result
Dim topologicalOperator As ESRI.ArcGIS.Geometry.ITopologicalOperator
Dim element As ESRI.ArcGIS.Carto.IElement
Do While Not (feature Is Nothing)
topologicalOperator=CType(feature.Shape, ESRI.ArcGIS.Geometry.ITopologicalOperator) ' Explicit Cast
element=New ESRI.ArcGIS.Carto.PolygonElementClass()
element.Geometry=topologicalOperator.Buffer(distance)
graphicsContainer.AddElement(element, 0)
feature=enumFeature.Next()
Loop
activeView.PartialRefresh(ESRI.ArcGIS.Carto.esriViewDrawPhase.esriViewGraphics, Nothing, Nothing)
End Sub