- 카테고리:
ST_TRANSFORM¶
GEOMETRY 오브젝트를 한 공간 참조 시스템(SRS) 에서 다른 참조 시스템으로 변환합니다.
이 함수를 사용하면 새 SRS(공간 참조 시스템)와 일치하도록 오브젝트의 좌표와 SRID를 변경 할 수 있습니다. 좌표를 변경하지 않고 SRID만 변경해야 하는 경우(예: SRID가 정확하지 않은 경우) ST_SETSRID 를 대신 사용하십시오.
구문¶
ST_TRANSFORM( <geometry_expression> [ , <from_srid> ] , <to_srid> );
인자¶
필수:
geometry_expression
인자는 GEOMETRY 형식이어야 합니다.
to_srid
사용할 SRS를 식별하는 공간 참조 시스템 식별자(SRID) 입니다. 이 함수는 입력 GEOMETRY 오브젝트를 이 SRS를 사용하는 새 오브젝트로 변환합니다.
선택 사항:
from_srid
입력 GEOMETRY 오브젝트의 현재 SRS를 식별하는 SRID입니다.
이 인자를 생략할 경우 이 함수는 입력 GEOMETRY 오브젝트에 지정된 SRID를 사용합니다.
반환¶
이 함수는 to_srid
로 식별되는 SRS를 사용하는 GEOMETRY 오브젝트를 반환합니다.
사용법 노트¶
SRID는 EPSG 표준 (v10.082)을 기반으로 합니다. 예를 들어, SRID 4326은 코드 4326의 권한 EPSG에 해당합니다.
입력 GEOMETRY에 올바른 SRID 세트가 있는지 확인하거나
from_srid
인자를 지정하십시오.현재 이 함수는 데이텀 그리드 파일을 지원하지 않습니다. 모든 변환은 그리드 파일 수정 없이 데이텀의 정적 매개 변수를 사용하여 수행됩니다.
geometry_expression
,from_srid
또는to_srid
가 NULL인 경우 이 함수는 NULL을 반환합니다.from_srid
또는to_srid
를 유효한 SRID로 확인할 수 없으면 오류가 발생합니다.
예¶
다음 예에서는 POINT GEOMETRY 오브젝트를 EPSG:32633(WGS 84 / UTM 영역 33N)을 EPSG:3857(웹 메르카토르)로 변환합니다.
-- Set the output format to EWKT
ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='EWKT';
SELECT
ST_TRANSFORM(
ST_GEOMFROMWKT('POINT(389866.35 5819003.03)', 32633),
3857
) AS transformed_geom;
+---------------------------------------------------------------+
| transformed_geom |
|---------------------------------------------------------------|
| SRID=3857;POINT(1489140.093765644 6892872.198680112) |
+---------------------------------------------------------------+
GEOMETRY 오브젝트에 원본 SRID가 올바르게 설정되지 않은 경우 함수의 to_srid
인자에 SRID를 지정할 수 있습니다. 예를 들어 POINT GEOMETRY 오브젝트를 EPSG:4326(WGS84)에서 EPSG:28992(아메르스포르트 / RD New)로 변환하려면 다음을 수행하십시오.
-- Set the output format to EWKT
ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='EWKT';
SELECT
ST_TRANSFORM(
ST_GEOMFROMWKT('POINT(4.500212 52.161170)'),
4326,
28992
) AS transformed_geom;
+---------------------------------------------------------------+
| transformed_geom |
|---------------------------------------------------------------|
| SRID=28992;POINT (94308.66600006013 464038.16881095537) |
+---------------------------------------------------------------+