How to find the combined extent of two geometries


Development licensing Deployment licensing
ArcView ArcView
ArcEditor ArcEditor
ArcInfo ArcInfo
Engine Developer Kit Engine Runtime

Additional Requirements
  • This article assumes your project includes references to the ESRI Geometry assembly.

Finding the combined extent of two geometries

The following code example determines the spatial extent of the union of two geometries:
 

[C#]
private void Union(IGeometry geometry1, IGeometry geometry2)
{
if(geometry1 == null || geometry2 == null)
{
//Geometries are null.
return;
}

IEnvelope envelope1 = geometry1.Envelope;
IEnvelope envelope2 = geometry2.Envelope;

//Envelope1 is modified to become the union of the extents of geometry1 and geometry2.
envelope1.Union(envelope2);
String report = "LowerLeft  X = " + envelope1.LowerLeft.X  + "\n" +
         "LowerLeft  Y = " + envelope1.LowerLeft.Y  + "\n\n" +
         "LowerRight X = " + envelope1.LowerRight.X + "\n" +
         "LowerRight Y = " + envelope1.LowerRight.Y + "\n\n" +
         "UpperLeft  X = " + envelope1.UpperLeft.X  + "\n" +
         "UpperLeft  Y = " + envelope1.UpperLeft.Y  + "\n\n" +
         "UpperRight X = " + envelope1.UpperRight.X + "\n" +
         "UpperRight Y = " + envelope1.UpperRight.Y;

System.Windows.Forms.MessageBox.Show(report);
} 

[VB.NET]
Private Sub Union(ByVal geometry1 As IGeometry, ByVal geometry2 As IGeometry)
  If geometry1 Is Nothing Or geometry2 Is Nothing Then
    'Geometries are null.
    Exit Sub
  End If

  Dim envelope1 As IEnvelope = geometry1.Envelope
  Dim envelope2 As IEnvelope = geometry2.Envelope

  'Envelope1 is modified to become the union of the extents of geometry1 and geometry2.
  envelope1.Union(envelope2)
 
  Dim report As String = "LowerLeft X = " & envelope1.LowerLeft.X & ControlChars.NewLine & _
  "LowerLeft Y = " & envelope1.LowerLeft.Y & ControlChars.NewLine & _
  "LowerRight X = " & envelope1.LowerRight.X & ControlChars.NewLine & _
  "LowerRight Y = " & envelope1.LowerRight.Y & ControlChars.NewLine & _
  "UpperLeft X = " & envelope1.UpperLeft.X & ControlChars.NewLine & _
  "UpperLeft Y = " & envelope1.UpperLeft.Y & ControlChars.NewLine & _
  "UpperRight X = " & envelope1.UpperRight.X & ControlChars.NewLine & _
  "UpperRight Y = " & envelope1.UpperRight.Y
  Windows.Forms.MessageBox.Show(report)
End Sub