models.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. from django.contrib.gis.db import models
  2. from django.utils.encoding import python_2_unicode_compatible
  3. @python_2_unicode_compatible
  4. class NamedModel(models.Model):
  5. name = models.CharField(max_length=30)
  6. objects = models.GeoManager()
  7. class Meta:
  8. abstract = True
  9. def __str__(self):
  10. return self.name
  11. class City3D(NamedModel):
  12. point = models.PointField(dim=3)
  13. class Interstate2D(NamedModel):
  14. line = models.LineStringField(srid=4269)
  15. class Interstate3D(NamedModel):
  16. line = models.LineStringField(dim=3, srid=4269)
  17. class InterstateProj2D(NamedModel):
  18. line = models.LineStringField(srid=32140)
  19. class InterstateProj3D(NamedModel):
  20. line = models.LineStringField(dim=3, srid=32140)
  21. class Polygon2D(NamedModel):
  22. poly = models.PolygonField(srid=32140)
  23. class Polygon3D(NamedModel):
  24. poly = models.PolygonField(dim=3, srid=32140)
  25. class SimpleModel(models.Model):
  26. objects = models.GeoManager()
  27. class Meta:
  28. abstract = True
  29. class Point2D(SimpleModel):
  30. point = models.PointField()
  31. class Point3D(SimpleModel):
  32. point = models.PointField(dim=3)
  33. class MultiPoint3D(SimpleModel):
  34. mpoint = models.MultiPointField(dim=3)