[GIS] Unable to create Polygon using Geodjango admin interface

djangogeodjangopostgis-2.0

I am new to GeoDjango. I have created Admin interface for my Model. It loads correctly. I am also able to draw the Polygon on map(At client side) but when I save It tells me Invalid input and throws some error in console.

Model

from django.contrib.gis import models


Poly(models.Model):
    poly_gon = models.Polygone()
    objects = models.GeoManager()

Admin interface

from django.contrib.gis import admin
from myapp.models import Poly


admin.site.register(Poly)

Error at Client side(On the polygon field in red colour)

"Invalid geometry value."

Error at server side(in terminal, after starting server with runserver command)

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".)

I was able to enter data to my Poly from shell by following code.

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()

Best Answer

admin.site.register(Poly, admin.GeoModelAdmin)

or

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

Related Question