GIS 513

QGIS와 PostGIS: 실습용 SQL 쿼리 예제

속성으로 검색SELECT * FROM sigungu;SELECT id, name, geom FROM sigungu;SELECT id, name, geom FROM sigunguWHERE name = '마포구';CREATE OR REPLACE VIEW mapo_sigungu ASSELECT id, name, geomFROM sigunguWHERE name = '마포구';공간으로 검색CREATE OR REPLACE VIEW mapo_road_link ASSELECT rl.*FROM road_link rlJOIN mapo_sigungu msON ST_Intersects(rl.geom, ms.geom);최단 경로 검색CREATE OR REPLACE VIEW mapo_shortest_path ASWITH shor..

GIS 2024.12.10

QGIS 모델 설계자 기능 소개

안녕하세요? 이번 글은 QGIS에서 "모델 설계자" 기능을 이미지 위주로 소개해 보겠습니다. 이번 글에서는 폴리곤 레이어를 입력받아서 내가 원하는 좌표계로 레이어 재투영한 후, 해당 산출물을 다시 도형 수정 처리하여 출력하는 일련의 과정을 하나의 모델로 생성해 보겠습니다. QGIS 메뉴 바에서 "공간 처리 > 모델 설계자"를 실행합니다. "모델 속성"에서 이름과 그룹을 설정해 봅니다. 모델 파일은 *.model3 확장자로 저장됩니다.  폴리곤을 입력 받기 위해 "벡터 레이어" 입력을 추가하겠습니다. 원하는 좌표계 설정을 위해 "좌표계" 입력도 추가합니다. 이렇게 입력 레이어와 좌표계가 추가되었습니다. 알고리즘에서 "레이어 재투영"을 검색 및 추가합니다. 입력 레이어, 대상 좌표계를 아래와 같이 설정합니다..

GIS 2024.12.10

QGIS 실전 플러그인 개발 - (6) 리소스 파일 컴파일하기

안녕하세요? 이번 글은 "QGIS 실전 플러그인 개발" 시리즈의 여섯 번째로, "리소스 파일 컴파일하기"에 대해 다룹니다. 이 과정에서 GeoQuery Tool의 아이콘을 변경해 봅니다.리소스 파일 컴파일플러그인 템플릿 폴더에 icon.png 파일이 포함되어 있으므로, 이를 새 이미지로 교체하면 플러그인 아이콘이 바로 변경될 것으로 기대할 수 있습니다. 그러나 실제로는 resources.qrc 파일이 컴파일되어 생성된 resource.py 파일에 아이콘 이미지가 하드코딩되어 있기 때문에, 현재 설정에서는 아이콘을 변경하려면 해당 파일을 다시 컴파일해야 합니다.OSGeo4W Shellicon.png를 변경한 상태에서 OSGeo4W Shell을 실행하고 아래와 같이 명령 줄을 실행합니다.cd C:\Users..

GIS 2024.12.08

QGIS 실전 플러그인 개발 - (5) 플러그인의 핵심 로직 구현

안녕하세요? 이번 글은 "QGIS 실전 플러그인 개발" 시리즈의 다섯 번째로, "플러그인의 핵심 로직 구현"에 대해 다룹니다. 이번에는 geoquery.py 파일을 변경하여 플러그인의 핵심 로직을 구현합니다.핵심 로직 구현두 번째 글에서 작성한 Python 코드를 적용하되, 일부 코드만 변경해주시면 되겠습니다. QGIS 실전 플러그인 개발 - (2) Vworld API를 활용한 Python 코드 작성안녕하세요? 이번 글은 "QGIS 실전 플러그인 개발" 시리즈의 두 번째로, "Vworld API를 활용한 Python 코드 작성"에 대해 다룹니다.라이브러리 호출먼저 HTTP 요청, 데이터 파싱, QGIS 작업, 그리고 Pyfoss4g.tistory.comimport requestsimport jsonfro..

GIS 2024.12.08

QGIS 실전 플러그인 개발 - (4) Qt Designer로 사용자 인터페이스 설계

안녕하세요? 이번 글은 "QGIS 실전 플러그인 개발" 시리즈의 네 번째로, "Qt Designer로 사용자 인터페이스 설계"에 대해 다룹니다.Qt DesignerQt Designer는 Qt 위젯을 기반으로 사용자 인터페이스를 생성하는 애플리케이션입니다. QGIS를 설치하면 Qt Designer도 함께 설치되므로, 별도의 추가 설치 없이 바로 실행할 수 있습니다. Qt Designer를 실행하고 "geoquery_dialog_base.ui" 파일을 열어보겠습니다.  다음과 같이 "geoquery_dialog_base.ui" 파일을 열었습니다. 아래와 같은 순서로 사용자 인터페이스를 설계해 봅니다."Display Widgets > Label"을 추가하고 "text: Keyword:"를 입력합니다."Inpu..

GIS 2024.12.08

QGIS 실전 플러그인 개발 - (3) Plugin Builder 3로 플러그인 템플릿 생성

안녕하세요? 이번 글은 "QGIS 실전 플러그인 개발" 시리즈의 세 번째로, "Plugin Builder 3로 플러그인 템플릿 생성"에 대해 다룹니다.Plugin Builder 3 플러그인Plugin Builder 3 플러그인은 여러 화면으로 구성된 "마법사(wizard)" 형식의 인터페이스를 제공하며, 이를 통해 플러그인 템플릿을 쉽게 생성할 수 있습니다. Plugin Builder 3 사용법과 관련해서는 아래 두 글을 추천드립니다. QGIS Plugin Builder — QGIS Plugin Builder 3.0.x documentationConcepts Plugin Builder provides you a working template from which you can create your own ..

GIS 2024.12.08

QGIS 실전 플러그인 개발 - (2) Vworld API를 활용한 Python 코드 작성

안녕하세요? 이번 글은 "QGIS 실전 플러그인 개발" 시리즈의 두 번째로, "Vworld API를 활용한 Python 코드 작성"에 대해 다룹니다.라이브러리 호출먼저 HTTP 요청, 데이터 파싱, QGIS 작업, 그리고 PyQt를 활용한 GUI 및 데이터 유형 관리를 위해 필요한 라이브러리를 호출합니다.import requestsimport jsonfrom qgis.core import *from qgis.utils import ifacefrom PyQt5.QtCore import QVariantQGIS 맵 캔버스의 BBox 반환 함수다음으로, QGIS 맵 캔버스의 범위(BBox)를 반환하는 함수를 정의합니다. 이 BBox는 응답 결과의 좌표계를 기준으로 적용되므로, 먼저 사용할 좌표계를 정의해야 합니..

GIS 2024.12.08