다른 투영에있을 수있는 매개 변수로 지오메트리가있는 함수를 작성 중입니다.
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;
이 함수에는 특정 투영 (32737)의 기하학이 필요하지만 변환을 수행하는 호출자를 강요하지 않고 함수 내부에서 처리하는 것을 선호합니다.
문제는 실제 srid를 확인하는 대신 항상 ST_Transform을 호출하는 것이 안전하다는 것입니다 . 형상이 이미 대상 투영에있는 경우 어떤 작업을 수행합니까?
나는 안전한 것으로 보인다는 것과 같은 쿼리를 확인하지만, 내가 문서에서 그것을 보지 못했을 때 누군가 이것을 확인할 수 있다면 멋질 것입니다.
SELECT ST_AsEWKT(geom), ST_AsEWKT(ST_Transform(geom, 32737)) FROM table_in_32737;