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

In che modo Postgis tratta le coordinate inviate con SRID diversi

Trasformare l'SRS delle geometrie è molto più che cambiare il loro SRID. Quindi, se per qualche motivo dopo una trasformazione le coordinate ritornano esattamente con gli stessi valori, molto probabilmente non c'è stata alcuna trasformazione.

Questo esempio utilizza ST_Transform per trasformare una geometria da 25832 a 4326 . Guarda tu stesso i risultati:

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)
  • La trasformazione Polygon nella tua domanda è tra l'altro corretta.

Assicurati che django stia davvero memorizzando i valori che hai menzionato. Invia un 25832 geometria e controllare direttamente l'SRS nel database. Se stai solo controllando usando django, potrebbe essere che stia trasformando nuovamente le coordinate nelle richieste, il che potrebbe spiegare che non vedi alcuna differenza.

Alla tua domanda:

WGS84 è l'SRS più utilizzato al mondo, quindi tenderei a dire di sì, ma tutto dipende dal tuo caso d'uso. Se non sei sicuro di quale SRS usare, potrebbe indicare che il tuo caso d'uso non gli impone alcun vincolo. Quindi, attieniti a WGS84 ma tieni presente che non mescoli SRS diversi nella tua applicazione. A proposito:se provi a memorizzare geometrie in più SRS nella stessa tabella, PostgreSQL solleverà un'eccezione;)

Ulteriori letture:ST_AsEWKT , WGS84