J'ai une couche avec des polygones (appelons-la "bois") qui est coupée par "n" objets linéaires ("routes"). Chaque route a un attribut roadid unique.
Je dois ajouter TOUS les roadid (pas seulement les premières trouvailles de QGis) à la couche de bois-polygones qu'ils croisent pour cette dernière utilisation. De préférence, tous les roadid devraient être dans une nouvelle colonne d'attributs des "bois", divisée par exemple par ",".
S'il n'y avait qu'une seule route dans chaque bois, je pourrais utiliser l'outil "join attribute by position" pour obtenir les roadid sur les polygones. L'attribut voulu est une chaîne unique, donc cela n'aide pas à additionner / moyenne / min / max les champs, et il n'y a pas d'option pour les lier ensemble sous forme de chaînes divisées par ",".
Edit: Il n'y a pas de solution sans l'aide de plugins ou de programmes externes (voir le commentaire de Matthias Kuhn ci-dessous).
(QGIS 2.10.1-Pisa)
la source
Réponses:
Utilisez la base de données Spatialite!
Il s'agit d'une base de données spatiale légère basée sur des fichiers prise en charge par QGIS.
Première mise en place d'une base de données spatialite suivant ces instructions
Poussez vos deux tables vers cette base de données spatialite à l'aide du gestionnaire de bases de données QGIS
En supposant que vos tables sont appelées "polygone" et "ligne", exécutez la commande SQL suivante dans l'interface de requête du gestionnaire de base de données.
Plus d'explications et de plaisir en lisant les fonctions d'agrégation SQLite ici et les fonctions de spatialite ici
la source