コード例 #1
0
class Datastream(models.Model):
    """
    Datatsream model type definition. Related fields are defined it related models.
    """
    name = models.TextField("Name")
    description = models.TextField("Description")
    unitOfMeasurement = JSONField(verbose_name="Unit of Measurement")
    observationType = models.TextField(
        verbose_name="Observation Type",
        choices=OBSERVATION_TYPES,
        default=
        "http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Observation")
    observedArea = models.PolygonField(blank=True,
                                       null=True,
                                       verbose_name="Observed Area")
    phenomenonTime = DateTimeRangeField(
        blank=True,
        null=True,
        # validators=[Validators.validate_interval],
        verbose_name="Phenomenon Time")
    resultTime = DateTimeRangeField(
        blank=True,
        null=True,
        # validators=[Validators.validate_interval],
        verbose_name="Result Time")
    Thing = models.ForeignKey(Thing,
                              on_delete=models.CASCADE,
                              related_name="Datastream",
                              verbose_name='Thing')
    Sensor = models.ForeignKey("Sensor",
                               on_delete=models.CASCADE,
                               related_name="Datastream",
                               verbose_name="Sensor")
    ObservedProperty = models.ForeignKey("ObservedProperty",
                                         on_delete=models.CASCADE,
                                         related_name="Datastream",
                                         verbose_name="Observed Property")

    class Meta:
        verbose_name = "Datastream"
        verbose_name_plural = "Datastreams"

    def __str__(self):
        return self.name
コード例 #2
0
class AsvMataAtlantica(models.Model):

    processo = models.IntegerField(null=True, blank=True)
    uf = models.CharField('Unidade da Federação',
                          max_length=2,
                          null=True,
                          blank=True)
    municipio = models.CharField('Município',
                                 max_length=255,
                                 null=True,
                                 blank=True)
    empreendedor = models.CharField(max_length=255, null=True, blank=True)
    tipo_empreendimento = models.CharField('Tipo de Empreendimento',
                                           max_length=255,
                                           null=True,
                                           blank=True)
    cpfj = models.CharField('CPF ou CNPJ do Empreendedor',
                            max_length=22,
                            null=True,
                            blank=True)
    area_supressao_total = models.FloatField('Área Total de Supressão (ha)',
                                             null=True,
                                             blank=True)
    area_supressao_veg_primaria = models.FloatField(
        """Área de Supressão de Vegetação Primária (ha)""",
        null=True,
        blank=True)
    area_supressao_estagio_medio = models.FloatField(
        """Área de Supressão em Estágio Médio (ha)""", null=True, blank=True)
    area_supressao_estagio_avancado = models.FloatField(
        """Área de Supressão em Estágio Avançado (ha)""",
        null=True,
        blank=True)
    usuario = models.ForeignKey(User, related_name='asvma')
    data_criacao = models.DateTimeField('Data de Criação', auto_now_add=True)
    geom = models.PolygonField(srid=4674)
    objects = models.GeoManager()

    def __str__(self):
        return '%s' % self.processo

    class Meta:
        verbose_name = 'Autorização de Supressão de Vegetação - Mata Atlântica'
        verbose_name_plural = """Autorizações de Supressão de Vegetação -
コード例 #3
0
ファイル: models.py プロジェクト: Tecnikan/web
class Linea(models.Model):
    nombre = models.CharField(max_length=100)
    slug = models.SlugField(max_length=120, blank=True, null=False)
    descripcion = models.TextField(blank=True, null=True)
    foto = models.CharField(max_length=20, blank=True, null=True)
    img_panorama = models.ImageField(max_length=200,
                                     upload_to='linea',
                                     blank=True,
                                     null=True)
    img_cuadrada = models.ImageField(max_length=200,
                                     upload_to='linea',
                                     blank=True,
                                     null=True)
    color_polilinea = models.CharField(max_length=20, blank=True, null=True)
    info_empresa = models.TextField(blank=True, null=True)
    info_terminal = models.TextField(blank=True, null=True)
    localidad = models.CharField(max_length=50, blank=True, null=True)
    cp = models.CharField(max_length=20, blank=True, null=True)
    telefono = models.CharField(max_length=200, blank=True, null=True)
    envolvente = models.PolygonField(blank=True, null=True)

    def __str__(self):
        return self.nombre

    def save(self, *args, **kwargs):
        self.slug = slugify(self.nombre)
        super(Linea, self).save(*args, **kwargs)

    def get_absolute_url(self, ciudad_slug=None):
        # chequear si la linea está en esta ciudad, sino tirar excepcion
        if ciudad_slug is None:
            try:
                ciudad_slug = self.ciudades.all().only('slug')[0].slug
            except Exception as e:
                print(e)
                print(self)
                return ""
        else:
            get_object_or_404(Ciudad, slug=ciudad_slug, lineas=self)
        return reverse('ver_linea',
                       kwargs={
                           'nombre_ciudad': ciudad_slug,
                           'nombre_linea': self.slug
                       })
コード例 #4
0
class GeoUnidad(models.Model):
    nombre = models.CharField(max_length=255)
    descripcion = models.CharField(max_length=255, null=True, blank=True)
    area = models.FloatField(default=0)
    indiceAmenaza = models.FloatField(default=0)
    indiceVulnerabilidad = models.FloatField(default=0)
    indiceRiesgo = models.FloatField(default=0)
    fuente = models.CharField(max_length=255, null=True)
    anyo = models.IntegerField(default=1900)
    geom = models.PolygonField()
    status = models.CharField(max_length=20, null=True, blank=True)
    territorio = models.ForeignKey(Territorio,
                                   on_delete=models.CASCADE,
                                   related_name='geounidades')

    @property
    def eliminable(self):
        return not (self.comunidades.all().exists()
                    or self.riesgos.all().exists())
コード例 #5
0
ファイル: models.py プロジェクト: jitendrashahiitb/Shelter
class ElectoralWard(models.Model):
    """Electoral Ward Database"""
    administrative_ward = models.ForeignKey(AdministrativeWard, blank=True, null=True)
    name = models.CharField(max_length=2048, default="")
    shape = models.PolygonField(srid=4326, default="")
    ward_no = models.CharField(max_length=2048, default="")
    ward_code = models.TextField(max_length=2048, default="")
    extra_info = models.CharField(max_length=2048,blank=True,null=True)
    border_color = ColorField(default='#FFEFA1')
    background_color = ColorField(default='#FFEFA1')

    def __unicode__(self):
        """Returns string representation of object"""
        return self.name

    class Meta:
        """Metadata for class ElectoralWard"""
        verbose_name = 'Electoral Ward'
        verbose_name_plural = 'Electoral Wards'
コード例 #6
0
ファイル: models.py プロジェクト: jitendrashahiitb/Shelter
class AdministrativeWard(models.Model):
    """Administrative Ward Database"""
    city = models.ForeignKey(City)
    name = models.CharField(max_length=2048, default="")
    shape = models.PolygonField(srid=4326, default="")
    ward_no = models.CharField(max_length=2048, default="")
    description = models.TextField(max_length=2048,blank=True,null=True)
    office_address = models.CharField(max_length=2048,blank=True,null=True)
    border_color = ColorField(default='#BFFFD0')
    background_color = ColorField(default='#BFFFD0')

    def __unicode__(self):
        """Returns string representation of object"""
        return self.name

    class Meta:
        """Metadata for class Administrative Ward"""
        verbose_name = 'Administrative Ward'
        verbose_name_plural = 'Administrative Wards'
コード例 #7
0
class Mission(models.Model):
    id = models.TextField(primary_key=True)
    title = models.TextField()
    type = models.TextField()
    description = models.TextField()
    area = models.PolygonField(default='POLYGON EMPTY')
    created_at = models.DateTimeField(default=timezone.now)
    starts_at = models.DateTimeField()
    ends_at = models.DateTimeField()
    clearance = models.ForeignKey(Clearance,
                                  on_delete=models.SET_NULL,
                                  blank=True,
                                  null=True)
    created_by = models.ForeignKey(User, on_delete=models.CASCADE)

    # clearance

    def as_geojson(self):
        return {
            "type":
            "FeatureCollection",
            "features": [{
                "geometry": {
                    "coordinates": self.area[0].coords,
                    "type": "Polygon"
                }
            }]
        }

    def as_dict(self):
        return {
            "id": self.id,
            "title": self.title,
            "created_at": self.created_at.isoformat(),
            "area": self.as_geojson(),
            "starts_at": self.starts_at.isoformat(),
            "ends_at": self.ends_at.isoformat(),
            "created_by": self.created_by.id,
            "description": self.description,
            "commander_id": self.created_by.username,
            "clearance": self.clearance.as_dict(),
            "type": self.type
        }
コード例 #8
0
class Pixel(models.Model):
    state = models.CharField(max_length=100, null=True, blank=True)
    latitude = models.FloatField()
    longitude = models.FloatField()
    geom = models.PolygonField(null=True)
    resolution = models.FloatField(default=0.05)

    def __str__(self):
        return f'{ self.latitude }, { self.longitude }, res = { self.resolution }º'

    @property
    def popup_content(self):
        # popup = "<span>ID: </span>{}<br>".format(self.id)
        # popup += "<span>Cidade: </span>{}<br>".format(self.city)
        # popup += "<span>Estado: </span>{}<br>".format(self.state)
        popup = "<span>Latitude: </span>{}<br>".format(self.latitude)
        popup += "<span>Longitude: </span>{}<br>".format(self.longitude)

        return popup
コード例 #9
0
class Way(models.Model):
    changeset = models.ForeignKey(Changeset, related_name="ways")
    nodes = models.ManyToManyField(Node, through='WayNodes')
    timestamp = models.DateTimeField(auto_now=True)
    geom = models.PolygonField(blank=True, null=True)
    parent_id = models.IntegerField(blank=True, null=True)

    def update_geom(self):
        li_coords = []
        for waynode in self.waynodes.all():
            coord = waynode.node.geom.coords
            li_coords.append(coord)

        tpl_coords = tuple(li_coords)
        poly = Polygon(tpl_coords)
        self.geom = poly
        self.save()

    objects = models.GeoManager()
コード例 #10
0
class Site(models.Model):
    id = models.CharField(max_length=30, primary_key=True)
    short_id = models.IntegerField(unique=True, null=True)
    buurt_code = models.CharField(max_length=20, null=True)
    stadsdeel = models.CharField(max_length=1, null=True)
    stadsdeel_naam = models.CharField(max_length=20, null=True)
    straatnaam = models.CharField(max_length=40, null=True)
    huisnummer = models.IntegerField(null=True)
    # distance to address
    distance = models.IntegerField(null=True)
    bgt_based = models.NullBooleanField()
    centroid = models.PointField(name='centroid', srid=4326)
    geometrie = models.PolygonField(name='geometrie', srid=28992)
    extra_attributes = JSONField(null=True, default=dict)
    # helper field during cleanup. do not publish.
    active = models.IntegerField(null=True)

    def __str__(self):
        return f"{self.id}-{self.straatnaam} {self.huisnummer}"
コード例 #11
0
class Topo50grid(models.Model):
    """Contains the Topo50 mapping grid without map sheet overlays.

    Used in the NZAA application for predicting the site identifier.

    This grid can be generated using code in the nzaa.utils module. It
    depends on having the Topo50_islands table populated before
    running the code.

    """

    identifier = models.CharField(max_length=4, primary_key=True)
    sheet_name = models.TextField(blank=True, null=True)
    geom = models.PolygonField(srid=2193)

    nzms_xmax = models.IntegerField()
    nzms_xmin = models.IntegerField()
    nzms_ymax = models.IntegerField()
    nzms_ymin = models.IntegerField()
コード例 #12
0
class Changeset(models.Model):

    user = models.CharField(max_length=1000)
    uid = models.CharField(_('User ID'), max_length=255)
    editor = models.CharField(max_length=255)
    powerfull_editor = models.BooleanField(_('Powerfull Editor'),
                                           default=False)
    comment = models.CharField(max_length=1000, blank=True)
    source = models.CharField(max_length=1000, blank=True)
    imagery_used = models.CharField(max_length=1000, blank=True)
    date = models.DateTimeField()
    reasons = models.ManyToManyField(SuspicionReasons,
                                     related_name='changesets')
    create = models.IntegerField()
    modify = models.IntegerField()
    delete = models.IntegerField()
    bbox = models.PolygonField()
    is_suspect = models.BooleanField()
    harmful = models.NullBooleanField()
    checked = models.BooleanField(default=False)
    check_user = models.ForeignKey(User, blank=True, null=True)
    check_date = models.DateTimeField(null=True, blank=True)
    objects = models.GeoManager()

    def __str__(self):
        return '%s' % self.id

    def osm_link(self):
        """Return the link to the changeset page on OSM website."""
        return 'http://www.openstreetmap.org/changeset/%s' % self.id

    def achavi_link(self):
        """Return the link to the changeset page on ACHAVI."""
        return 'https://overpass-api.de/achavi/?changeset=%s' % self.id

    def josm_link(self):
        """Return link to open changeset in JOSM."""
        josm_base = "http://127.0.0.1:8111/import?url="
        changeset_url = "http://www.openstreetmap.org/api/0.6/changeset/%s/download" % self.id
        return "%s%s" % (
            josm_base,
            changeset_url,
        )
コード例 #13
0
ファイル: models.py プロジェクト: corydissinger/councilmatic
class CouncilDistrict(TimestampedModelMixin, models.Model):
    key = models.AutoField(primary_key=True)
    id = models.IntegerField()
    shape = models.PolygonField()
    plan = models.ForeignKey('CouncilDistrictPlan', related_name='districts')

    objects = models.GeoManager()

    @property
    def representative(self):
        # Sort the tenures here instead of in a query, as there shouldn't be
        # very many, and this allows us to use prefetched tenures, if they
        # exist.
        tenures = sorted(self.tenures.all(), key=lambda t: t.begin)
        if tenures:
            return tenures[-1].councilmember

    def __unicode__(self):
        return u'District {d}'.format(d=self.id)
コード例 #14
0
class SimpleRupture(models.Model):
    '''
    Simple rupture view, needed for GeoNode integration
    '''
    owner_id = models.IntegerField()
    input_id = models.IntegerField()
    gid = models.TextField()
    name = models.TextField()
    description = models.TextField()
    si_type = models.TextField()
    tectonic_region = models.TextField()
    rake = models.FloatField()
    magnitude = models.FloatField()
    magnitude_type = models.CharField(max_length=2)
    edge = models.LineStringField(srid=4326)
    fault_outline = models.PolygonField(srid=4326)

    class Meta:  # pylint: disable=C0111,W0232
        db_table = 'hzrdi\".\"simple_rupture'
コード例 #15
0
class KiambuSublocation(models.Model):
    id_0 = models.IntegerField()
    iso = models.CharField(max_length=254)
    name_0 = models.CharField(max_length=254)
    id_1 = models.IntegerField()
    name_1 = models.CharField(max_length=254)
    id_2 = models.IntegerField()
    name_2 = models.CharField(max_length=254)
    id_3 = models.IntegerField()
    name_3 = models.CharField(max_length=254)
    id_4 = models.IntegerField()
    name_4 = models.CharField(max_length=254)
    id_5 = models.IntegerField()
    name_5 = models.CharField(max_length=254)
    type_5 = models.CharField(max_length=254)
    engtype_5 = models.CharField(max_length=254)
    shape_leng = models.FloatField()
    shape_area = models.FloatField()
    geom = models.PolygonField(srid=4326)
コード例 #16
0
ファイル: models.py プロジェクト: medcv/flintlock
class IncorporatedPlace(USGSBase):
    service_id = 14
    incorporatedplace_fcode = [(61400, u'Incorporated Place'),
                               (61401, u'Borough'), (61403, u'City'),
                               (61404, u'City and Borough'),
                               (61405, u'Communidad'),
                               (61407, u'Consolidated City'),
                               (61410, u'Independent City'),
                               (61412, u'Municipality'), (61414, u'Town'),
                               (61415, u'Village'), (61416, u'Zona Urbana')]
    yesno_domain = [(1, u'Yes'), (2, u'No'), (0, u'Unknown')]
    objectid = models.IntegerField(null=True, blank=True, unique=True)
    fcode = models.IntegerField(choices=incorporatedplace_fcode,
                                null=True,
                                blank=True)
    state_name = models.CharField(max_length=120, null=True, blank=True)
    place_fipscode = models.CharField(max_length=5,
                                      null=True,
                                      blank=True,
                                      verbose_name='FIPS Code')
    place_name = models.CharField(max_length=120, null=True, blank=True)
    population = models.IntegerField(null=True, blank=True)
    iscapitalcity = models.IntegerField(choices=yesno_domain,
                                        null=True,
                                        blank=True)
    iscountyseat = models.IntegerField(choices=yesno_domain,
                                       null=True,
                                       blank=True)
    geom = models.PolygonField()

    @property
    def fips(self):
        return self.place_fipscode

    @property
    def name(self):
        return self.place_name

    class Meta:
        ordering = (
            'state_name',
            'place_name',
        )
コード例 #17
0
ファイル: models.py プロジェクト: styx08/f3s-simulator
class Fire(CommonModel):
    """
    Burning area of the wildfire.

    On each step fires polygons recalculates, then checks for intersection.
    Intersected fires merges into new fire.
    """
    map = models.ForeignKey(Map, related_name='fires')
    step = models.ForeignKey(Step, related_name='fires', blank=True, null=True)
    burnout = models.ForeignKey(Burnout, related_name='fires')
    name = models.CharField(_('burnout name'), max_length=32, blank=True)
    child = models.ForeignKey('self',
                              related_name='parents',
                              blank=True,
                              null=True)
    polygon = models.PolygonField(_('polygon'))

    def __unicode__(self):
        return '%s on % map' % (self.name, self.map.name)
コード例 #18
0
ファイル: models.py プロジェクト: a1101x/chatter
class Zipcode(models.Model):
    code = models.CharField(
        _('Zipcode'),
        max_length=5,
        help_text=_('Zipcode.')
    )
    poly = models.PolygonField(
        _('Poly'),
        help_text=_('Poly.')
    )

    objects = GeoManager()

    class Meta:
        verbose_name = _('Zipcode')
        verbose_name_plural = _('Zipcodes')

    def __str__(self):
        return '{}'.format(self.code)
コード例 #19
0
class OracleSpatialRefSys(models.Model, SpatialRefSysMixin):
    "Maps to the Oracle MDSYS.CS_SRS table."
    cs_name = models.CharField(max_length=68)
    srid = models.IntegerField(primary_key=True)
    auth_srid = models.IntegerField()
    auth_name = models.CharField(max_length=256)
    wktext = models.CharField(max_length=2046)
    # Optional geometry representing the bounds of this coordinate
    # system.  By default, all are NULL in the table.
    cs_bounds = models.PolygonField(null=True)

    class Meta:
        app_label = "gis"
        db_table = "CS_SRS"
        managed = False

    @property
    def wkt(self):
        return self.wktext
コード例 #20
0
class SimpleFault(djm.Model):
    '''
    Simple fault geometry
    '''
    owner = djm.ForeignKey('OqUser')
    gid = djm.TextField()
    name = djm.TextField(null=True)
    description = djm.TextField(null=True)
    dip = djm.FloatField()
    upper_depth = djm.FloatField()
    lower_depth = djm.FloatField()
    mfd_tgr = djm.ForeignKey('MfdTgr')
    mfd_evd = djm.ForeignKey('MfdEvd')
    last_update = djm.DateTimeField(editable=False, default=datetime.utcnow)
    edge = djm.LineStringField(srid=4326)
    outline = djm.PolygonField(srid=4326)

    class Meta:
        db_table = 'hzrdi\".\"simple_fault'
コード例 #21
0
class Shop(models.Model):
    # provides location for providers
    location = models.PointField()
    poly = models.PolygonField(blank=True, null=True)

    county = models.CharField(max_length=60, null=True, blank=True)
    address = models.CharField(max_length=100)
    city = models.CharField(max_length=50)
    zip_code = models.ForeignKey(ZipCode,
                                 on_delete=models.SET_NULL,
                                 null=True,
                                 blank=True)
    elevation = models.ForeignKey(Elevation,
                                  on_delete=models.SET_NULL,
                                  null=True,
                                  blank=True)

    def __str__(self):
        return str(self.address)
コード例 #22
0
class Person(models.Model):
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
    happy = models.BooleanField(default=True)
    unhappy = models.BooleanField(default=False)
    bipolar = models.BooleanField(default=False)
    name = models.CharField(max_length=30)
    nickname = models.SlugField(max_length=36)
    age = models.IntegerField()
    bio = models.TextField()
    birthday = models.DateField()
    birth_time = models.TimeField()
    appointment = models.DateTimeField()
    blog = models.URLField()
    occupation = models.CharField(max_length=10, choices=OCCUPATION_CHOICES)
    uuid = models.UUIDField(primary_key=False)
    name_hash = models.BinaryField(max_length=16)
    wanted_games_qtd = models.BigIntegerField()
    duration_of_sleep = models.DurationField()
    email = models.EmailField()

    try:
        from django.contrib.postgres.fields import ArrayField, HStoreField, JSONField
        from django.contrib.postgres.fields.citext import CICharField, CIEmailField, CITextField
        acquaintances = ArrayField(models.IntegerField())
        data = JSONField()
        hstore_data = HStoreField()
        ci_char = CICharField(max_length=30)
        ci_email = CIEmailField()
        ci_text = CITextField()
    except ImportError:
        # Skip PostgreSQL-related fields
        pass

    if MOMMY_GIS:
        geom = models.GeometryField()
        point = models.PointField()
        line_string = models.LineStringField()
        polygon = models.PolygonField()
        multi_point = models.MultiPointField()
        multi_line_string = models.MultiLineStringField()
        multi_polygon = models.MultiPolygonField()
        geom_collection = models.GeometryCollectionField()
コード例 #23
0
class Districts(models.Model):
    ogc_fid = models.AutoField(primary_key=True)
    objectid = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    dname2014 = models.CharField(max_length=80, blank=True, null=True)
    subregion = models.CharField(max_length=80, blank=True, null=True)
    region = models.CharField(max_length=80, blank=True, null=True)
    hh2014 = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    hhsize2014 = models.DecimalField(max_digits=19, decimal_places=11, blank=True, null=True)
    males2014 = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    female2014 = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    pop_2014 = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    pop_urban = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    pop_rural = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    pop2013 = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    pop2010 = models.DecimalField(max_digits=19, decimal_places=11, blank=True, null=True)
    hh2010 = models.DecimalField(max_digits=19, decimal_places=11, blank=True, null=True)
    pop2002 = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    hh2002 = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    f1991_2002 = models.DecimalField(max_digits=19, decimal_places=11, blank=True, null=True)
    f2002_2014 = models.DecimalField(max_digits=19, decimal_places=11, blank=True, null=True)
    f1969_2014 = models.DecimalField(max_digits=19, decimal_places=11, blank=True, null=True)
    totcon2011 = models.DecimalField(max_digits=19, decimal_places=11, blank=True, null=True)
    accs_ele_h = models.DecimalField(max_digits=19, decimal_places=11, blank=True, null=True)
    status = models.CharField(max_length=80, blank=True, null=True)
    globalid = models.CharField(max_length=80, blank=True, null=True)
    creationda = models.DateField(blank=True, null=True)
    creator = models.CharField(max_length=80, blank=True, null=True)
    editdate = models.DateField(blank=True, null=True)
    editor = models.CharField(max_length=80, blank=True, null=True)
    rai = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    rai_urb = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
    rai_ub_pop = models.DecimalField(max_digits=13, decimal_places=11, blank=True, null=True)
    new_rai = models.DecimalField(max_digits=13, decimal_places=11, blank=True, null=True)
    wkb_geometry = geomodels.PolygonField(srid=4326,blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'districts'
        verbose_name_plural = "District"
    
    def __str__(self):
        return self.dname2014
コード例 #24
0
class Department(models.Model):
    owner = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
    airbosses = models.ManyToManyField(User, related_name="airboss_profile")
    watchCommanders = models.ManyToManyField(User,
                                             related_name="watchcom_profile")
    area = models.PolygonField(default='POLYGON EMPTY')
    name = models.TextField(unique=True)

    # clearance

    def as_geojson(self):
        coords = [[x[0], x[1]] for x in self.area[0].coords]
        return {
            "type":
            "FeatureCollection",
            "features": [{
                "type": "Feature",
                "properties": {
                    "name": self.name
                },
                "geometry": {
                    "coordinates": [coords],
                    "type": "Polygon"
                }
            }]
        }

    def get_airbosses(self):
        return [x.as_dict() for x in self.airbosses.all()]

    def get_watch_commanders(self):
        return [x.as_dict() for x in self.watchCommanders.all()]

    def as_dict(self):
        return {
            "id": self.id,
            "owner": self.owner.as_dict(),
            "name": self.name,
            "area": self.as_geojson(),
            "airbosses": self.get_airbosses(),
            "watch_commanders": self.get_watch_commanders()
        }
コード例 #25
0
class Country(models.Model):
    """ Countries """
    id = models.AutoField(primary_key=True)
    code = models.CharField(max_length=5, unique=True)
    name = models.CharField(max_length=100, unique=True)
    name_iso_country = models.CharField(max_length=100,
                                        unique=True,
                                        blank=True,
                                        null=True)
    code_iso3_country = models.CharField(max_length=3,
                                         unique=True,
                                         blank=True,
                                         null=True)

    wikidata = models.JSONField(blank=True, null=True)
    wikipedia = models.TextField(blank=True, null=True)

    pop_est = models.IntegerField(blank=True, null=True)
    gdp_md_est = models.IntegerField(blank=True, null=True)
    economy = models.CharField(max_length=100, blank=True, null=True)
    income_grp = models.CharField(max_length=100, blank=True, null=True)
    continent = models.CharField(max_length=100, blank=True, null=True)
    region_un = models.CharField(max_length=100, blank=True, null=True)
    subregion = models.CharField(max_length=100, blank=True, null=True)
    region_wb = models.CharField(max_length=100, blank=True, null=True)

    border = models.MultiPolygonField(blank=True, null=True)
    bbox = models.PolygonField(blank=True, null=True)

    colour = models.ForeignKey(CatalogColour,
                               models.PROTECT,
                               blank=True,
                               null=True)

    history = HistoricalRecords(table_name=f'historic_countries')

    def __str__(self):
        return self.name

    class Meta:
        db_table = 'country'
        verbose_name_plural = 'Countries'
コード例 #26
0
class KiambuCounty(models.Model):
    id_0 = models.IntegerField()
    iso = models.CharField(max_length=254)
    name_0 = models.CharField(max_length=254)
    id_1 = models.IntegerField()
    name_1 = models.CharField(max_length=254)
    id_2 = models.IntegerField()
    name_2 = models.CharField(max_length=254)
    varname_2 = models.CharField(max_length=254, null=True)
    nl_name_2 = models.CharField(max_length=254, null=True)
    hasc_2 = models.CharField(max_length=254, null=True)
    cc_2 = models.CharField(max_length=254, null=True)
    type_2 = models.CharField(max_length=254, null=True)
    engtype_2 = models.CharField(max_length=254, null=True)
    validfr_2 = models.CharField(max_length=254)
    validto_2 = models.CharField(max_length=254)
    remarks_2 = models.CharField(max_length=254, null=True)
    shape_leng = models.FloatField()
    shape_area = models.FloatField()
    geom = models.PolygonField(srid=4326)
コード例 #27
0
ファイル: models.py プロジェクト: medcv/flintlock
class StateorTerritoryHigh(USGSBase):
    service_id = 18
    stateorterritory_fcode = [(61100, u'State'), (61101, u'Territory'),
                              (61102, u'Province')]
    objectid = models.IntegerField(null=True, blank=True, unique=True)
    fcode = models.IntegerField(choices=stateorterritory_fcode,
                                null=True,
                                blank=True)
    state_fipscode = models.CharField(max_length=2, null=True, blank=True)
    state_name = models.CharField(max_length=120, null=True, blank=True)
    population = models.IntegerField(null=True, blank=True)
    geom = models.PolygonField()

    @property
    def fips(self):
        return self.state_fipscode

    @property
    def name(self):
        return self.state_name
コード例 #28
0
class Location(models.Model):
    """Class for the location which couple with the User.
    If you curious about the SRID read here: 
    https://secure.wikimedia.org/wikipedia/en/wiki/SRID
    Of you want to know why 4326 and not 42 read here: 
        https://secure.wikimedia.org/wikipedia/en/wiki/WGS84
    """

    user = models.ForeignKey(User, related_name='location_set')
    name = models.CharField(max_length=32)
    marker = models.PointField(srid=4326)  # the marker
    area = models.PolygonField(srid=4326, blank=True,
                               null=True)  #the area of delivery
    objects = models.GeoManager()

    def __unicode__(self):
        return self.name

    class Meta:
        unique_together = ("user", "name")
コード例 #29
0
class SurfaceShape(models.Model):
    name = models.CharField(max_length=100)
    airport = models.ForeignKey(Airport,
                                related_name="surfaces",
                                on_delete=models.CASCADE)
    surface_type = models.ForeignKey(SurfaceType,
                                     related_name="shapes",
                                     on_delete=models.CASCADE)
    geometry = models.PolygonField()

    def clean(self):
        if self.airport.id != self.surface_type.airport.id:
            raise ValidationError(
                'The surface and its type must belong to the same Airport.')

    class Meta:
        verbose_name_plural = 'Surface Shapes'

    def __str__(self):
        return "{} ({})".format(self.name, self.airport.code)
コード例 #30
0
ファイル: models.py プロジェクト: rploeg/bustimes.org
class Place(models.Model):
    source = models.ForeignKey(DataSource, models.CASCADE)
    code = models.CharField(max_length=255)
    name = models.CharField(max_length=255)
    latlong = models.PointField(null=True, blank=True)
    polygon = models.PolygonField(null=True, blank=True)
    parent = models.ForeignKey('Place',
                               models.SET_NULL,
                               null=True,
                               editable=False)
    search_vector = SearchVectorField(null=True, blank=True)

    class Meta():
        unique_together = ('source', 'code')

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse('place_detail', args=(self.pk, ))