sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur uppfyller jag enforce_srid_coordinate-begränsningen med GeoDjango/PostGIS?

Det låter som att du försöker lägga till ett nytt ArchivrItem genom att göra så här:

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

Och detta får inte rätt standard-SRID av någon anledning som jag inte är säker på. Att ange det explicit borde dock fungera, t.ex.:

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

Jag skulle säga att srid är valfritt om det kommer att matcha modelldefinitionen, men det skadar inte att specificera det, och du kan se om att bara använda objektsättet fixar det ändå. https://docs.djangoproject.com/en/dev/ref/contrib/gis/db-api/#creating-and-saving-geographic-models har några fler exempel.

[Bortsett, notera att POINT() är X sedan Y, dvs lon sedan lat, inte lat/lon. Du kan lägga in ett SRID om det är utökat WKT med "SRID=4326;POINT(-0.094833 51.520667)"]



  1. SQL Auto Increment flera gånger i samma tabell

  2. Kan inte komma åt tillfälliga tabeller från en funktion

  3. Hur man förbättrar ordning efter prestanda med joins i mysql

  4. mysqldump-problem med återställningsfel:'Vänligen KASSA tabellutrymmet före IMPORT'