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.

models.py 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. """
  2. The GeometryColumns and SpatialRefSys models for the SpatiaLite backend.
  3. """
  4. from django.contrib.gis.db.backends.base.models import SpatialRefSysMixin
  5. from django.db import models
  6. class SpatialiteGeometryColumns(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. coord_dimension = models.IntegerField()
  13. srid = models.IntegerField(primary_key=True)
  14. spatial_index_enabled = models.IntegerField()
  15. type = models.IntegerField(db_column='geometry_type')
  16. class Meta:
  17. app_label = 'gis'
  18. db_table = 'geometry_columns'
  19. managed = False
  20. def __str__(self):
  21. return '%s.%s - %dD %s field (SRID: %d)' % (
  22. self.f_table_name,
  23. self.f_geometry_column,
  24. self.coord_dimension,
  25. self.type,
  26. self.srid,
  27. )
  28. @classmethod
  29. def table_name_col(cls):
  30. """
  31. Return the name of the metadata column used to store the feature table
  32. name.
  33. """
  34. return 'f_table_name'
  35. @classmethod
  36. def geom_col_name(cls):
  37. """
  38. Return the name of the metadata column used to store the feature
  39. geometry column.
  40. """
  41. return 'f_geometry_column'
  42. class SpatialiteSpatialRefSys(models.Model, SpatialRefSysMixin):
  43. """
  44. The 'spatial_ref_sys' table from SpatiaLite.
  45. """
  46. srid = models.IntegerField(primary_key=True)
  47. auth_name = models.CharField(max_length=256)
  48. auth_srid = models.IntegerField()
  49. ref_sys_name = models.CharField(max_length=256)
  50. proj4text = models.CharField(max_length=2048)
  51. srtext = models.CharField(max_length=2048)
  52. class Meta:
  53. app_label = 'gis'
  54. db_table = 'spatial_ref_sys'
  55. managed = False
  56. @property
  57. def wkt(self):
  58. return self.srtext