我尝试根据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