> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wherobots.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GeoDataFrame.intersection

> Returns a GeoSeries of the intersection of points in each aligned geometry with other.

Returns a `GeoSeries` of the intersection of points in each
aligned geometry with `other`.

The operation works on a 1-to-1 row-wise manner.

Note: Unlike most functions, intersection may return the unordered with respect to the index.
If this is important to you, you may call `sort_index()` on the result.

## Signature

```python theme={"system"}
intersection(other, align=None)
```

## Parameters

<ParamField path="other" type="Geoseries or geometric object" required>
  The Geoseries (elementwise) or geometric object to find the
  intersection with.
</ParamField>

<ParamField path="align" type="bool | None (default None)" default="None">
  If True, automatically aligns GeoSeries based on their indices. None defaults to True.
  If False, the order of elements is preserved.
</ParamField>

## Returns

<ResponseField name="return" type="GeoSeries" />

**See also**

* `GeoSeries.difference`
* `GeoSeries.symmetric_difference`
* `GeoSeries.union`

## Examples

```python theme={"system"}
>>> from sedona.spark.geopandas import GeoSeries
>>> from shapely.geometry import Polygon, LineString, Point
>>> s = GeoSeries(
...     [
...         Polygon([(0, 0), (2, 2), (0, 2)]),
...         Polygon([(0, 0), (2, 2), (0, 2)]),
...         LineString([(0, 0), (2, 2)]),
...         LineString([(2, 0), (0, 2)]),
...         Point(0, 1),
...     ],
... )
>>> s2 = GeoSeries(
...     [
...         Polygon([(0, 0), (1, 1), (0, 1)]),
...         LineString([(1, 0), (1, 3)]),
...         LineString([(2, 0), (0, 2)]),
...         Point(1, 1),
...         Point(0, 1),
...     ],
...     index=range(1, 6),
... )
```

```python theme={"system"}
>>> s
0    POLYGON ((0 0, 2 2, 0 2, 0 0))
1    POLYGON ((0 0, 2 2, 0 2, 0 0))
2             LINESTRING (0 0, 2 2)
3             LINESTRING (2 0, 0 2)
4                       POINT (0 1)
dtype: geometry
```

```python theme={"system"}
>>> s2
1    POLYGON ((0 0, 1 1, 0 1, 0 0))
2             LINESTRING (1 0, 1 3)
3             LINESTRING (2 0, 0 2)
4                       POINT (1 1)
5                       POINT (0 1)
dtype: geometry
```

We can also do intersection of each geometry and a single
shapely geometry:

```python theme={"system"}
>>> s.intersection(Polygon([(0, 0), (1, 1), (0, 1)]))
0    POLYGON ((0 0, 0 1, 1 1, 0 0))
1    POLYGON ((0 0, 0 1, 1 1, 0 0))
2             LINESTRING (0 0, 1 1)
3                       POINT (1 1)
4                       POINT (0 1)
dtype: geometry
```

We can also check two GeoSeries against each other, row by row.
The GeoSeries above have different indices. We can either align both GeoSeries
based on index values and compare elements with the same index using
`align=True` or ignore index and compare elements based on their matching
order using `align=False`:

```python theme={"system"}
>>> s.intersection(s2, align=True)
0                              None
1    POLYGON ((0 0, 0 1, 1 1, 0 0))
2                       POINT (1 1)
3             LINESTRING (2 0, 0 2)
4                       POINT EMPTY
5                              None
dtype: geometry
```

```python theme={"system"}
>>> s.intersection(s2, align=False)
0    POLYGON ((0 0, 0 1, 1 1, 0 0))
1             LINESTRING (1 1, 1 2)
2                       POINT (1 1)
3                       POINT (1 1)
4                       POINT (0 1)
dtype: geometry
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.