web/lib/django/contrib/gis/db/backend/spatialite/models.py
changeset 29 cc9b7e14412b
parent 28 b758351d191f
child 30 239f9bcae806
equal deleted inserted replaced
28:b758351d191f 29:cc9b7e14412b
     1 """
       
     2  The GeometryColumns and SpatialRefSys models for the SpatiaLite backend.
       
     3 """
       
     4 from django.db import models
       
     5 
       
     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 
       
    17     class Meta:
       
    18         app_label = 'gis'
       
    19         db_table = 'geometry_columns'
       
    20         managed = False
       
    21 
       
    22     @classmethod
       
    23     def table_name_col(cls):
       
    24         """
       
    25         Returns the name of the metadata column used to store the
       
    26         the feature table name.
       
    27         """
       
    28         return 'f_table_name'
       
    29 
       
    30     @classmethod
       
    31     def geom_col_name(cls):
       
    32         """
       
    33         Returns the name of the metadata column used to store the
       
    34         the feature geometry column.
       
    35         """
       
    36         return 'f_geometry_column'
       
    37 
       
    38     def __unicode__(self):
       
    39         return "%s.%s - %dD %s field (SRID: %d)" % \
       
    40                (self.f_table_name, self.f_geometry_column,
       
    41                 self.coord_dimension, self.type, self.srid)
       
    42 
       
    43 class SpatialRefSys(models.Model):
       
    44     """
       
    45     The 'spatial_ref_sys' table from SpatiaLite.
       
    46     """
       
    47     srid = models.IntegerField(primary_key=True)
       
    48     auth_name = models.CharField(max_length=256)
       
    49     auth_srid = models.IntegerField()
       
    50     ref_sys_name = models.CharField(max_length=256)
       
    51     proj4text = models.CharField(max_length=2048)
       
    52 
       
    53     @property
       
    54     def wkt(self):
       
    55         from django.contrib.gis.gdal import SpatialReference
       
    56         return SpatialReference(self.proj4text).wkt
       
    57     
       
    58     class Meta:
       
    59         abstract = True
       
    60         db_table = 'spatial_ref_sys'
       
    61         managed = False