﻿---
title: ES|QL ST_INTERSECTION function
description: 
url: https://www.elastic.co/elastic/docs-builder/docs/3562/reference/query-languages/esql/functions-operators/spatial-functions/st_intersection
products:
  - Elasticsearch
---

# ES|QL ST_INTERSECTION function
<applies-to>
  - Elastic Cloud Serverless: Preview
  - Elastic Stack: Planned
</applies-to>

Returns the geometric intersection of two geometries.

## Syntax

![Embedded](https://www.elastic.co/elastic/docs-builder/docs/3562/reference/query-languages/esql/images/generated/x-pack-esql/functions/st_intersection.svg)


## Parameters

<definitions>
  <definition term="geomA">
    Expression of type `geo_point`, `geo_shape`, `cartesian_point` or `cartesian_shape`. If `null`, the function returns `null`.
  </definition>
  <definition term="geomB">
    Expression of type `geo_point`, `geo_shape`, `cartesian_point` or `cartesian_shape`. Must share the same coordinate reference system as the first parameter. If `null`, the function returns `null`.
  </definition>
</definitions>


## Description

Returns the geometric intersection of two geometries. The result is a geometry representing the portion that both input geometries have in common. Returns an empty geometry if the inputs do not intersect. Both geometries must share the same coordinate reference system.

## Supported types


| geomA           | geomB           | result          |
|-----------------|-----------------|-----------------|
| cartesian_point | cartesian_point | cartesian_shape |
| cartesian_point | cartesian_shape | cartesian_shape |
| cartesian_shape | cartesian_point | cartesian_shape |
| cartesian_shape | cartesian_shape | cartesian_shape |
| geo_point       | geo_point       | geo_shape       |
| geo_point       | geo_shape       | geo_shape       |
| geo_shape       | geo_point       | geo_shape       |
| geo_shape       | geo_shape       | geo_shape       |


## Example

```esql
ROW a = TO_GEOSHAPE("POLYGON ((0 0, 3 0, 3 3, 0 3, 0 0))"),
    b = TO_GEOSHAPE("POLYGON ((1 1, 4 1, 4 4, 1 4, 1 1))")
| EVAL intersected = ST_INTERSECTION(a, b)
| KEEP intersected
```


| intersected:geo_shape                                   |
|---------------------------------------------------------|
| POLYGON ((1.0 3.0, 3.0 3.0, 3.0 1.0, 1.0 1.0, 1.0 3.0)) |


### Diagrams

**Intersection of two overlapping polygons**
The intersection is the shared area of both polygons.
![Intersection of two overlapping polygons](https://www.elastic.co/elastic/docs-builder/docs/3562/reference/query-languages/esql/images/generated/x-pack-esql/functions/st_intersection_intersection.svg)