- Categorias:
ST_LENGTH¶
Retorna o comprimento geodésico do(s) LineString(s) em um objeto GEOGRAPHY ou o comprimento euclidiano do(s) LineString(s) em um objeto GEOMETRY.
Sintaxe¶
ST_LENGTH( <geography_or_geometry_expression> )
Argumentos¶
geography_or_geometry_expression
O argumento deve ser do tipo GEOGRAPHY ou GEOMETRY.
Retornos¶
Retorna um valor REAL, que representa o comprimento:
Para valores de entrada GEOGRAPHY, o comprimento é em metros.
Para valores de entrada GEOMETRY, o comprimento é computado com as mesmas unidades usadas para definir as coordenadas de entrada.
Notas de uso¶
Se
geography_or_geometry_expression
não for um LineString, MultiLineString ou GeometryCollection que contenha linestrings, ST_LENGTH retorna 0.Se
geography_or_geometry_expression
for um GeometryCollection, ST_LENGTH devolverá a soma dos comprimentos de linestrings da coleção.Se você quiser o comprimento do perímetro de um polígono, use a função ST_PERIMETER em seu lugar.
Exemplos¶
Exemplos GEOGRAPHY¶
Isto mostra o comprimento em metros de um grau de arco no equador:
SELECT ST_LENGTH(TO_GEOGRAPHY('LINESTRING(0.0 0.0, 1.0 0.0)')); +---------------------------------------------------------+ | ST_LENGTH(TO_GEOGRAPHY('LINESTRING(0.0 0.0, 1.0 0.0)')) | |---------------------------------------------------------| | 111195.101177484 | +---------------------------------------------------------+
Exemplos GEOMETRY¶
Os exemplos a seguir demonstram como utilizar a função ST_LENGTH.
SELECT ST_LENGTH(g), ST_ASWKT(g) FROM (SELECT TO_GEOMETRY(column1) AS g FROM VALUES ('POINT(1 1)'), ('LINESTRING(0 0, 1 1)'), ('POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))'));+--------------+--------------------------------+ | ST_LENGTH(G) | ST_ASWKT(G) | |--------------+--------------------------------| | 0 | POINT(1 1) | | 1.414213562 | LINESTRING(0 0,1 1) | | 0 | POLYGON((0 0,0 1,1 1,1 0,0 0)) | +--------------+--------------------------------+