- Categorias:
ST_TRANSFORM¶
Converte um objeto GEOMETRY de um sistema de referência espacial (SRS) em outro.
Use esta função para alterar o SRID e as coordenadas do objeto para corresponder ao novo SRS (sistema de referência espacial). Se você precisar apenas alterar o SRID sem alterar as coordenadas (por exemplo, se o SRID estiver incorreto), use ST_SETSRID.
Sintaxe¶
ST_TRANSFORM( <geometry_expression> [ , <from_srid> ] , <to_srid> );
Argumentos¶
Obrigatório:
geometry_expression
O argumento deve ser do tipo GEOMETRY.
to_srid
O identificador do sistema de referência espacial (SRID) que identifica o SRS a ser usado. A função transforma o objeto de entrada GEOMETRY para um novo objeto que usa este SRS.
Opcional:
from_srid
O SRID identificando o SRS atual do objeto de entrada GEOMETRY.
Se este argumento for omitido, a função usará o SRID especificado no objeto de entrada GEOMETRY.
Retornos¶
A função retorna um GEOMETRY objeto que usa o SRS identificado por to_srid
.
Notas de uso¶
SRIDs são baseados no padrão EPSG (v10.082). Por exemplo, o SRID 4326 corresponde ao EPSG de autoridade com o código 4326.
Certifique-se de que a entrada GEOMETRY tenha o SRID correto definido ou que você especifique o argumento
from_srid
.Atualmente, a função não suporta arquivos de grade de referência. Todas as transformações são executadas usando os parâmetros estáticos do datum sem nenhuma correção de arquivo de grade.
Se
geometry_expression
,from_srid
outo_srid
forem NULL, esta função retornará NULL.Se
from_srid
outo_srid
não pode ser resolvido para um SRID válido, ocorrerá um erro.
Exemplos¶
O exemplo a seguir transforma um objeto POINT GEOMETRY de EPSG:32633 (WGS 84 / zona UTM 33N) em EPSG:3857 (Web Mercator).
-- 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) |
+---------------------------------------------------------------+
Se o SRID de origem não estiver configurado corretamente no objeto GEOMETRY, você poderá especificar o SRID no argumento da função to_srid
. Por exemplo, para transformar um objeto POINT GEOMETRY de EPSG:4326 (WGS84) em EPSG:28992 (Amersfoort / RD novo):
-- 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) |
+---------------------------------------------------------------+