From 41a98b7737428e3a691f00569e91ba1481180aff Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Wed, 27 Sep 2023 23:41:23 +0200 Subject: --topo-basedir: Default to the value from the configuration file. --- gis-observation-map | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/gis-observation-map b/gis-observation-map index 62e5642..c5889e4 100755 --- a/gis-observation-map +++ b/gis-observation-map @@ -68,7 +68,7 @@ parser = argparse.ArgumentParser( %(prog)s {--geometry=FILE|--point=X,Y} ...''' ) parser.add_argument('--margin', type=int, help='Margin (in meters) from geometry envelopes') -parser.add_argument('--topo-basedir', default='.', help='Base directory for "Topografi 10", "Topografi 50", etc.') +parser.add_argument('--topo-basedir', default=config['QGIS']['topo-basedir'], help='Base directory for "Topografi 10", "Topografi 50", etc.') parser.add_argument('--project-name', help='Project filename (and title)') parser.add_argument('--project-home', help='Project home directory') parser.add_argument('--geometry', nargs='*', default=[], help='Geometry filename(s)') @@ -667,7 +667,7 @@ searchFilter['taxon'] = { getObservations(taxonLists, taxonRedlistCategories, searchFilter) topo_maps = ['Topografi 10', 'Topografi 50', 'Topografi 100'] -if projectInstance is not None: +if args.topo_basedir is not None: basedir = Path(args.topo_basedir) basedir = basedir.expanduser() @@ -704,7 +704,7 @@ if projectInstance is not None: qlr_paths.append(qlr_path) - if len(qlr_paths) > 0: + if projectInstance is not None and len(qlr_paths) > 0: rootGroup = layerTreeRoot.addGroup(topo) for qlr_path in qlr_paths: QgsLayerDefinition.loadLayerDefinition(qlr_path.as_posix(), projectInstance, rootGroup) @@ -723,22 +723,24 @@ if projectInstance is not None: lyr.setFlags(QgsMapLayer.Removable) rootGroup.setExpanded(False) - maxScale = 1 - for topo in topo_maps: - minScale = None - if topo == 'Topografi 10': - minScale = 50000 - elif topo == 'Topografi 50': - minScale = 100000 - elif topo == 'Topografi 100': - minScale = 10000000 - - if minScale is not None: - for lt in QgsProject.instance().layerTreeRoot().findGroup(topo).findLayers(): - lyr = lt.layer() - lyr.setScaleBasedVisibility(True) - lyr.setMinimumScale(minScale) - lyr.setMaximumScale(maxScale) - maxScale = minScale + if projectInstance is not None: + maxScale = 1 + for topo in topo_maps: + minScale = None + if topo == 'Topografi 10': + minScale = 50000 + elif topo == 'Topografi 50': + minScale = 100000 + elif topo == 'Topografi 100': + minScale = 10000000 + + if minScale is not None: + for lt in QgsProject.instance().layerTreeRoot().findGroup(topo).findLayers(): + lyr = lt.layer() + lyr.setScaleBasedVisibility(True) + lyr.setMinimumScale(minScale) + lyr.setMaximumScale(maxScale) + maxScale = minScale +if projectInstance is not None: projectInstance.write() -- cgit v1.2.3