models.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. objects = models.GeoManager()
  8. class Meta:
  9. abstract = True
  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. class SouthTexasCityFt(NamedModel):
  16. "Same City model as above, but U.S. survey feet are the units."
  17. point = models.PointField(srid=2278)
  18. class AustraliaCity(NamedModel):
  19. "City model for Australia, using WGS84."
  20. point = models.PointField()
  21. class CensusZipcode(NamedModel):
  22. "Model for a few South Texas ZIP codes (in original Census NAD83)."
  23. poly = models.PolygonField(srid=4269)
  24. class SouthTexasZipcode(NamedModel):
  25. "Model for a few South Texas ZIP codes."
  26. poly = models.PolygonField(srid=32140, null=gisfield_may_be_null)
  27. class Interstate(NamedModel):
  28. "Geodetic model for U.S. Interstates."
  29. path = models.LineStringField()
  30. class SouthTexasInterstate(NamedModel):
  31. "Projected model for South Texas Interstates."
  32. path = models.LineStringField(srid=32140)