GeoDjango在模型/序列化器中改变了几何类型

时间:2018-03-28 13:47:09

标签: python django django-rest-framework geodjango

我尝试根据Django和rasterstats lib进行一些栅格统计。用户请求GeoJson,在响应中,我也应该提供GeoJson。几何应该存储在数据库模型中。

目前,我使用models.PolygonField工作,但我想添加其他几何类型。

我正在使用django-rest-framework-gis

models.py

class CalculateLocation(Base):

    id = models.AutoField(primary_key=True)
    otherProperties = models.CharField(max_length=2000)
    geometry = models.PolygonField(blank=True)
    min = models.CharField(blank=True, max_length=20)
    max = models.CharField(blank=True, max_length=20)
    mean = models.CharField(blank=True, max_length=20)

serializers.py

class CalculateLocationSerializer(GeoFeatureModelSerializer):

    class Meta:
        model = CalculateLocation
        geo_field = "geometry"
        fields = (
            'id',
            'otherProperties',
            'min',
            'max',
            'mean'
        )

如何在一个字段中存储和序列化/反序列化不同的几何类型,例如Point,Polygon,Multipolygon等?

编辑:

我使用GeometryField - https://docs.djangoproject.com/en/2.0/ref/contrib/gis/model-api/#geometryfield

在模型中管理了设置通用几何体

使用这种字段我可以使用WKT,WKB,GeoJson格式插入每种几何类型GEOSGeometry - https://docs.djangoproject.com/en/2.0/ref/contrib/gis/geos/#creating-a-geometry

0 个答案:

没有答案