/django/contrib/gis/geos/prepared.py
Python | 30 lines | 18 code | 7 blank | 5 comment | 2 complexity | 38f146df1c8bce228225b89a051fbfea MD5 | raw file
Possible License(s): BSD-3-Clause
- from django.contrib.gis.geos.base import GEOSBase
- from django.contrib.gis.geos.geometry import GEOSGeometry
- from django.contrib.gis.geos.prototypes import prepared as capi
- class PreparedGeometry(GEOSBase):
- """
- A geometry that is prepared for performing certain operations.
- At the moment this includes the contains covers, and intersects
- operations.
- """
- ptr_type = capi.PREPGEOM_PTR
- def __init__(self, geom):
- if not isinstance(geom, GEOSGeometry): raise TypeError
- self.ptr = capi.geos_prepare(geom.ptr)
- def __del__(self):
- if self._ptr: capi.prepared_destroy(self._ptr)
- def contains(self, other):
- return capi.prepared_contains(self.ptr, other.ptr)
- def contains_properly(self, other):
- return capi.prepared_contains_properly(self.ptr, other.ptr)
- def covers(self, other):
- return capi.prepared_covers(self.ptr, other.ptr)
- def intersects(self, other):
- return capi.prepared_intersects(self.ptr, other.ptr)