Ich habe eine Ebene mit Polygonen (nennen wir es "Wald"), die von "n" Linienobjekten ("Straßen") geschnitten wird. Jede Straße hat ein eindeutiges Attribut roadid.
Ich muss ALLE Roadids (nicht nur die ersten QGis-Funde) zu der Holz-Polygon-Schicht hinzufügen, die sie für die letztere Verwendung schneiden. Vorzugsweise sollten sich alle Roadids in einer neuen Attributspalte des "Waldes" befinden, geteilt durch zB ",".
Wenn es nur eine Straße in jedem Holz gäbe, könnte ich das Werkzeug "Attribut nach Position verbinden" verwenden, um Straßen-IDs auf den Polygonen zu erhalten. Das gewünschte Attribut ist eine eindeutige Zeichenfolge, daher hilft es nicht, die Felder zu summieren / zu berechnen / zu min / max, und es gibt keine Option, sie als durch "," geteilte Zeichenfolgen zusammenzubinden.
Bearbeiten: Ohne die Hilfe von Plugins oder externen Programmen gibt es derzeit keine Lösung (siehe Kommentar von Matthias Kuhn unten).
(QGIS 2.10.1-Pisa)
quelle
Antworten:
Verwenden Sie die Spatialite-Datenbank!
Es handelt sich um eine leichtgewichtige dateibasierte räumliche Datenbank, die von QGIS sofort unterstützt wird.
Richten Sie zuerst eine Spatialite-Datenbank gemäß diesen Anweisungen ein
Verschieben Sie Ihre beiden Tabellen mit dem QGIS DB-Manager in diese Spatialite- Datenbank
Angenommen, Ihre Tabellen heißen "Polygon" und "Zeile", führen Sie den folgenden SQL-Befehl in der DB Manager-Abfrageoberfläche aus.
Weitere Erklärungen und Spaß beim Lesen der SQLite-Aggregatfunktionen hier und der Spatialite-Funktionen hier
quelle