/django/contrib/gis/geos/prototypes/prepared.py
Python | 25 lines | 19 code | 4 blank | 2 comment | 0 complexity | a75728ff39a667de6fe5a1dff592bb73 MD5 | raw file
Possible License(s): BSD-3-Clause
- from ctypes import c_char
- from django.contrib.gis.geos.libgeos import GEOM_PTR, PREPGEOM_PTR
- from django.contrib.gis.geos.prototypes.errcheck import check_predicate
- from django.contrib.gis.geos.prototypes.threadsafe import GEOSFunc
- # Prepared geometry constructor and destructors.
- geos_prepare = GEOSFunc('GEOSPrepare')
- geos_prepare.argtypes = [GEOM_PTR]
- geos_prepare.restype = PREPGEOM_PTR
- prepared_destroy = GEOSFunc('GEOSPreparedGeom_destroy')
- prepared_destroy.argtpes = [PREPGEOM_PTR]
- prepared_destroy.restype = None
- # Prepared geometry binary predicate support.
- def prepared_predicate(func):
- func.argtypes= [PREPGEOM_PTR, GEOM_PTR]
- func.restype = c_char
- func.errcheck = check_predicate
- return func
- prepared_contains = prepared_predicate(GEOSFunc('GEOSPreparedContains'))
- prepared_contains_properly = prepared_predicate(GEOSFunc('GEOSPreparedContainsProperly'))
- prepared_covers = prepared_predicate(GEOSFunc('GEOSPreparedCovers'))
- prepared_intersects = prepared_predicate(GEOSFunc('GEOSPreparedIntersects'))