PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come posso soddisfare il vincolo di force_srid_coordinate con GeoDjango/PostGIS?

Sembra che tu stia cercando di aggiungere un nuovo ArchivrItem in questo modo:

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

E questo non sta ottenendo il giusto SRID predefinito per qualche motivo di cui non sono sicuro. Tuttavia, specificarlo esplicitamente dovrebbe funzionare, ad esempio:

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

Direi che lo srid è facoltativo se corrisponde alla definizione del modello, ma non è dannoso specificarlo e puoi vedere se semplicemente usando il modo in cui l'oggetto lo risolve comunque. https://docs.djangoproject.com/en/dev/ref/contrib/gis/db-api/#creating-and-saving-geographic-models ha altri esempi.

[A parte, nota che POINT() è X poi Y, cioè lon quindi lat, non lat/lon. Puoi inserire un SRID se è WKT esteso con "SRID=4326;POINT(-0.094833 51.520667)"]