【问题标题】:Unable to create Polygone from GeoDjango Admin interface无法从 GeoDjango 管理界面创建多边形
【发布时间】: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


【解决方案1】:

您必须在模型中使用 GeoAdmin Admin 才能创建多边形。

admin.site.register(Poly, admin.GeoModelAdmin)
or
admin.site.register(Poly, admin.OSMGeoAdmin) # for openstreet map

如此处所述: https://gis.stackexchange.com/questions/138006/unable-to-create-polygon-using-geodjango-admin-interface

【讨论】:

    猜你喜欢
    • 2013-04-25
    • 1970-01-01
    • 2012-11-13
    • 2013-11-22
    • 2016-09-06
    • 1970-01-01
    • 2012-11-01
    • 2019-04-03
    • 2016-09-03
    相关资源
    最近更新 更多