PageRenderTime 28ms CodeModel.GetById 17ms RepoModel.GetById 1ms app.codeStats 0ms

/django/contrib/gis/db/backends/spatialite/models.py

https://code.google.com/p/mango-py/
Python | 60 lines | 55 code | 1 blank | 4 comment | 0 complexity | 7db741a1f5a9a9c7d16088091717cf25 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. """
  2. The GeometryColumns and SpatialRefSys models for the SpatiaLite backend.
  3. """
  4. from django.db import models
  5. from django.contrib.gis.db.backends.base import SpatialRefSysMixin
  6. class GeometryColumns(models.Model):
  7. """
  8. The 'geometry_columns' table from SpatiaLite.
  9. """
  10. f_table_name = models.CharField(max_length=256)
  11. f_geometry_column = models.CharField(max_length=256)
  12. type = models.CharField(max_length=30)
  13. coord_dimension = models.IntegerField()
  14. srid = models.IntegerField(primary_key=True)
  15. spatial_index_enabled = models.IntegerField()
  16. class Meta:
  17. db_table = 'geometry_columns'
  18. managed = False
  19. @classmethod
  20. def table_name_col(cls):
  21. """
  22. Returns the name of the metadata column used to store the
  23. the feature table name.
  24. """
  25. return 'f_table_name'
  26. @classmethod
  27. def geom_col_name(cls):
  28. """
  29. Returns the name of the metadata column used to store the
  30. the feature geometry column.
  31. """
  32. return 'f_geometry_column'
  33. def __unicode__(self):
  34. return "%s.%s - %dD %s field (SRID: %d)" % \
  35. (self.f_table_name, self.f_geometry_column,
  36. self.coord_dimension, self.type, self.srid)
  37. class SpatialRefSys(models.Model, SpatialRefSysMixin):
  38. """
  39. The 'spatial_ref_sys' table from SpatiaLite.
  40. """
  41. srid = models.IntegerField(primary_key=True)
  42. auth_name = models.CharField(max_length=256)
  43. auth_srid = models.IntegerField()
  44. ref_sys_name = models.CharField(max_length=256)
  45. proj4text = models.CharField(max_length=2048)
  46. @property
  47. def wkt(self):
  48. from django.contrib.gis.gdal import SpatialReference
  49. return SpatialReference(self.proj4text).wkt
  50. class Meta:
  51. db_table = 'spatial_ref_sys'
  52. managed = False