You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
886 B
29 lines
886 B
""" |
|
This module holds the base `SpatialBackend` object, which is |
|
instantiated by each spatial backend with the features it has. |
|
""" |
|
# TODO: Create a `Geometry` protocol and allow user to use |
|
# different Geometry objects -- for now we just use GEOSGeometry. |
|
from django.contrib.gis.geos import GEOSGeometry, GEOSException |
|
|
|
class BaseSpatialBackend(object): |
|
Geometry = GEOSGeometry |
|
GeometryException = GEOSException |
|
|
|
def __init__(self, **kwargs): |
|
kwargs.setdefault('distance_functions', {}) |
|
kwargs.setdefault('limited_where', {}) |
|
for k, v in kwargs.iteritems(): setattr(self, k, v) |
|
|
|
def __getattr__(self, name): |
|
""" |
|
All attributes of the spatial backend return False by default. |
|
""" |
|
try: |
|
return self.__dict__[name] |
|
except KeyError: |
|
return False |
|
|
|
|
|
|
|
|
|
|