models.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. from django.contrib.gis.db import models
  2. from django.utils.encoding import python_2_unicode_compatible
  3. from ..utils import gisfield_may_be_null
  4. @python_2_unicode_compatible
  5. class NamedModel(models.Model):
  6. name = models.CharField(max_length=30)
  7. class Meta:
  8. abstract = True
  9. required_db_features = ['gis_enabled']
  10. def __str__(self):
  11. return self.name
  12. class SouthTexasCity(NamedModel):
  13. "City model on projected coordinate system for South Texas."
  14. point = models.PointField(srid=32140)
  15. radius = models.IntegerField(default=10000)
  16. class SouthTexasCityFt(NamedModel):
  17. "Same City model as above, but U.S. survey feet are the units."
  18. point = models.PointField(srid=2278)
  19. class AustraliaCity(NamedModel):
  20. "City model for Australia, using WGS84."
  21. point = models.PointField()
  22. radius = models.IntegerField(default=10000)
  23. class CensusZipcode(NamedModel):
  24. "Model for a few South Texas ZIP codes (in original Census NAD83)."
  25. poly = models.PolygonField(srid=4269)
  26. class SouthTexasZipcode(NamedModel):
  27. "Model for a few South Texas ZIP codes."
  28. poly = models.PolygonField(srid=32140, null=gisfield_may_be_null)
  29. class Interstate(NamedModel):
  30. "Geodetic model for U.S. Interstates."
  31. path = models.LineStringField()
  32. class SouthTexasInterstate(NamedModel):
  33. "Projected model for South Texas Interstates."
  34. path = models.LineStringField(srid=32140)