intersections static method

List<Geometry> intersections({
  1. required Geometry geometry1,
  2. required Geometry geometry2,
})

Calculates the intersection of two geometries.

The returned collection contains one geometry of each dimension for which there are intersections. For example, if both inputs are polylines, the collection contains at most two geometries: the first a multipoint containing the points at which the lines cross, and the second a polyline containing the lines of overlap. If a crossing point lies within a line of overlap, only the line of overlap is present. The result set is not self-intersecting. If there are no crossing points or there are no lines of overlap, the respective geometry is not present in the returned collection. If the input geometries do not intersect, the resulting collection is empty. The table below shows, for each combination of pairs of input geometry types, the types of geometry that are contained within the returned collection if there are intersections of that type.

Set of potential output geometry types for pairs of input geometry types
Input type Point/Multipoint Polyline Polygon/Envelope
Point/Multipoint Multipoint Multipoint Multipoint
Polyline Multipoint Multipoint, Polyline Multipoint, Polyline
Polygon/Envelope Multipoint Multipoint, Polyline Multipoint, Polyline, Polygon
The geometries in the returned collection are sorted by ascending dimensionality. For example, multipoint (dimension 0) then polyline (dimension 1) then polygon (dimension 2) for the intersection of two geometries with area that have intersections of those types.

Supports true curves.

Parameters:

  • geometry1 — A geometry object.
  • geometry2 — Another geometry object.

Return Value: A collection of geometry objects that represent the intersection of the given geometries.

Implementation

static List<Geometry> intersections({
  required Geometry geometry1,
  required Geometry geometry2,
}) {
  _initializeArcGISEnvironmentIfNeeded();
  final arrayHandle = _withThrowingErrorHandler((errorHandler) {
    return runtimecore.RT_GeometryEngine_intersections(
      geometry1._handle,
      geometry2._handle,
      errorHandler,
    );
  });
  return arrayHandle.toList();
}