- Categorias:
ST_MAKELINE¶
Cria um objeto GEOGRAPHY ou GEOMETRY que representa uma linha que conecta os pontos nos objetos de entrada.
- Consulte também:
Sintaxe¶
ST_MAKELINE( <geography_expression_1> , <geography_expression_2> )
ST_MAKELINE( <geometry_expression_1> , <geometry_expression_2> )
Argumentos¶
geography_expression_1
Um objeto GEOGRAPHY contendo os pontos a serem conectados. Este objeto deve ser um ponto, MultiPoint ou LineString.
geography_expression_2
Um objeto GEOGRAPHY contendo os pontos a serem conectados. Este objeto deve ser um ponto, MultiPoint ou LineString.
geometry_expression_1
Um objeto GEOMETRY contendo os pontos a serem conectados. Este objeto deve ser um ponto, MultiPoint ou LineString.
geometry_expression_2
Um objeto GEOMETRY contendo os pontos a serem conectados. Este objeto deve ser um ponto, MultiPoint ou LineString.
Retornos¶
A função retorna um valor do tipo GEOGRAPHY ou GEOMETRY. O valor é um LineString que conecta todos os pontos especificados pelos objetos de entrada GEOGRAPHY ou GEOMETRY.
Notas de uso¶
Se um objeto de entrada GEOGRAPHY contém vários pontos, ST_MAKELINE conecta todos os pontos especificados no objeto.
ST_MAKELINE conecta os pontos na ordem em que são especificados na entrada.
Para objetos GEOMETRY, a função reporta um erro se os dois objetos GEOMETRY de entrada tiverem SRIDs diferentes.
Para objetos GEOMETRY, o objeto GEOMETRY retornado tem o mesmo SRID que a entrada.
Exemplos¶
Exemplos GEOGRAPHY¶
Os exemplos nesta seção mostram a saída em formato WKT:
alter session set GEOGRAPHY_OUTPUT_FORMAT='WKT';
O exemplo seguinte usa ST_MAKELINE para criar um LineString que conecta dois pontos:
SELECT ST_MAKELINE( TO_GEOGRAPHY('POINT(37.0 45.0)'), TO_GEOGRAPHY('POINT(38.5 46.5)') ) AS line_between_two_points; +-----------------------------+ | LINE_BETWEEN_TWO_POINTS | |-----------------------------| | LINESTRING(37 45,38.5 46.5) | +-----------------------------+
O exemplo a seguir cria um LineString que conecta um ponto aos pontos de um MultiPoint:
SELECT ST_MAKELINE( TO_GEOGRAPHY('POINT(-122.306067 37.55412)'), TO_GEOGRAPHY('MULTIPOINT((-122.32328 37.561801), (-122.325879 37.586852))') ) AS line_between_point_and_multipoint; +-----------------------------------------------------------------------------+ | LINE_BETWEEN_POINT_AND_MULTIPOINT | |-----------------------------------------------------------------------------| | LINESTRING(-122.306067 37.55412,-122.32328 37.561801,-122.325879 37.586852) | +-----------------------------------------------------------------------------+
Como demonstrado pela saída do exemplo, ST_MAKELINE conecta os pontos na ordem em que são especificados na entrada.
O exemplo a seguir cria um LineString que conecta os pontos de um MultiPoint com outro LineString:
SELECT ST_MAKELINE( TO_GEOGRAPHY('MULTIPOINT((-122.32328 37.561801), (-122.325879 37.586852))'), TO_GEOGRAPHY('LINESTRING(-122.306067 37.55412, -122.496691 37.495627)') ) AS line_between_multipoint_and_linestring; +---------------------------------------------------------------------------------------------------+ | LINE_BETWEEN_MULTIPOINT_AND_LINESTRING | |---------------------------------------------------------------------------------------------------| | LINESTRING(-122.32328 37.561801,-122.325879 37.586852,-122.306067 37.55412,-122.496691 37.495627) | +---------------------------------------------------------------------------------------------------+
Exemplos GEOMETRY¶
Os exemplos nesta seção mostram a saída em formato WKT:
ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='WKT';
O primeiro exemplo cria uma linha entre dois pontos:
SELECT ST_MAKELINE( TO_GEOMETRY('POINT(1.0 2.0)'), TO_GEOMETRY('POINT(3.5 4.5)')) AS line_between_two_points;+-------------------------+ | LINE_BETWEEN_TWO_POINTS | |-------------------------| | LINESTRING(1 2,3.5 4.5) | +-------------------------+
O próximo exemplo demonstra a criação de um LineString que conecta pontos em um MultiPoint com um ponto
SELECT ST_MAKELINE( TO_GEOMETRY('POINT(1.0 2.0)'), TO_GEOMETRY('MULTIPOINT(3.5 4.5, 6.1 7.9)')) AS line_from_point_and_multipoint;+---------------------------------+ | LINE_FROM_POINT_AND_MULTIPOINT | |---------------------------------| | LINESTRING(1 2,3.5 4.5,6.1 7.9) | +---------------------------------+
O exemplo a seguir cria um LineString que conecta os pontos de um MultiPoint com outro LineString:
SELECT ST_MAKELINE( TO_GEOMETRY('LINESTRING(1.0 2.0, 10.1 5.5)'), TO_GEOMETRY('MULTIPOINT(3.5 4.5, 6.1 7.9)')) AS line_from_linestring_and_multipoint;+------------------------------------------+ | LINE_FROM_LINESTRING_AND_MULTIPOINT | |------------------------------------------| | LINESTRING(1 2,10.1 5.5,3.5 4.5,6.1 7.9) | +------------------------------------------+