sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur behandlar postgis koordinater som skickas med olika SRID

Att transformera SRS för geometrier är mycket mer än att bara ändra deras SRID. Så om koordinaterna av någon anledning efter en transformation återvänder med exakt samma värden, har det troligen inte skett någon transformation alls.

Det här exemplet använder ST_Transform för att transformera en geometri från 25832 till 4326 . Se resultatet själv:

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)
  • Polygontransformationen i din fråga är btw korrekt.

Se till att django verkligen lagrar de värden du nämnde. Skicka en 25832 geometri och direkt kontrollera SRS i databasen. Om du bara kontrollerar med django kan det vara så att det omvandlar koordinaterna tillbaka igen i förfrågningarna, vilket kan förklara att du inte ser någon skillnad.

Till din fråga:

WGS84 är den mest använda SRS i världen, så jag brukar säga ja, men allt beror på ditt användningsfall. Om du är osäker på vilket SRS du ska använda, kan det tyda på att ditt användningsfall inte innebär några begränsningar för det. Så, håll dig till WGS84 men tänk på att du inte blandar olika SRS i din applikation. Btw:om du försöker lagra geometrier i flera SRS i samma tabell kommer PostgreSQL att skapa ett undantag;)

Mer läsning:ST_AsEWKT , WGS84



  1. Uppdatera alla rader i en kolumn till nytt värde

  2. R:[unixODBC][Driver Manager]Kan inte öppna lib 'SQL Server':filen hittades inte

  3. Databas - Designa en evenemangstabell

  4. mysql_num_rows():det angivna argumentet är inte en giltig MySQL-resultatresurs