Mehr

Polygon kann nicht mit der Geodjango-Admin-Oberfläche erstellt werden


Ich bin neu bei GeoDjango. Ich habe eine Admin-Oberfläche für mein Modell erstellt. Es lädt richtig. Ich bin auch in der Lage, das Polygon auf der Karte zu zeichnen (auf der Clientseite), aber wenn ich speichere, wird mir eine ungültige Eingabe mitgeteilt und ein Fehler in der Konsole ausgegeben.

Modell

aus django.contrib.gis Modelle importieren Poly(models.Model): poly_gon = models.Polygone() objects = models.GeoManager()

Admin-Schnittstelle

von django.contrib.gis import admin from myapp.models import Poly admin.site.register(Poly)

Fehler auf Client-Seite (Auf dem Polygonfeld in roter Farbe)

"Ungültiger Geometriewert."

Fehler auf der Serverseite (im Terminal, nachdem der Server mit dem Befehl runserver gestartet wurde)

Fehler auf der Serverseite: GEOS_ERROR: ParseException: 'Z', 'M', 'ZM', 'EMPTY' oder '(' aber gefunden: ')' erwartet GEOS_ERROR: ParseException: 'Z', 'M', 'ZM . erwartet ', 'EMPTY' oder '(' aber aufgetreten : ')' Fehler beim Erstellen der Geometrie aus dem Wert 'SRID=4326;POLYGON()' (Fehler beim Überprüfen der Geometrie, die von der GEOS C-Funktion "GEOSWKTReader_read_r" zurückgegeben wurde.)

Ich konnte Daten aus der Shell in mein Poly eingeben, indem ich folgenden Code verwendete.

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.89135645852043, -87.64171600341797 41.89288988217029, -87.63690948486328 41.89135645852043, -87.64171600341797 -87.6705551147461 41.89135645852043))""")) p.save()

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

oder

admin.site.register(Poly, admin.OSMGeoAdmin) # für Openstreet-Karte