def run_open_grid_snapped(self): snappeddirectory = QFileDialog.getExistingDirectory( self.dlg, "Select snapped directory ") allshapefiles = glob.glob(os.path.join(snappeddirectory, '*.shp')) print(allshapefiles) templatefile = r'c:\Users\jong_jn\.qgis2\python\plugins\Delft3D_FlexibleMesh\incl\snapped.qlr' _, dirname = os.path.split(snappeddirectory) qlrfile = os.path.join(snappeddirectory, 'snapped.qlr') # shutil.copy(templatefile, qlrfile) with open(templatefile, 'r') as fin: templatecontent = fin.read() # Do adjustments to the templatecontent # templatecontent = templetecontent.replace() with open(qlrfile, 'w') as fout: fout.write(templatecontent) root = QgsProject.instance().layerTreeRoot() group = root.insertGroup(0, "Snapped_{}".format(dirname)) QgsLayerDefinition().loadLayerDefinition(qlrfile, group)
def _load_radarnetwork_layer(self): ''' load DWDs radar network consisting of two layers (points and buffer) by QgsLayerDefinition file ''' layergroup_name = "RadarNetwork" root = QgsProject.instance().layerTreeRoot() """ Check/uncheck radar network group layer if existing """ # find group layers: ''' for child in root.children(): if isinstance(child, QgsLayerTreeGroup) and child.name() == layergroup_name: self.out("LayerGroup '{}' already exists.".format(layergroup_name), False) return ''' # is OK, it works # simpler method: group = root.findGroup(layergroup_name) if group: #self.out("LayerGroup '{}' already exists.".format(layergroup_name), False) state = group.isVisible() group.setItemVisibilityChecked(not state) return """ Create radar network group layer """ layer_def_file = self._model.plugin_dir / "example/shapes/RadarNetwork/dwd_radarnetwork.qlr" if not layer_def_file.exists(): self.out( "layer definition file '{}' doesn't exist.".format( layer_def_file), False) return """ OK for buffer layer only: shp = self._model.plugin_dir / "example/shapes/RadarNetwork/radarbuffer_150km.gpkg" vlayer_radar = QgsVectorLayer(str(shp), 'radar_buffer', 'ogr') #print("isValid:", vlayer_radar.isValid()) #crs_radolan = QgsCoordinateReferenceSystem() #crs_radolan.createFromProj4(self._model.projection_radolan) #vlayer_radar.setCrs(crs_radolan) QgsProject.instance().addMapLayer(vlayer_radar) """ #group = root.addGroup("RadarNetwork") # ok, appended group = root.insertGroup(0, layergroup_name) # first position self.out("loading layer definition file '{}'".format(layer_def_file)) QgsLayerDefinition().loadLayerDefinition(str(layer_def_file), QgsProject.instance(), group)
def run_open_Baseline6(self): # Open Baseline-project with template # Supports both: d:\modellen\baseline\Rijn\j15_5-v1\ and d:\modellen\baseline\Rijn\j15_5-v1\baseline.gdb\ baselinegdb = QFileDialog.getExistingDirectory( self.dlg, "Select baseline gdb-file ", '*.gdb') if len(baselinegdb) == 0: return if not ("baseline.gdb" in baselinegdb): baselinegdb = os.path.join(baselinegdb, 'baseline.gdb') if not os.path.isdir(baselinegdb): self.iface.messageBar().pushMessage( "Error", "Cannot find baseline.gdb in given folder", level=QgsMessageBar.CRITICAL) return templatefile = r'c:\Users\jong_jn\.qgis2\python\plugins\Delft3D_FlexibleMesh\incl\baseline6_layer_template.qlr' head, tail = os.path.split(baselinegdb) _, baselinedirname = os.path.split(head) qlrfile = os.path.join(head, 'baseline6.qlr') # shutil.copy(templatefile, qlrfile) with open(templatefile, 'r') as fin: templatecontent = fin.read() # Do adjustments to the templatecontent # templatecontent = templetecontent.replace() with open(qlrfile, 'w') as fout: fout.write(templatecontent) root = QgsProject.instance().layerTreeRoot() group = root.insertGroup(0, "Baseline6_{}".format(baselinedirname)) QgsLayerDefinition().loadLayerDefinition(qlrfile, group)
def load_layers(self): root = QgsProject.instance().layerTreeRoot() crs = QgsCoordinateReferenceSystem("EPSG:3794") if access(self): self.iface.messageBar().pushMessage( self.tr("Povezava s podatkovno bazo CPA uspešna..")) else: self.iface.messageBar().pushMessage( self.tr("Nalagam brez CPA slojev..")) #To prevent folder locking of Plugin directory try: tmp = tempfile.mkdtemp() src = path('qlrs') shutil.rmtree(tmp) shutil.copytree(str(src), tmp) styles_path = Path(tmp) except: self.iface.messageBar().pushMessage( self.tr('Berem qlr iz mape vtičnika...')) #Load Arheologija layes group if access(self): if not root.findGroup(self.tr("Arheologija")): arheo_group = root.addGroup(self.tr("Arheologija")) else: arheo_group = root.findGroup(self.tr("Arheologija")) vlayer = postgis_connect(self, "public", "Katalog najdišč", "geom", "kid") QgsProject.instance().addMapLayer(vlayer, False) arheo_group.insertChildNode(0, QgsLayerTreeLayer(vlayer)) vlayer = postgis_connect(self, "public", "Evidenca arheoloških raziskav", "geom", "id") QgsProject.instance().addMapLayer(vlayer, False) arheo_group.insertChildNode(1, QgsLayerTreeLayer(vlayer)) arch_layers = [ 'Claustra Alpium Iuliarum', 'Načrti najdišč', 'Načrti najdišč_poligoni' ] for layer in arch_layers: vlayer = postgis_connect(self, "public", layer, "geom", "id") QgsProject.instance().addMapLayer(vlayer, False) arheo_group.insertChildNode(2, QgsLayerTreeLayer(vlayer)) arch_layers = ['SMAP', 'ZLS interpretacija'] for layer in arch_layers: vlayer = postgis_connect(self, "public", layer, "geom", "gid") QgsProject.instance().addMapLayer(vlayer, False) arheo_group.insertChildNode(7, QgsLayerTreeLayer(vlayer)) else: pass #Load Dediščina layes group if self.dlg.dediscina.isChecked(): if not root.findGroup(self.tr("Dediščina")): dedi_group = root.addGroup(self.tr("Dediščina")) else: dedi_group = root.findGroup(self.tr("Dediščina")) evrd = styles_path / 'eVRD.qlr' QgsLayerDefinition().loadLayerDefinition(str(evrd), QgsProject.instance(), dedi_group) rkd = styles_path / 'RKD.qlr' QgsLayerDefinition().loadLayerDefinition(str(rkd), QgsProject.instance(), dedi_group) #Load Prostorske enote layes group if self.dlg.prostorske_enote.isChecked(): self.iface.messageBar().pushMessage( self.tr("Nalagam Prostoske enote...")) if not root.findGroup(self.tr("Prostorske enote")): prostorske_group = root.addGroup(self.tr("Prostorske enote")) else: prostorske_group = root.findGroup(self.tr("Prostorske enote")) prostorske = styles_path / 'Prostorske enote.qlr' QgsLayerDefinition().loadLayerDefinition(str(prostorske), QgsProject.instance(), prostorske_group) if access(self): vlayer = postgis_connect(self, "public", "ZKN parcele", "geom", "fid") QgsProject.instance().addMapLayer(vlayer, False) prostorske_group.insertChildNode(6, QgsLayerTreeLayer(vlayer)) zkgji = styles_path / 'zkgji.qlr' QgsLayerDefinition().loadLayerDefinition(str(zkgji), QgsProject.instance(), prostorske_group) else: self.iface.messageBar().pushMessage( self.tr("Ne nalagam Prostorskih enot!"), duration=2) #Load Historične podlage layes group if self.dlg.historicnepodlage.isChecked(): self.iface.messageBar().pushMessage( self.tr("Nalagam Historične podlage...")) if not root.findGroup(self.tr("Historične podlage")): hist_group = root.addGroup(self.tr("Historične podlage")) else: hist_group = root.findGroup(self.tr("Historične podlage")) histo = styles_path / 'Historicne podlage.qlr' QgsLayerDefinition().loadLayerDefinition(str(histo), QgsProject.instance(), hist_group) hist_group.setExpanded(False) else: self.iface.messageBar().pushMessage( self.tr("Ne nalagam Historičnih podlag!"), duration=2) #Load podlage layes group if self.dlg.c_podlage.isChecked(): self.iface.messageBar().pushMessage(self.tr("Nalagam podlage..")) if not root.findGroup(self.tr("Podlage")): podlage_group = root.addGroup(self.tr("Podlage")) else: podlage_group = root.findGroup(self.tr("Podlage")) geology = styles_path / 'Geološka karta.qlr' QgsLayerDefinition().loadLayerDefinition(str(geology), QgsProject.instance(), podlage_group) if data_access(self): podlage_zls = styles_path / 'ZLS 1.qlr' QgsLayerDefinition().loadLayerDefinition( str(podlage_zls), QgsProject.instance(), podlage_group) else: pass podlage_gurs = styles_path / 'Podlage.qlr' QgsLayerDefinition().loadLayerDefinition(str(podlage_gurs), QgsProject.instance(), podlage_group) else: self.iface.messageBar().pushMessage(self.tr("Ne nalagam podlag!"), duration=2) QgsProject.instance().setCrs(crs) self.iface.messageBar().pushMessage( self.tr("Nastavljam Državni kordinatni sistem D96/TM.."), duration=5) if access(self): #Set which layers should not be expanded not_expanded = [ 'SMAP', 'ZLS interpretacija', 'Claustra Alpium Iuliarum', 'Načrti najdišč', 'Načrti najdišč_poligoni', 'Evidenca arheoloških raziskav', 'Katalog najdišč' ] for layer in not_expanded: if len(QgsProject.instance().mapLayersByName(layer)) != 0: layer = QgsProject.instance().mapLayersByName(layer)[0] myLayerNode = root.findLayer(layer.id()) myLayerNode.setExpanded(False) #toggle visibility layers = [ 'Claustra Alpium Iuliarum', 'Načrti najdišč', 'Načrti najdišč_poligoni', 'Evidenca arheoloških raziskav', 'SMAP', 'ZLS interpretacija', 'ZKN parcele' ] for layer in layers: if len(QgsProject.instance().mapLayersByName(layer)) != 0: layer = QgsProject.instance().mapLayersByName(layer)[0] root.findLayer(layer.id()).setItemVisibilityChecked(0) #toggle visibility layers = ['RKD'] for layer in layers: if len(QgsProject.instance().mapLayersByName(layer)) != 0: layer = QgsProject.instance().mapLayersByName(layer)[0] root.findLayer(layer.id()).setItemVisibilityChecked(0)