ST_MAKELINE
ST_MAKELINE (선 만들기)
입력 객체 안의 점들을 연결하는 선을 나타내는 GEOGRAPHY 또는 GEOMETRY 객체를 구성해요.
참조: TO_GEOGRAPHY, TO_GEOMETRY
본문
구문
ST_MAKELINE( <geography_expression_1>, <geography_expression_2> )
ST_MAKELINE( <geometry_expression_1>, <geometry_expression_2> )
인자
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';
다음 예시는 두 Point를 연결하는 LineString을 구성하기 위해 ST_MAKELINE을 사용해요:
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) |
+-----------------------------+
다음 예시는 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) |
+-----------------------------------------------------------------------------+
예시의 출력이 보여주듯이, 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) |
+---------------------------------------------------------------------------------------------------+
GEOMETRY 예시
이 섹션의 예시들은 WKT 형식으로 출력을 표시해요:
ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT = 'WKT';
첫 번째 예시는 두 Point 사이에 선을 구성해요:
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) |
+-------------------------+
다음 예시는 MultiPoint 안의 점들을 Point와 연결하는 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;
+---------------------------------+
| LINE_FROM_POINT_AND_MULTIPOINT |
|---------------------------------|
| LINESTRING(1 2,3.5 4.5,6.1 7.9) |
+---------------------------------+
다음 예시는 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;
+------------------------------------------+
| LINE_FROM_LINESTRING_AND_MULTIPOINT |
|------------------------------------------|
| LINESTRING(1 2,10.1 5.5,3.5 4.5,6.1 7.9) |
+------------------------------------------+
더 알아보기
- Geospatial functions — 지리 공간 함수 모음
- TO_GEOGRAPHY — GEOGRAPHY 변환
- TO_GEOMETRY — GEOMETRY 변환