Saya sedang menulis fungsi yang memiliki geometri sebagai parameter yang dapat di proyeksi berbeda:
CREATE OR REPLACE FUNCTION foo(in geometry) RETURNS boolean AS $$
DECLARE
transformed_geom geometry := in;
BEGIN
IF ST_SRID(transformed_geom) != 32737 THEN
transformed_geom := ST_Transform(transformed_geom, 32737);
END IF;
[ ... ]
END;
$$ language plpgsql;
Fungsi ini membutuhkan geometri dalam proyeksi tertentu (32737) tetapi saya tidak ingin mewajibkan pemanggil untuk melakukan transformasi, saya lebih suka menanganinya di dalam fungsi.
Pertanyaannya adalah, alih-alih memeriksa srid yang sebenarnya, apakah aman untuk selalu memanggil ST_Transformasi ? Akan melakukan apa pun jika geometri sudah dalam proyeksi target?
Saya memeriksa dengan query seperti ini bahwa tampaknya aman, tetapi akan luar biasa jika seseorang dapat mengkonfirmasi ini karena saya tidak melihatnya di dokumen.
SELECT ST_AsEWKT(geom), ST_AsEWKT(ST_Transform(geom, 32737)) FROM table_in_32737;