GeoDjango Polygon Field ParseException

时间:2016-05-09 10:57:25

标签: django gis openlayers openstreetmap geodjango

我正在使用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"。)

这是绘制多边形的方式: Polygon drawn with OSM Widget

正如您在调试输出中看到的那样,多边形的边没有值。

我正在使用Django 1.9.4,一个带postgis扩展的postgres 9.5.1.0 DB和几何后端的geos 3.5。

有人可以告诉我什么是错的吗?

1 个答案:

答案 0 :(得分:1)

POLYGON(())无效WKT,并会抛出ParseException,如图所示。

尝试POLYGON EMPTY创建一个空的多边形几何体。

我不熟悉GeoDjango,但也许NULL / None也是一个选项。