이미 대상 srid에있는 형상에서 ST_Transform을 호출 하시겠습니까?


11

다른 투영에있을 수있는 매개 변수로 지오메트리가있는 함수를 작성 중입니다.

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;

답변:


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.