PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie behandelt Postgis Koordinaten, die mit unterschiedlichen SRIDs gesendet werden?

Das Transformieren von SRS von Geometrien ist viel mehr als nur das Ändern ihrer SRID. Wenn also aus irgendeinem Grund nach einer Transformation die Koordinaten mit genau denselben Werten zurückkehren, gab es höchstwahrscheinlich überhaupt keine Transformation.

Dieses Beispiel verwendet ST_Transform um eine Geometrie von 25832 zu transformieren bis 4326 . Sehen Sie sich die Ergebnisse selbst an:

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)
  • Die Polygontransformation in Ihrer Frage ist übrigens korrekt.

Stellen Sie sicher, dass Django wirklich die von Ihnen erwähnten Werte speichert. Senden Sie einen 25832 Geometrie und überprüfen Sie direkt das SRS in der Datenbank. Wenn Sie nur mit Django prüfen, kann es sein, dass es die Koordinaten in den Anfragen wieder zurücktransformiert, was erklären könnte, dass Sie keinen Unterschied sehen.

Zu deiner Frage:

WGS84 ist das weltweit am häufigsten verwendete SRS, also würde ich eher ja sagen, aber es hängt alles von Ihrem Anwendungsfall ab. Wenn Sie sich nicht sicher sind, welche SRS Sie verwenden sollen, kann dies darauf hindeuten, dass Ihr Anwendungsfall keine Einschränkung auferlegt. Bleiben Sie also bei WGS84, aber denken Sie daran, dass Sie in Ihrer Anwendung nicht verschiedene SRS mischen. Übrigens:Wenn Sie versuchen, Geometrien in mehreren SRS in derselben Tabelle zu speichern, löst PostgreSQL eine Ausnahme aus;)

Weiterführende Literatur:ST_AsEWKT , WGS84