GIS
QGIS와 PostGIS: 실습용 SQL 쿼리 예제
유병혁
2024. 12. 10. 14:05
속성으로 검색
SELECT *
FROM sigungu;
SELECT id, name, geom
FROM sigungu;
SELECT id, name, geom
FROM sigungu
WHERE name = '마포구';
CREATE OR REPLACE VIEW mapo_sigungu AS
SELECT id, name, geom
FROM sigungu
WHERE name = '마포구';
공간으로 검색
CREATE OR REPLACE VIEW mapo_road_link AS
SELECT rl.*
FROM road_link rl
JOIN mapo_sigungu ms
ON ST_Intersects(rl.geom, ms.geom);
최단 경로 검색
CREATE OR REPLACE VIEW mapo_shortest_path AS
WITH shortest_path AS (
-- pgr_dijkstra 함수로 최단 경로 계산
SELECT edge, cost, agg_cost
FROM pgr_dijkstra(
'SELECT link_id AS id,
up_from_no AS source,
up_to_node AS target,
length AS cost
FROM mapo_road_link',
223465, -- 시작 노드 ID
224380, -- 끝 노드 ID
directed := false -- 방향성 없는 그래프
)
)
-- 최단 경로에 해당하는 링크 정보 추출
SELECT l.*
FROM mapo_road_link l
JOIN shortest_path sp
ON l.link_id = sp.edge;