Skip to content

Commit 14c2639

Browse files
committed
Read layers from project, fix layer order
Read layers from project. Include only visible layers when creating GeoTIFF. Ensure correct CRS and layer order.
1 parent 1d7cbfb commit 14c2639

File tree

1 file changed

+14
-16
lines changed

1 file changed

+14
-16
lines changed

arho_feature_template/core/geotiff_creator.py

+14-16
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
import os
22

33
from osgeo import gdal
4-
from qgis.core import QgsMapRendererParallelJob, QgsMapSettings, QgsMapSettingsUtils
4+
from qgis.core import (
5+
QgsCoordinateReferenceSystem,
6+
QgsMapRendererParallelJob,
7+
QgsMapSettings,
8+
QgsMapSettingsUtils,
9+
QgsProject,
10+
)
511
from qgis.PyQt.QtCore import QSize, Qt
612
from qgis.PyQt.QtGui import QColor
713
from qgis.PyQt.QtWidgets import QApplication, QFileDialog
814

915
from arho_feature_template.project.layers.plan_layers import (
10-
LandUseAreaLayer,
11-
LandUsePointLayer,
12-
LineLayer,
13-
OtherAreaLayer,
14-
OtherPointLayer,
1516
PlanLayer,
1617
)
1718
from arho_feature_template.utils.misc_utils import get_active_plan_id, iface
@@ -60,16 +61,13 @@ def create_geotiff(self, geotiff_path):
6061

6162
# Rendering settings
6263
settings = QgsMapSettings()
63-
settings.setLayers(
64-
[
65-
LandUseAreaLayer.get_from_project(),
66-
OtherAreaLayer.get_from_project(),
67-
LandUsePointLayer.get_from_project(),
68-
LineLayer.get_from_project(),
69-
OtherPointLayer.get_from_project(),
70-
PlanLayer.get_from_project(),
71-
]
72-
)
64+
layer_tree = QgsProject.instance().layerTreeRoot()
65+
66+
# Filter only visible layers
67+
layers = [layer for layer in layer_tree.layerOrder() if layer_tree.findLayer(layer).isVisible()]
68+
69+
settings.setLayers(layers)
70+
settings.setDestinationCrs(QgsCoordinateReferenceSystem("EPSG:3067"))
7371
settings.setBackgroundColor(QColor(255, 255, 255))
7472
width = int(buffered_bbox.width() / self.desired_pixel_size) * self.desired_pixel_size
7573
height = int(buffered_bbox.height() / self.desired_pixel_size) * self.desired_pixel_size

0 commit comments

Comments
 (0)