ArcGIS Pro 3.1 API Reference Guide
ArcGIS.Core.Geometry Namespace / GeometryEngine Class / Intersection Method / Intersection(Geometry,Geometry) Method
The first geometry.
The second geometry.
Example

In This Topic
    Intersection(Geometry,Geometry) Method
    In This Topic
    Constructs the set-theoretic intersection between two geometries.
    Syntax
    public Geometry Intersection( 
       Geometry geometry1,
       Geometry geometry2
    )
    Public Overloads Function Intersection( _
       ByVal geometry1 As Geometry, _
       ByVal geometry2 As Geometry _
    ) As Geometry

    Parameters

    geometry1
    The first geometry.
    geometry2
    The second geometry.

    Return Value

    A geometry that represents the intersection of the two input geometries. The dimension of the returned geometry will be the lowest dimension of the input geometries. For example, if geometry1 is a MapPoint and geometry2 is a Polyline, the returned geometry will be a MapPoint. If the dimension of the intersection is not equal to the lowest dimension of the input geometries, an empty geometry will be returned. For example, suppose that geometry1 is a Polyline and geometry2 is a Polyline, and they cross each other at two points. The intersection is a Multipoint, but an empty Polyline will be returned. In this case, if you want the returned geometry to be the Multipoint where the input geometries intersect, use Intersection(Geometry,Geometry,GeometryDimensionType).
    Exceptions
    ExceptionDescription
    Either geometry1 or geometry2 or both are null or empty.
    The method is not implemented for GeometryBag.
    Incompatible spatial references between the input geometries.
    Remarks
    If an input geometry is a Multipatch, then the Multipatch footprint will be used to determine the intersection.

    GeometryEngine Intersection

    Example
    Intersection between two Polylines
    // determine intersection between two polylines
    
    List<MapPoint> pts = new List<MapPoint>();
    pts.Add(MapPointBuilderEx.CreateMapPoint(1.0, 1.0));
    pts.Add(MapPointBuilderEx.CreateMapPoint(3.0, 3.0));
    pts.Add(MapPointBuilderEx.CreateMapPoint(5.0, 1.0));
    
    Polyline line1 = PolylineBuilderEx.CreatePolyline(pts);
    
    List<MapPoint> pts2 = new List<MapPoint>();
    pts2.Add(MapPointBuilderEx.CreateMapPoint(1.0, 3.0));
    pts2.Add(MapPointBuilderEx.CreateMapPoint(3.0, 1.0));
    pts2.Add(MapPointBuilderEx.CreateMapPoint(5.0, 3.0));
    
    Polyline line2 = PolylineBuilderEx.CreatePolyline(pts2);
    
    bool intersects = GeometryEngine.Instance.Intersects(line1, line2);    // intersects = true
    Geometry g = GeometryEngine.Instance.Intersection(line1, line2, GeometryDimensionType.EsriGeometry0Dimension);
    Multipoint resultMultipoint = g as Multipoint;
    
    // result is a multiPoint that intersects at (2,2) and (4,2)
    Intersection between two Polygons
    // determine intersection between two polygons
    
    Envelope env1 = EnvelopeBuilderEx.CreateEnvelope(new Coordinate2D(3.0, 2.0), new Coordinate2D(6.0, 6.0));
    Polygon poly1 = PolygonBuilderEx.CreatePolygon(env1);
    
    Envelope env2 = EnvelopeBuilderEx.CreateEnvelope(new Coordinate2D(1.0, 1.0), new Coordinate2D(4.0, 4.0));
    Polygon poly2 = PolygonBuilderEx.CreatePolygon(env2);
    
    Polygon polyResult = GeometryEngine.Instance.Intersection(poly1, poly2) as Polygon;
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3.0 or higher.
    See Also