【发布时间】:2016-09-03 23:38:45
【问题描述】:
我正在使用 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 扩展和 geos 3.5 作为几何后端的 postgres 9.5.1.0 数据库。
谁能告诉我怎么了?
【问题讨论】:
-
你还没有展示你是如何创建一个 Area 对象的。
-
区域对象应该通过绘制多边形来创建。我添加了一个屏幕截图...
-
请打开 javascript 控制台并显示是否出现任何错误
-
我在 javascript 控制台中没有收到任何错误。
-
我觉得这是一个 OSM 问题,而不是 GeoDjango 问题。我能否建议更改其中一个标签以打开街道地图,以便引起该主题专家的注意。
标签: django gis openlayers openstreetmap geodjango