PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да задоволя ограничението enforce_srid_coordinate с GeoDjango/PostGIS?

Изглежда, че се опитвате да добавите нов ArchivrItem, като направите следното:

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

И това не получава правилния SRID по подразбиране по някаква причина, за която не съм сигурен. Изричното му указване обаче трябва да работи, напр.:

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

Бих казал, че srid не е задължителен, ако ще съответства на дефиницията на модела, но няма да е лошо да го посочите и можете да видите дали простото използване на обектния начин го коригира така или иначе. https://docs.djangoproject.com/en/dev/ref/contrib/gis/db-api/#creating-and-saving-geographic-models има още няколко примера.

[Освен това имайте предвид, че POINT() е X, след това Y, т.е. дължина след това ширина, а не ширина/дължина. Можете да поставите SRID, ако е разширен WKT с "SRID=4326;POINT(-0.094833 51.520667)"]



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rails - как да съхранявате големи числа като 100000076685963

  2. Тествайте за нула във функция с различни параметри

  3. Sequelize upsert() никога не актуализира и само вмъква

  4. Docker - приложението Rails не може да се свърже със свързания контейнер на Postgres (изглежда не работи)

  5. Преместване на клъстер от данни postgresql