PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie erfülle ich die Einschränkung force_srid_coordinate mit GeoDjango/PostGIS?

Es hört sich so an, als ob Sie versuchen, ein neues ArchivrItem hinzuzufügen, indem Sie Folgendes tun:

item = ArchivrItem(coordinate='POINT(51.520667 -0.094833)')
item.save()

Und dies erhält aus irgendeinem Grund, bei dem ich mir nicht sicher bin, nicht die richtige Standard-SRID. Die explizite Angabe sollte jedoch funktionieren, z. B.:

from django.contrib.gis.geos import Point
item = ArchivrItem(coordinate=Point(-0.094833, 51.520667, srid=4326))
item.save()

Ich würde sagen, dass die SRID optional ist, wenn sie mit der Modelldefinition übereinstimmt, aber es schadet nicht, sie anzugeben, und Sie können sehen, ob die einfache Verwendung des Objektwegs sie trotzdem behebt. https://docs.djangoproject.com/en/dev/ref/contrib/gis/db-api/#creating-and-saving-geographic-models hat einige weitere Beispiele.

[Beachten Sie beiseite, dass POINT() X dann Y ist, dh lon dann lat, nicht lat/lon. Sie können eine SRID einfügen, wenn es sich um erweitertes WKT mit "SRID=4326;POINT(-0.094833 51.520667)"]

handelt