模型构建及保存、查询

模型构建

几何字段类型

包括PointField、LineStringField、PolygonField、MultiPointField、MultiLineStringField、MultiPolygonField、MultiPolygonField、GeometryCollectionField。只需在model中添加该字段即可,例如模型为点,则添加point = PointField() 。

几何字段设置

srid:可以设置坐标系统的类型,设置坐标号即可。

spatial_index:是否设置空间索引,设置则为True。

dim:设置维数,默认为2,二维。

geography:创建类型为geography的数据库列(地理坐标,未投影),不是几何类型。

GeoManager

为了进行地理查询,每个地理模型需要一个GeoManager模型管理器,主要用来构造SQL语句。

简单例子

from django.contrib.gis.db import models

class Zipcode(models.Model):
    code = models.CharField(max_length=5)
    poly = models.PolygonField()
    objects = models.GeoManager()

from django.contrib.gis.db import models

class Address(models.Model):
    num = models.IntegerField()
    street = models.CharField(max_length=100)
    city = models.CharField(max_length=100)
    state = models.CharField(max_length=2)
    zipcode = models.ForeignKey(Zipcode)
    objects = models.GeoManager()

qs = Address.objects.filter(zipcode__poly__contains='POINT(-104.590948 38.319914)')

你可能感兴趣的:(模型构建及保存、查询)