我正在使用GeoDjango来显示一个表单,用户可以在该表单中选择地图上的某个区域并为其命名。
我有以下型号
import django.contrib.gis.db.models as models
class Area(models.Model):
name = models.CharField(max_length=25)
area_target = models.PolygonField(default='POLYGON EMPTY')
这个表格
from django.contrib.gis import forms
class AreaForm(forms.Form):
name = forms.CharField(max_length=160)
area_target = forms.PolygonField(srid=4326, required=False, widget=forms.OSMWidget(attrs={'map_width': 600, 'map_height': 500}))
表单显示正确,我可以使用地图窗口小部件选择一个区域,但是当我提交表单时收到以下错误消息:
GEOS_ERROR:ParseException:预期' Z',' M',' ZM' EMPTY'或者'(' 但遇到了:')'
GEOS_ERROR:ParseException:预期' Z',' M',' ZM' EMPTY'或者'(' 但遇到了:')'
从值' SRID = 900913; POLYGON()'创建几何体时出错(错误 遇到检查从GEOS C函数返回的几何 " GEOSWKTReader_read_r"。)
正如您在调试输出中看到的那样,多边形的边没有值。
我正在使用Django 1.9.4,一个带postgis扩展的postgres 9.5.1.0 DB和几何后端的geos 3.5。
有人可以告诉我什么是错的吗?
答案 0 :(得分:1)
POLYGON(())
无效WKT,并会抛出ParseException,如图所示。
尝试POLYGON EMPTY
创建一个空的多边形几何体。
我不熟悉GeoDjango,但也许NULL / None也是一个选项。