선 (Line)
1. 개요
선(Line)은 [[기하학]] 및 [[지리정보시스템(GIS)]]에서 두 개 이상의 [[점(Point)]]을 연결하여 형성되는 1차원적인 기하학적 요소로, 위치와 방향, 길이라는 속성을 가지는 객체를 의미한다.
공간 데이터 모델에서 선은 [[점(Point)]]의 연속체이자, [[면(Polygon)]]의 경계를 구성하는 기본 단위이다. 위상적 관점에서 점이 '위치'만을 나타내고 면이 '영역'을 나타낸다면, 선은 두 지점 사이의 '연결성(Connectivity)'과 '흐름'을 정의하는 핵심적인 역할을 수행한다.
2. 기하학적 특성과 정의
수학적 관점에서 선은 폭이 없고 길이만 존재하는 추상적인 개념이다. 유클리드 기하학에서는 두 점을 잇는 최단 거리인 '직선'과, 방향이 계속해서 변하는 '곡선'으로 구분하여 정의한다.
또한, 선은 네트워크 분석의 기초가 되며, 특히 가중치가 부여된 선들의 집합(그래프)에서 최단 경로를 찾기 위해 [[다익스트라 알고리즘]]과 같은 최적화 기법이 적용된다.
2.1 선의 종류 및 특징 비교
| 구분 |
정의 |
주요 특징 |
수학적 표현 방식 |
시각적 예시 |
| 직선 (Straight Line) |
두 점을 잇는 최단 거리의 선 |
곡률이 0이며 일정한 방향성을 가짐 |
일차 방정식 ($y = ax + b$) |
─── |
| 곡선 (Curve) |
방향이 일정하지 않은 선 |
곡률(Curvature)이 존재하며 변화함 |
고차 방정식 또는 매개변수 함수 |
~~~ |
| 선분 (Line Segment) |
직선의 두 끝점이 정해진 부분 |
유한한 길이를 가지며 시작점과 끝점이 명확함 |
두 정점의 좌표 집합 |
─●─ |
| 경계선 (Boundary) |
[[면(Polygon)]]을 둘러싸는 폐곡선 |
내부와 외부를 구분하는 폐쇄적 구조 |
닫힌 곡선(Closed Curve) 또는 폐곡선 방정식 |
○ |
GIS의 벡터 데이터 모델에서 선은 LineString이라는 객체로 표현된다. 이는 단순히 하나의 선이 아니라, 순서가 정해진 정점(Vertex)들의 집합으로 정의된다.
3.1 구성 요소
- 노드(Node): 선의 시작점과 끝점, 또는 선과 선이 교차하여 위상적 변화가 일어나는 지점을 의미한다.
- 정점(Vertex): 선의 형태를 정의하기 위해 꺾이는 지점에 배치되는 점이다. 정점이 많을수록 실제 지형에 가까운 정밀한 곡선 표현이 가능하다.
- 세그먼트(Segment): 인접한 두 정점 사이의 직선 구간을 의미한다. 즉, 하나의 LineString은 여러 개의 세그먼트로 구성된다.
4. 위상 관계 (Topology)
위상 관계란 기하학적 형태가 변하더라도 유지되는 객체 간의 연결성, 인접성, 포함 관계를 의미한다. 선 데이터에서 위상은 데이터의 무결성을 유지하고 네트워크 분석을 가능하게 하는 핵심 요소이다.
- 연결성(Connectivity): 어떤 노드가 어떤 선분들과 연결되어 있는지를 정의한다. 이는 도로망에서 교차로와 도로의 관계를 설정하는 데 필수적이다.
- 방향성(Directionality): 선에 흐름의 방향(From $\rightarrow$ To)을 부여하는 것이다. 일방통행 도로 등을 표현할 때 사용된다.
- 인접성(Adjacency): 두 선이 동일한 노드를 공유하거나, [[면(Polygon)]]의 경계선으로서 서로 맞닿아 있는 상태를 정의한다.
5. 선의 주요 속성과 연산
5.1 주요 측정 속성
- 길이(Length): 모든 세그먼트 길이의 합산 값이다. 투영 좌표계(Projected Coordinate System)를 사용하여 실제 거리 단위(m, km)로 계산한다.
- 방향(Bearing/Azimuth): 시작점에서 끝점까지의 방위각을 측정하여 선의 진행 방향을 결정한다.
- 곡률(Curvature): 선이 굽은 정도를 측정하며, 도로의 설계 속도나 하천의 사행도를 분석할 때 활용된다.
- 정밀도(Precision) 및 해상도(Resolution): 정점 간의 거리나 허용 오차에 의해 결정된다. 정점이 조밀할수록 해상도가 높으며, 실제 지형을 더 정밀하게 표현할 수 있다.
5.2 공간 연산
- 버퍼링(Buffering): 선을 중심으로 일정 거리만큼 영역을 확장하여 [[면(Polygon)]]으로 변환하는 연산이다. (예: 도로 주변 50m 영향권 분석)
- 단순화(Simplification): 데이터 용량을 줄이기 위해 형태를 최대한 유지하면서 불필요한 정점을 제거하는 과정이다. (예: [[더글라스-피커(Douglas-Peucker) 알고리즘]])
- 작동 원리 도식도:
원본 선(정점 다수) ───(허용 오차 $\epsilon$ 적용)──→ 단순화된 선(주요 정점만 유지)
[정점 A] ── [정점 B(제거)] ── [정점 C] $\Rightarrow$ [정점 A] ────── [정점 C]
(설명: 시작점과 끝점을 잇는 직선과 나머지 정점 사이의 수직 거리가 임계값 $\epsilon$보다 작으면 해당 정점을 제거함)
5.3 데이터 표현 예시 ([[WKT]])
[WKT]는 GIS 객체를 텍스트로 표현하는 표준 형식이다.
-- 단순한 직선 (두 점 연결)
LINESTRING (10 10, 20 20)
-- 여러 정점을 가진 꺾인 선
LINESTRING (0 0, 5 10, 10 0, 15 10, 20 0)
6. 데이터 포맷 비교
선 데이터를 저장하고 전송하는 방식은 목적에 따라 다양하다.
| 포맷 |
특징 |
장점 |
단점 |
| Shapefile (.shp) |
ESRI 표준 벡터 포맷 |
범용성이 매우 높고 대부분의 GIS 소프트웨어 지원 |
파일 크기 제한, 필드명 길이 제한 |
| GeoJSON |
JSON 기반의 텍스트 포맷 |
웹 환경에서 가독성이 좋고 API 연동이 쉬움 |
대용량 데이터 처리 시 성능 저하 |
| KML |
XML 기반의 구글 표준 포맷 |
구글 어스 등 시각화 도구와 호환성 우수 |
데이터 구조가 복잡하고 용량이 큼 |
| PostGIS |
관계형 DB 기반 공간 데이터 |
복잡한 공간 쿼리 및 대규모 데이터 관리 가능 |
DB 서버 구축 및 관리 필요 |
| GeoParquet / FlatGeobuf |
클라우드 네이티브 바이너리 포맷 |
대용량 데이터의 빠른 읽기/쓰기 및 효율적 압축 |
상대적으로 낮은 범용성 (최신 툴 중심) |
7. 실무 활용 사례 및 네트워크 분석
7.1 주요 활용 사례
- 교통망: 도로, 철도, 항공로 (최단 경로 및 소요 시간 계산)
- 수계망: 하천, 운하, 배수관 (유량 분석 및 침수 시뮬레이션)
- 인프라: 전력선, 가스관, 통신 케이블 (시설물 관리 및 장애 지점 탐색)
- 행정 경계: 시/도 경계선, 구역 구분선 (관할 구역 정의)
7.2 네트워크 분석 알고리즘
선 데이터의 위상 관계를 활용하면 효율적인 경로 탐색이 가능하다.
- [[다익스트라 알고리즘]] (Dijkstra's Algorithm): 가중치(거리, 시간 등)가 있는 그래프에서 한 지점에서 다른 모든 지점까지의 최단 경로를 찾는 알고리즘이다.
- A* 알고리즘 (A-star Algorithm): 다익스트라에 휴리스틱(Heuristic, 목적지까지의 예상 거리)을 추가하여 탐색 속도를 높인 알고리즘으로, 내비게이션 시스템의 핵심 원리이다.
- 최소 신장 트리 (MST): 모든 노드를 연결하면서 선분 길이의 합을 최소화하는 경로를 찾는 알고리즘으로, 효율적인 전력망/통신망 설계에 사용된다.
분류: 기술 / [[지리정보시스템]] / 기하학적 요소
# 선 (Line)
## 1. 개요
**선(Line)**은 [[기하학]] 및 [[지리정보시스템(GIS)]]에서 두 개 이상의 [[점(Point)]]을 연결하여 형성되는 1차원적인 기하학적 요소로, 위치와 방향, 길이라는 속성을 가지는 객체를 의미한다.
공간 데이터 모델에서 선은 [[점(Point)]]의 연속체이자, [[면(Polygon)]]의 경계를 구성하는 기본 단위이다. 위상적 관점에서 점이 '위치'만을 나타내고 면이 '영역'을 나타낸다면, 선은 두 지점 사이의 '연결성(Connectivity)'과 '흐름'을 정의하는 핵심적인 역할을 수행한다.
## 2. 기하학적 특성과 정의
수학적 관점에서 선은 폭이 없고 길이만 존재하는 추상적인 개념이다. 유클리드 기하학에서는 두 점을 잇는 최단 거리인 '직선'과, 방향이 계속해서 변하는 '곡선'으로 구분하여 정의한다.
또한, 선은 네트워크 분석의 기초가 되며, 특히 가중치가 부여된 선들의 집합(그래프)에서 최단 경로를 찾기 위해 [[다익스트라 알고리즘]]과 같은 최적화 기법이 적용된다.
### 2.1 선의 종류 및 특징 비교
| 구분 | 정의 | 주요 특징 | 수학적 표현 방식 | 시각적 예시 |
| :--- | :--- | :--- | :--- | :--- |
| **직선 (Straight Line)** | 두 점을 잇는 최단 거리의 선 | 곡률이 0이며 일정한 방향성을 가짐 | 일차 방정식 ($y = ax + b$) | `───` |
| **곡선 (Curve)** | 방향이 일정하지 않은 선 | 곡률(Curvature)이 존재하며 변화함 | 고차 방정식 또는 매개변수 함수 | `~~~` |
| **선분 (Line Segment)** | 직선의 두 끝점이 정해진 부분 | 유한한 길이를 가지며 시작점과 끝점이 명확함 | 두 정점의 좌표 집합 | `─●─` |
| **경계선 (Boundary)** | [[면(Polygon)]]을 둘러싸는 폐곡선 | 내부와 외부를 구분하는 폐쇄적 구조 | 닫힌 곡선(Closed Curve) 또는 폐곡선 방정식 | `○` |
## 3. GIS에서의 선 데이터 (LineString)
GIS의 벡터 데이터 모델에서 선은 **LineString**이라는 객체로 표현된다. 이는 단순히 하나의 선이 아니라, 순서가 정해진 정점(Vertex)들의 집합으로 정의된다.
### 3.1 구성 요소
* **노드(Node):** 선의 시작점과 끝점, 또는 선과 선이 교차하여 위상적 변화가 일어나는 지점을 의미한다.
* **정점(Vertex):** 선의 형태를 정의하기 위해 꺾이는 지점에 배치되는 점이다. 정점이 많을수록 실제 지형에 가까운 정밀한 곡선 표현이 가능하다.
* **세그먼트(Segment):** 인접한 두 정점 사이의 직선 구간을 의미한다. 즉, 하나의 LineString은 여러 개의 세그먼트로 구성된다.
## 4. 위상 관계 (Topology)
위상 관계란 기하학적 형태가 변하더라도 유지되는 객체 간의 연결성, 인접성, 포함 관계를 의미한다. 선 데이터에서 위상은 데이터의 무결성을 유지하고 네트워크 분석을 가능하게 하는 핵심 요소이다.
* **연결성(Connectivity):** 어떤 노드가 어떤 선분들과 연결되어 있는지를 정의한다. 이는 도로망에서 교차로와 도로의 관계를 설정하는 데 필수적이다.
* **방향성(Directionality):** 선에 흐름의 방향(From $\rightarrow$ To)을 부여하는 것이다. 일방통행 도로 등을 표현할 때 사용된다.
* **인접성(Adjacency):** 두 선이 동일한 노드를 공유하거나, [[면(Polygon)]]의 경계선으로서 서로 맞닿아 있는 상태를 정의한다.
## 5. 선의 주요 속성과 연산
### 5.1 주요 측정 속성
* **길이(Length):** 모든 세그먼트 길이의 합산 값이다. 투영 좌표계(Projected Coordinate System)를 사용하여 실제 거리 단위(m, km)로 계산한다.
* **방향(Bearing/Azimuth):** 시작점에서 끝점까지의 방위각을 측정하여 선의 진행 방향을 결정한다.
* **곡률(Curvature):** 선이 굽은 정도를 측정하며, 도로의 설계 속도나 하천의 사행도를 분석할 때 활용된다.
* **정밀도(Precision) 및 해상도(Resolution):** 정점 간의 거리나 허용 오차에 의해 결정된다. 정점이 조밀할수록 해상도가 높으며, 실제 지형을 더 정밀하게 표현할 수 있다.
### 5.2 공간 연산
* **버퍼링(Buffering):** 선을 중심으로 일정 거리만큼 영역을 확장하여 [[면(Polygon)]]으로 변환하는 연산이다. (예: 도로 주변 50m 영향권 분석)
* **단순화(Simplification):** 데이터 용량을 줄이기 위해 형태를 최대한 유지하면서 불필요한 정점을 제거하는 과정이다. (예: [[더글라스-피커(Douglas-Peucker) 알고리즘]])
* **작동 원리 도식도:**
`원본 선(정점 다수) ───(허용 오차 $\epsilon$ 적용)──→ 단순화된 선(주요 정점만 유지)`
`[정점 A] ── [정점 B(제거)] ── [정점 C] $\Rightarrow$ [정점 A] ────── [정점 C]`
*(설명: 시작점과 끝점을 잇는 직선과 나머지 정점 사이의 수직 거리가 임계값 $\epsilon$보다 작으면 해당 정점을 제거함)*
### 5.3 데이터 표현 예시 ([[WKT]])
[[WKT]](Well-Known Text)는 GIS 객체를 텍스트로 표현하는 표준 형식이다.
```sql
-- 단순한 직선 (두 점 연결)
LINESTRING (10 10, 20 20)
-- 여러 정점을 가진 꺾인 선
LINESTRING (0 0, 5 10, 10 0, 15 10, 20 0)
```
## 6. 데이터 포맷 비교
선 데이터를 저장하고 전송하는 방식은 목적에 따라 다양하다.
| 포맷 | 특징 | 장점 | 단점 |
| :--- | :--- | :--- | :--- |
| **Shapefile (.shp)** | ESRI 표준 벡터 포맷 | 범용성이 매우 높고 대부분의 GIS 소프트웨어 지원 | 파일 크기 제한, 필드명 길이 제한 |
| **GeoJSON** | JSON 기반의 텍스트 포맷 | 웹 환경에서 가독성이 좋고 API 연동이 쉬움 | 대용량 데이터 처리 시 성능 저하 |
| **KML** | XML 기반의 구글 표준 포맷 | 구글 어스 등 시각화 도구와 호환성 우수 | 데이터 구조가 복잡하고 용량이 큼 |
| **PostGIS** | 관계형 DB 기반 공간 데이터 | 복잡한 공간 쿼리 및 대규모 데이터 관리 가능 | DB 서버 구축 및 관리 필요 |
| **GeoParquet / FlatGeobuf** | 클라우드 네이티브 바이너리 포맷 | 대용량 데이터의 빠른 읽기/쓰기 및 효율적 압축 | 상대적으로 낮은 범용성 (최신 툴 중심) |
## 7. 실무 활용 사례 및 네트워크 분석
### 7.1 주요 활용 사례
* **교통망:** 도로, 철도, 항공로 (최단 경로 및 소요 시간 계산)
* **수계망:** 하천, 운하, 배수관 (유량 분석 및 침수 시뮬레이션)
* **인프라:** 전력선, 가스관, 통신 케이블 (시설물 관리 및 장애 지점 탐색)
* **행정 경계:** 시/도 경계선, 구역 구분선 (관할 구역 정의)
### 7.2 네트워크 분석 알고리즘
선 데이터의 위상 관계를 활용하면 효율적인 경로 탐색이 가능하다.
* **[[다익스트라 알고리즘]] (Dijkstra's Algorithm):** 가중치(거리, 시간 등)가 있는 그래프에서 한 지점에서 다른 모든 지점까지의 최단 경로를 찾는 알고리즘이다.
* **A* 알고리즘 (A-star Algorithm):** 다익스트라에 휴리스틱(Heuristic, 목적지까지의 예상 거리)을 추가하여 탐색 속도를 높인 알고리즘으로, 내비게이션 시스템의 핵심 원리이다.
* **최소 신장 트리 (MST):** 모든 노드를 연결하면서 선분 길이의 합을 최소화하는 경로를 찾는 알고리즘으로, 효율적인 전력망/통신망 설계에 사용된다.
분류: 기술 / [[지리정보시스템]] / 기하학적 요소