Categorias:

Funções geoespaciais, Funções de conversão

TO_GEOMETRY

Analisa uma entrada e retorna um valor do tipo GEOMETRY.

Consulte também:

TRY_TO_GEOMETRY, ST_GEOMETRYFROMWKB, ST_GEOMETRYFROMWKT

Sintaxe

Use uma das seguintes opções:

TO_GEOMETRY( <varchar_expression> [ , <srid> ] [ , <allow_invalid> ] )

TO_GEOMETRY( <binary_expression> [ , <srid> ] [ , <allow_invalid> ] )

TO_GEOMETRY( <variant_expression> [ , <srid> ] [ , <allow_invalid> ] )
Copy

Argumentos

Obrigatório:

varchar_expression

O argumento deve ser uma expressão de cadeia de caracteres que represente um objeto geométrico válido em um dos seguintes formatos:

  • WKT (texto bem conhecido).

  • WKB (binário bem conhecido) em formato hexadecimal (sem um 0x na frente).

  • EWKT (texto bem conhecido estendido).

  • EWKB (binário bem conhecido estendido) em formato hexadecimal (sem um 0x na frente).

  • GeoJSON.

binary_expression

O argumento deve ser uma expressão binária no formato WKB ou EWKB.

variant_expression

O argumento deve ser um formato OBJECT no formato GeoJSON.

Opcional:

srid

O valor inteiro do SRID a ser usado.

allow_invalid

Se TRUE, especifica que a função deve retornar um objeto GEOGRAPHY ou GEOMETRY, mesmo quando a forma de entrada for inválida e não puder ser reparada. Para obter mais detalhes, consulte Especificação de como as formas geoespaciais inválidas são tratadas.

Retornos

A função retorna um valor do tipo GEOMETRY.

Notas de uso

  • Emite um erro se a entrada não puder ser analisada como um dos formatos suportados (WKT, WKB, EWKT, EWKB, GeoJSON).

  • Para as entradas GeoJSON, WKT e WKB, se o argumento srid não for especificado, o objeto GEOMETRY resultante terá SRID definido como 0.

  • Para criar um objeto GEOMETRY a partir da entrada de WKT ou EWKT, você também pode usar ST_GEOMETRYFROMWKT.

  • Para criar um objeto GEOMETRY a partir da entrada de WKB ou EWKB, você também pode usar ST_GEOMETRYFROMWKB.

Exemplos

O exemplo a seguir mostra como usar a função TO_GEOMETRY para converter um objeto representado em WKT em um objeto GEOMETRY. O exemplo não especifica o argumento srid e o SRID não é especificado na representação de entrada do objeto, portanto, o SRID é definido como 0.

ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='EWKT';

SELECT TO_GEOMETRY('POINT(1820.12 890.56)');
Copy
+--------------------------------------+
| TO_GEOMETRY('POINT(1820.12 890.56)') |
|--------------------------------------|
| SRID=0;POINT(1820.12 890.56)         |
+--------------------------------------+

O exemplo a seguir converte um objeto representado em EWKT em um objeto GEOMETRY. A entrada EKWT especifica o SRID a ser usado:

ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='EWKT';

SELECT TO_GEOMETRY('SRID=4326;POINT(1820.12 890.56)');
Copy
+------------------------------------------------+
| TO_GEOMETRY('SRID=4326;POINT(1820.12 890.56)') |
|------------------------------------------------|
| SRID=4326;POINT(1820.12 890.56)                |
+------------------------------------------------+

O exemplo a seguir demonstra como especificar o SRID como argumento de entrada srid:

ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='EWKT';

SELECT TO_GEOMETRY('POINT(1820.12 890.56)', 4326);
Copy
+--------------------------------------------+
| TO_GEOMETRY('POINT(1820.12 890.56)', 4326) |
|--------------------------------------------|
| SRID=4326;POINT(1820.12 890.56)            |
+--------------------------------------------+

O exemplo a seguir retorna o objeto GEOMETRY para um objeto geoespacial com coordenada Z descrito no formato EWKT:

ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='EWKT';

SELECT TO_GEOMETRY('SRID=32633;POINTZ(389866.35 5819003.03 30)');
Copy
+-----------------------------------------------------------+
| TO_GEOMETRY('SRID=32633;POINTZ(389866.35 5819003.03 30)') |
|-----------------------------------------------------------|
| SRID=32633;POINTZ(389866.35 5819003.03 30)                |
+-----------------------------------------------------------+