intersectionOperator

AMD: require(["esri/geometry/operators/intersectionOperator"], (intersectionOperator) => { /* code goes here */ });
ESM: import * as intersectionOperator from "@arcgis/core/geometry/operators/intersectionOperator.js";
Object: esri/geometry/operators/intersectionOperator
Since: ArcGIS Maps SDK for JavaScript 4.31
beta

Create new geometries using the topological intersection of 2D geometries.

Method Overview

Name Return Type Summary Object

Accelerate a geometry.

intersectionOperator

Performs the topological intersection operation on two geometries.

intersectionOperator

Performs the topological intersection operation on the geometry set.

intersectionOperator

Method Details

accelerateGeometry

Method
accelerateGeometry(geometry){Boolean}

Accelerate a geometry. This method prepares the geometry for faster intersection operations when the same geometry is tested multiple times (e.g. in a loop with hundreds of iterations).

Parameter
geometry Geometry

The geometry to accelerate.

Returns
Type Description
Boolean Returns true if the geometry was successfully accelerated.

execute

Method
execute(geometry1, geometry2){Geometry |null}

Performs the topological intersection operation on two geometries.

If the input geometries have different dimensions (i.e. point = 0; polyline = 1; polygon = 2), then the result's dimension will be equal to the lowest dimension of the inputs.

The table below describes the expected output for various combinations of geometry types. Note that the geometries are interchangeable in this operation and will return the same result if flipped.

geometry1 type geometry2 type Result geometry type
Polygon/Extent Polygon/Extent Polygon
Polygon/Extent Polyline Polyline
Polygon Point Point
Polygon Multipoint Multipoint
Polyline Polyline Polyline
Polyline Point Point
Polyline Multipoint Multipoint
Point Point Point
Multipoint Multipoint Multipoint

Note that two intersecting polylines will not return point geometries. Instead, this operator will return polyline paths that are equal or overlap between the two geometries. See executyMany() to find the point intersections of two polylines.

Parameters
geometry1 Geometry

The geometry to intersect with geometry2.

geometry2 Geometry

The geometry to intersect with geometry1.

Returns
Type Description
Geometry | null Returns the result of the intersection of the two geometries or null.
Example
// Creates a new geometry based on the intersection of two polygons
const intersection = intersectionOperator.execute(polygon1, polygon2);

executeMany

Method
executeMany(geometries, intersector){Geometry[]}

Performs the topological intersection operation on the geometry set.

The table below describes the potential results for various combinations of geometry types based on how they intersect. For example, a polyline that touches a polygon would return a multipoint. If the geometries do not intersect, an empty array will be returned.

Input geometry type Intersector geometry type Result geometry types
Point/Multipoint Point/Multipoint Multipoint
Point/Multipoint Polyline Multipoint
Point/Multipoint Polygon/Extent Multipoint
Polyline Point, Multipoint Multipoint
Polyline Polyline Polyline, Multipoint
Polyline Polygon/Extent Polyline, Multipoint
Polygon/Extent Point/Multipoint Multipoint
Polygon/Extent Polyline Multipoint, Polyline
Polygon/Extent Polygon/Extent Multipoint, Polyline, Polygon
Parameters
geometries Geometry[]

The set of input geometries to be intersected by the intersector.

intersector Geometry

The geometry to intersect with the geometries.

Returns
Type Description
Geometry[] Returns an array of geometries created by intersecting every geometry in the input geometries with the intersector, or an empty array if there is no intersection.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.