web/lib/django/contrib/gis/tests/layermap/models.py
author ymh <ymh.work@gmail.com>
Tue, 15 Mar 2011 10:34:41 +0100
changeset 65 3d18d15135f1
parent 38 77b6da96e6f1
permissions -rw-r--r--
put video url in segment object
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
38
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
from django.contrib.gis.db import models
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
class State(models.Model):
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
    name = models.CharField(max_length=20)
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
    objects = models.GeoManager()
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
class County(models.Model):
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
    name = models.CharField(max_length=25)
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
    state = models.ForeignKey(State)
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
    mpoly = models.MultiPolygonField(srid=4269) # Multipolygon in NAD83
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
    objects = models.GeoManager()
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
class CountyFeat(models.Model):
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
    name = models.CharField(max_length=25)
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
    poly = models.PolygonField(srid=4269)
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
    objects = models.GeoManager()
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
class City(models.Model):
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
    name = models.CharField(max_length=25)
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
    population = models.IntegerField()
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
    density = models.DecimalField(max_digits=7, decimal_places=1)
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
    dt = models.DateField()
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
    point = models.PointField()
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
    objects = models.GeoManager()
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
class Interstate(models.Model):
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
    name = models.CharField(max_length=20)
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
    length = models.DecimalField(max_digits=6, decimal_places=2)
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
    path = models.LineStringField()
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
    objects = models.GeoManager()
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
# Same as `City` above, but for testing model inheritance.
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
class CityBase(models.Model):
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
    name = models.CharField(max_length=25)
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
    population = models.IntegerField()
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
    density = models.DecimalField(max_digits=7, decimal_places=1)
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
    point = models.PointField()
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
    objects = models.GeoManager()
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
class ICity1(CityBase):
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
    dt = models.DateField()
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
    
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
class ICity2(ICity1):
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
    dt_time = models.DateTimeField(auto_now=True)
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
# Mapping dictionaries for the models above.
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
co_mapping = {'name' : 'Name',
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
              'state' : {'name' : 'State'}, # ForeignKey's use another mapping dictionary for the _related_ Model (State in this case).
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
              'mpoly' : 'MULTIPOLYGON', # Will convert POLYGON features into MULTIPOLYGONS.
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
              }
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
cofeat_mapping = {'name' : 'Name',
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
                  'poly' : 'POLYGON',
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
                  }
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
city_mapping = {'name' : 'Name',
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
                'population' : 'Population',
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
                'density' : 'Density',
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
                'dt' : 'Created',
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
                'point' : 'POINT',
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
                }
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
inter_mapping = {'name' : 'Name',
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
                 'length' : 'Length',
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
                 'path' : 'LINESTRING',
77b6da96e6f1 update django
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
                 }