Seite 1 von 1

QGIS - Geometrie duplizieren anhand eines Tabelleneintrages

Verfasst: Freitag 28. Oktober 2022, 07:48
von Homunkulus
Hallo zusammen,

ich hätte eine Frage zu einem Python Script, welches ich auf der folgenden Seite gefunden habe:

https://gis.stackexchange.com/questions ... 857#443857

Leider funktioniert das Script nicht so wie es beschrieben wird.

Ich habe alles genauso umgesetzt.

Es wird mir immer nur eine Geometrie dupliziert, verdreifacht, vervierfacht usw. Die anderen werden ignoriert.

Ich muss hinzufügen, dass ich überhaupt keine Kenntnisse in Pythonprogrammierung besitze.
Für eure Hilfe recht vielen Dank im voraus.

MFG

Re: QGIS - Geometrie duplizieren anhand eines Tabelleneintrages

Verfasst: Freitag 28. Oktober 2022, 08:44
von __blackjack__
@Homunkulus: In der Python-Dokumentation gibt es ein Tutorial. Wenn Du das durchgearbeitet hast, sollte der Fehler in dem Programm trivial sein. Der ist ziemlich offensichtlich. 😇

Re: QGIS - Geometrie duplizieren anhand eines Tabelleneintrages

Verfasst: Freitag 28. Oktober 2022, 09:13
von __deets__
Versuch mal das hier:

Code: Alles auswählen

layer = iface.activeLayer() # my layer 
provider = layer.dataProvider() # access to the features of the layer 

# Loop on the features of the layer 
for feature in layer.getFeatures():
    id_duplicate = feature["id"] # value of the field id 
    number_duplicate = feature["number"] # number of duplicates
    geometry_duplicate = feature.geometry() # geometry of my feature
    
    # initialization of my counter which will allow me to know when I should stop duplicating 
    counter = 0
    while counter != number_duplicate :
        new_feature = QgsFeature() # new feature 
        new_feature.setAttributes([id_duplicate,number_duplicate]) # I apply the same attributes 
        new_feature.setGeometry(QgsGeometry(geometry_duplicate)) # I apply the same geometry
        provider.addFeature(new_feature) # Addition of the new entity 
    
        counter += 1
        # if the value of my field is equal to 1 then I stop duplicating this entity 
        and move on to the next one otherwise I continue.
Wenn das nicht hilft (die Einrückungen sind wichtig in Python!), dann braucht es einen Experten in ArcGIS, den du hier wahrscheinlich nicht findest. Mein Bruder macht das, aber kostet Geld ;)

Re: QGIS - Geometrie duplizieren anhand eines Tabelleneintrages

Verfasst: Freitag 28. Oktober 2022, 11:43
von Homunkulus
Hallo,
das hier wiedergegebene Script entspricht ja 1:1 dem aus dem Tutorial.

Was diue Anpassung betrifft stehe ich auf dem Schlauch, sorry.

Trotzdem vielen dank schon mal für die antworten.

Re: QGIS - Geometrie duplizieren anhand eines Tabelleneintrages

Verfasst: Freitag 28. Oktober 2022, 11:57
von __blackjack__
@Homunkulus: Es entspricht eben nicht 1:1. Die Einrückung der zweiten Schleife ist anders. Die steht hier *in* der ``for``-Schleife und im SO Beitrag *nach* der ``for``-Schleife.

Re: QGIS - Geometrie duplizieren anhand eines Tabelleneintrages

Verfasst: Sonntag 30. Oktober 2022, 07:11
von Homunkulus
Ich wollte mich noch recht herzlich bedanken.
Funktioniert super.

Super !!!