Intersection(Geometry,Geometry) Method
Constructs the set-theoretic intersection between two geometries.
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 is a
MapPoint and 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 is a
Polyline and 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).
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;
Target Platforms: Windows 11, Windows 10, Windows 8.1
ArcGIS Pro version: 2.0 or higher.