将KML文件添加到GeoDjango字段中。

3
我将尝试在GeoDjango的字段中添加一个KML文件。 KML文件链接。我试图遵循这个问题的答案 on this question 但它大部分是错误的。
我的模型:
class School(models.Model):
    boundaries = models.PolygonField(null=True)

i = School.objects.get(...)
ds = DataSource('school.aspx')
layer = ds[0]   #The file only has 1 layer
geom = layer.get_geoms()
boundary = GEOSGeometry(geom[0])
i.boundaries = boundary
i.save()

上述代码导致了以下错误:
TypeError: 几何输入类型不正确: 当我尝试以直接方式添加字段时,如下所示:
i = School.objects.get(...)
ds = DataSource('school.aspx')
layer = ds[0]
geom = layer.get_geoms()
i.boundaries = geom[0]
i.save()

我遇到了这个错误: TypeError: Cannot set School SpatialProxy (POLYGON) with value of type: <class 'django.contrib.gis.gdal.geometries.Polygon'> 我该如何将KML文件中的多边形形状保存到我的数据库中呢?我很困惑。
1个回答

3
试着使用gdal几何形状的.geos属性:
ds = DataSource('school.kml')
o = School(boundaries=ds[0][0].geom.geos)
o.save()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接