shapely.contains#

contains(a, b, **kwargs)#

Returns True if geometry B is completely inside geometry A.

A contains B if no points of B lie in the exterior of A and at least one point of the interior of B lies in the interior of A.

Note: following this definition, a geometry does not contain its boundary, but it does contain itself. See contains_properly for a version where a geometry does not contain itself.

Parameters
a, bGeometry or array_like
**kwargs

For other keyword-only arguments, see the NumPy ufunc docs.

See also

within

contains(A, B) == within(B, A)

contains_properly

contains with no common boundary points

prepare

improve performance by preparing a (the first argument)

contains_xy

variant for checking against a Point with x, y coordinates

Examples

>>> from shapely import LineString, Point, Polygon
>>> line = LineString([(0, 0), (1, 1)])
>>> contains(line, Point(0, 0))
False
>>> contains(line, Point(0.5, 0.5))
True
>>> area = Polygon([(0, 0), (1, 0), (1, 1), (0, 1), (0, 0)])
>>> contains(area, Point(0, 0))
False
>>> contains(area, line)
True
>>> contains(area, LineString([(0, 0), (2, 2)]))
False
>>> polygon_with_hole = Polygon(
...     [(0, 0), (0, 10), (10, 10), (10, 0), (0, 0)],
...     holes=[[(2, 2), (2, 4), (4, 4), (4, 2), (2, 2)]]
... )
>>> contains(polygon_with_hole, Point(1, 1))
True
>>> contains(polygon_with_hole, Point(2, 2))
False
>>> contains(polygon_with_hole, LineString([(1, 1), (5, 5)]))
False
>>> contains(area, area)
True
>>> contains(area, None)
False