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
QGIS - Geometrie duplizieren anhand eines Tabelleneintrages
- __blackjack__
- User
- Beiträge: 14077
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@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. 
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Versuch mal das hier:
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 
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.

-
- User
- Beiträge: 3
- Registriert: Freitag 28. Oktober 2022, 07:39
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.
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.
- __blackjack__
- User
- Beiträge: 14077
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@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.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
-
- User
- Beiträge: 3
- Registriert: Freitag 28. Oktober 2022, 07:39
Ich wollte mich noch recht herzlich bedanken.
Funktioniert super.
Super !!!
Funktioniert super.
Super !!!