카테고리:

지리 공간 함수

ST_MAKELINE

입력 오브젝트의 점을 연결하는 선을 나타내는 GEOGRAPHY 또는 GEOMETRY 오브젝트를 생성합니다.

참고 항목:

TO_GEOGRAPHY , TO_GEOMETRY

구문

ST_MAKELINE( <geography_expression_1> , <geography_expression_2> )

ST_MAKELINE( <geometry_expression_1> , <geometry_expression_2> )
Copy

인자

geography_expression_1

연결할 점을 포함하는 GEOGRAPHY 오브젝트입니다. 이 오브젝트는 Point, MultiPoint, 또는 LineString이어야 합니다.

geography_expression_2

연결할 점을 포함하는 GEOGRAPHY 오브젝트입니다. 이 오브젝트는 Point, MultiPoint, 또는 LineString이어야 합니다.

geometry_expression_1

연결할 점을 포함하는 GEOMETRY 오브젝트입니다. 이 오브젝트는 Point, MultiPoint, 또는 LineString이어야 합니다.

geometry_expression_2

연결할 점을 포함하는 GEOMETRY 오브젝트입니다. 이 오브젝트는 Point, MultiPoint, 또는 LineString이어야 합니다.

반환

함수는 GEOGRAPHY 또는 GEOMETRY 형식의 값을 반환합니다. 값은 입력 GEOGRAPHY 또는 GEOMETRY 오브젝트에 의해 지정된 모든 점을 연결하는 LineString입니다.

사용법 노트

  • 입력 GEOGRAPHY 오브젝트가 여러 점을 포함하는 경우, ST_MAKELINE은 오브젝트에 지정된 모든 점을 연결합니다.

  • ST_MAKELINE은 입력에 지정된 순서대로 점을 연결합니다.

  • GEOMETRY 오브젝트의 경우 두 입력 GEOMETRY 오브젝트의 SRID가 서로 다른 경우 함수에서 오류를 보고합니다.

  • GEOMETRY 오브젝트의 경우 반환된 GEOMETRY 오브젝트는 입력과 동일한 SRID를 가집니다.

GEOGRAPHY 예

이 섹션의 예는 WKT 형식으로 출력을 표시합니다.

alter session set GEOGRAPHY_OUTPUT_FORMAT='WKT';
Copy

다음 예는 ST_MAKELINE을 사용하여, 두 점을 연결하는 LineString을 생성합니다.

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) |
+-----------------------------+
Copy

다음 예는 Point를 MultiPoint의 점과 연결하는 LineString을 생성합니다.

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) |
+-----------------------------------------------------------------------------+
Copy

예의 출력에서 보이듯이 ST_MAKELINE은 입력에 지정된 순서대로 점을 연결합니다.

다음 예는 MultiPoint의 점을 다른 LineString과 연결하는 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) |
+---------------------------------------------------------------------------------------------------+
Copy

GEOMETRY 예

이 섹션의 예는 WKT 형식으로 출력을 표시합니다.

ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='WKT';
Copy

첫 번째 예제에서는 두 점 사이에 선을 생성합니다.

SELECT ST_MAKELINE(
  TO_GEOMETRY('POINT(1.0 2.0)'),
  TO_GEOMETRY('POINT(3.5 4.5)')) AS line_between_two_points;
Copy
+-------------------------+
| LINE_BETWEEN_TWO_POINTS |
|-------------------------|
| LINESTRING(1 2,3.5 4.5) |
+-------------------------+
Copy

다음 예제에서는 MultiPoint의 점을 한 점과 연결하는 LineString을 만드는 방법을 보여줍니다.

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;
Copy
+---------------------------------+
| LINE_FROM_POINT_AND_MULTIPOINT  |
|---------------------------------|
| LINESTRING(1 2,3.5 4.5,6.1 7.9) |
+---------------------------------+
Copy

다음 예는 MultiPoint의 점을 다른 LineString과 연결하는 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;
Copy
+------------------------------------------+
| LINE_FROM_LINESTRING_AND_MULTIPOINT      |
|------------------------------------------|
| LINESTRING(1 2,10.1 5.5,3.5 4.5,6.1 7.9) |
+------------------------------------------+
Copy