ST_LENGTH
ST_LENGTH
ST_LENGTH는 GEOGRAPHY 객체 안의 LineString들의 대원(great circle) 길이, 또는 GEOMETRY 객체 안의 LineString들의 유클리드 길이를 반환하는 지리 공간 함수예요.
본문
카테고리: 지리 공간 함수
구문 (Syntax)
ST_LENGTH( <geography_or_geometry_expression> )
인자 (Arguments)
<geography_or_geometry_expression> — 인자는 GEOGRAPHY 또는 GEOMETRY 타입이어야 해요.
반환값 (Returns)
길이를 나타내는 REAL 값을 반환해요:
- GEOGRAPHY 입력 값의 경우 길이는 미터 단위예요.
- GEOMETRY 입력 값의 경우 길이는 입력 좌표를 정의할 때 사용한 것과 같은 단위로 계산돼요.
사용 시 유의사항 (Usage notes)
geography_or_geometry_expression이 linestring을 포함하는 LineString, MultiLineString, GeometryCollection이 아니라면 ST_LENGTH는 0을 반환해요.geography_or_geometry_expression이 GeometryCollection이라면 ST_LENGTH는 컬렉션 안 linestring들의 길이 합을 반환해요.- 폴리곤의 둘레 길이를 구하려면 대신 ST_PERIMETER 함수를 사용해요.
예시 (Examples)
GEOGRAPHY 예시
적도에서 1도 호(arc)의 미터 단위 길이를 보여줘요:
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 |
+---------------------------------------------------------+
GEOMETRY 예시
다음 예시는 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)) |
+--------------+--------------------------------+