안녕하세요? PyQGIS를 통해 종 출현(Presence) 좌표를 시각화하는 예제 코드입니다. QGIS 실행 후 "플러그인 > 파이썬 콘솔"에서 실행하실 수 있습니다.
먼저, 필요한 라이브러리들을 호출합니다.
import os
from PyQt5.QtGui import QColor
from qgis.core import (
QgsVectorLayer,
QgsProject,
QgsSymbol,
QgsSingleSymbolRenderer,
)
GeoPackage 파일을 QGIS 레이어로 로드하고 스타일을 설정하는 함수를 정의합니다. GeoPackage 경로(gpkg_path)와 기타 스타일 옵션을 입력받아, QGIS에 레이어를 추가하는데요, 여기서는 레이어의 기본 심볼 색상, 투명도, 크기를 설정해 봤습니다.
def add_presence_layer(
gpkg_path, layer_name="Presence", color="blue", opacity=0.5, size=2.0
):
"""
지정된 GeoPackage 파일 경로를 기반으로 QGIS 레이어를 추가하고 스타일을 설정
:param gpkg_path: GeoPackage 파일 경로
:param layer_name: 레이어 이름
:param color: 심볼 색상 (기본값: "blue")
:param opacity: 심볼 투명도 (0.0 ~ 1.0, 기본값: 0.5)
:param size: 심볼 크기 (기본값: 2.0)
"""
# 벡터 레이어 로드
layer = QgsVectorLayer(gpkg_path, layer_name, "ogr")
if not layer.isValid():
print(f"Failed to load layer from {gpkg_path}")
return
# 프로젝트에 레이어 추가
QgsProject.instance().addMapLayer(layer)
# 심볼 스타일 설정
symbol = QgsSymbol.defaultSymbol(layer.geometryType())
symbol.setColor(QColor(color)) # 색상 설정
symbol.setOpacity(opacity) # 투명도 설정
symbol.setSize(size) # 포인트 크기 설정
# 렌더러 설정
renderer = QgsSingleSymbolRenderer(symbol)
layer.setRenderer(renderer)
layer.triggerRepaint()
print(f"Layer '{layer_name}' added and styled successfully!")
GeoPackage 파일 경로를 설정하고 add_presence_layer 함수를 호출하여 레이어를 추가합니다. VworldBase 레이어를 함께 추가해 봤습니다.
# 함수 호출
gpkg_path = "D:/GEODATA/presence.gpkg"
add_presence_layer(gpkg_path)