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

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

Property Overview

Name Type Summary Object

Indicates if the operator supports input geometries that contain curves.

intersectionOperator

Property Details

supportsCurves

Property
supportsCurves Booleanreadonly

Indicates if the operator supports input geometries that contain curves.

Default Value:true

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 GeometryUnion

The geometry to accelerate.

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

execute

Method
execute(geometry1, geometry2){GeometryUnion |null |undefined}

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 GeometryUnion

The geometry to intersect with geometry2.

geometry2 GeometryUnion

The geometry to intersect with geometry1.

Returns
Type Description
GeometryUnion | null | undefined 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){GeometryUnion[]}

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 GeometryUnion[]

The set of input geometries to be intersected by the intersector. All the geometries must have the same spatial reference.

intersector GeometryUnion

The geometry to intersect with the geometries.

Returns
Type Description
GeometryUnion[] 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.