A função ST_MAKELINE cria um objeto geográfico LINESTRING a partir de pontos extremos especificados.
Sintaxe
A função ST_MAKELINE tem duas assinaturas. Selecione a que corresponde ao seu caso de uso.
-
Assinatura 1: Crie um objeto geográfico LINESTRING a partir de dois pontos extremos.
GEOGRAPHY ST_MAKELINE(GEOGRAPHY <point1>, GEOGRAPHY <point2>) -
Assinatura 2: Crie um objeto geográfico LINESTRING a partir de um ARRAY com um ou mais pontos extremos.
GEOGRAPHY ST_MAKELINE(ARRAY<GEOGRAPHY> <points>)
Parâmetros
point1, point2: Obrigatório. Um objeto geográfico POINT. Use as funções ST_GEOGPOINT, ST_GEOGFROMWKB ou ST_GEOGFROMTEXT para criar esses objetos.
points: Obrigatório. Um ARRAY de objetos geográficos POINT. O ARRAY deve conter pelo menos um elemento. Use as funções ST_GEOGPOINT, ST_GEOGFROMWKB ou ST_GEOGFROMTEXT para criar esses objetos.
Valor retornado
Retorna um objeto geográfico LINESTRING. Aplicam-se as seguintes regras:
Retorna NULL se qualquer parâmetro GEOGRAPHY de entrada for NULL ou se o ARRAY de entrada (ou qualquer um de seus elementos) for NULL.
Se a entrada consistir em dois pontos idênticos ou em um ARRAY com um único ponto, o resultado degenerará para um objeto geográfico POINT.
As limitações de precisão da S2 Geography Library podem causar pequenas discrepâncias entre a entrada e a saída.
Exemplos
-
Exemplo 1: Criar um objeto geográfico LINESTRING a partir de dois pontos extremos.
-- Provide two different endpoints to create a LINESTRING. SELECT ST_MAKELINE(ST_GEOGPOINT(270, 0), ST_GEOGPOINT(1, 1)); -- Result: +-------------------------+ | _c0 | +-------------------------+ | LINESTRING (-90 0, 1 1) | +-------------------------+ -- Provide two identical endpoints. The result degenerates to a POINT. SELECT ST_MAKELINE(ST_GEOGPOINT(1, 1), ST_GEOGPOINT(1, 1)); -- Result: +-------------+ | _c0 | +-------------+ | POINT (1 1) | +-------------+ -
Exemplo 2: Criar um objeto geográfico LINESTRING a partir de um ARRAY com um ou mais pontos extremos.
-- Provide an ARRAY of points to create a LINESTRING. SELECT ST_MAKELINE(ARRAY(ST_GEOGPOINT(0, 0), ST_GEOGPOINT(1, 1), ST_GEOGPOINT(2, 2))); -- Result: +----------------------------+ | _c0 | +----------------------------+ | LINESTRING (0 0, 1 1, 2 2) | +----------------------------+ -- Provide an ARRAY with a single element. The result degenerates to a POINT. SELECT ST_MAKELINE(ARRAY(ST_GEOGPOINT(0, 0))); -- Result: +-------------+ | _c0 | +-------------+ | POINT (0 0) | +-------------+