Farklı projeksiyonlarda olabilir bir parametre olarak bir geometri olan bir işlev yazıyorum:
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;
Fonksiyonun belirli bir projeksiyonda geometriye ihtiyacı vardır (32737), ancak arayanı dönüşümü yapmakla yükümlü kılmak istemiyorum, fonksiyonun içinde ele almayı tercih ediyorum.
Soru, gerçek srid'i kontrol etmek yerine, her zaman ST_Transform'u aramak güvenli midir ? Geometri zaten hedef projeksiyondaysa bir şey yapacak mı?
Güvenli gibi göründüğü gibi bir sorgu ile kontrol, ama dokümanlar onu görmedim biri bunu onaylamak eğer harika olacak.
SELECT ST_AsEWKT(geom), ST_AsEWKT(ST_Transform(geom, 32737)) FROM table_in_32737;