models.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. app_label = 'geo3d'
  10. def __str__(self):
  11. return self.name
  12. class City3D(NamedModel):
  13. point = models.PointField(dim=3)
  14. class Interstate2D(NamedModel):
  15. line = models.LineStringField(srid=4269)
  16. class Interstate3D(NamedModel):
  17. line = models.LineStringField(dim=3, srid=4269)
  18. class InterstateProj2D(NamedModel):
  19. line = models.LineStringField(srid=32140)
  20. class InterstateProj3D(NamedModel):
  21. line = models.LineStringField(dim=3, srid=32140)
  22. class Polygon2D(NamedModel):
  23. poly = models.PolygonField(srid=32140)
  24. class Polygon3D(NamedModel):
  25. poly = models.PolygonField(dim=3, srid=32140)
  26. class SimpleModel(models.Model):
  27. objects = models.GeoManager()
  28. class Meta:
  29. abstract = True
  30. app_label = 'geo3d'
  31. class Point2D(SimpleModel):
  32. point = models.PointField()
  33. class Point3D(SimpleModel):
  34. point = models.PointField(dim=3)
  35. class MultiPoint3D(SimpleModel):
  36. mpoint = models.MultiPointField(dim=3)