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

Как postgis третира координатите, изпратени с различен SRID

Трансформирането на SRS на геометрии е много повече от просто промяна на техния SRID. Така че, ако по някаква причина след трансформация координатите се върнат с точно същите стойности, най-вероятно изобщо не е имало трансформация.

Този пример използва ST_Transform за трансформиране на геометрия от 25832 до 4326 . Вижте сами резултатите:

WITH j (geom) AS (
 VALUES('SRID=25832;POINT (11.061 49.463)'::geometry))
SELECT ST_AsEWKT(geom),ST_AsEWKT(ST_Transform(geom,4326)) FROM j;

 

       st_asewkt            |                      st_asewkt                       
---------------------------------+------------------------------------------------------
 SRID=25832;POINT(11.061 49.463) | SRID=4326;POINT(4.511355210946569 0.000446125446657)
(1 Zeile)
  • Трансформацията на многоъгълника във вашия въпрос е между другото правилна.

Уверете се, че django наистина съхранява стойностите, които споменахте. Изпратете 25832 геометрия и директно проверете SRS в базата данни. Ако проверявате само с помощта на django, може да се окаже, че то трансформира отново координатите обратно в заявките, което може да обясни, че не виждате никаква разлика.

На вашия въпрос:

WGS84 е най-използваният SRS в световен мащаб, така че съм склонен да кажа да, но всичко зависи от вашия случай на употреба. Ако не сте сигурни кой SRS да използвате, това може да означава, че вашият случай на използване не му налага никакви ограничения. Така че, придържайте се към WGS84, но имайте предвид, че не смесвате различни SRS във вашето приложение. Btw:ако се опитате да съхраните геометрии в множество SRS в една и съща таблица, PostgreSQL ще предизвика изключение;)

Допълнителна информация:ST_AsEWKT , WGS84



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да pg_restore

  2. PostgreSQL получава и освобождава LOCK вътре в съхранената функция

  3. Общ тригер за ограничаване на вмъкванията въз основа на броя

  4. psycopg2 + pgbouncer. Асинхронен режим с грешка в gevent

  5. SQL команда за спиране на задание в pgAdmin 4