【发布时间】:2015-03-07 06:40:33
【问题描述】:
我是 GeoDjango 的新手。我为我的模型创建了管理界面。它正确加载。我也可以在地图上绘制多边形(在客户端),但是当我保存时它告诉我输入无效并在控制台中抛出一些错误。
型号
from django.contrib.gis import models
Poly(models.Model):
poly_gon = models.Polygone()
objects = models.GeoManager()
管理界面
from django.contrib.gis import admin
from myapp.models import Poly
admin.site.register(Poly)
客户端错误(在红色多边形字段上)
“无效的几何值。”
服务器端出错(在终端中,使用 runserver 命令启动服务器后)
Error in server side: GEOS_ERROR: ParseException: Expected 'Z', 'M', 'ZM', 'EMPTY' or '(' but encountered : ')'
GEOS_ERROR: ParseException: Expected 'Z', 'M', 'ZM', 'EMPTY' or '(' but encountered : ')'
Error creating geometry from value 'SRID=4326;POLYGON()' (Error encountered checking Geometry returned from GEOS C function "GEOSWKTReader_read_r".)
我可以通过以下代码从 shell 向我的 Poly 输入数据。
from django.contrib.gis.geos import GEOSGeometry
from myapp.models import Poly
p = Poly(poly_gon=GEOSGeometry("""POLYGON((-87.6705551147461 41.89135645852043, -87.64171600341797 41.89288988217029, -87.63690948486328 41.880110226947934, -87.66368865966797 41.87806524488436, -87.68016815185547 41.887267148816726, -87.6705551147461 41.89135645852043))"""))
p.save()
【问题讨论】:
-
POLYGON()无效,因此应该失败。如果你想要一个空多边形,正确的 WKT 是POLYGON EMPTY
标签: django gis postgis geodjango