Mon problème est le suivant: j'ai un shp de ligne (couche cible) et un shp de point (couche de jointure). le second (couche de points) contient un attribut que je veux joindre à une couche de lignes basée sur la distance la plus proche de la ligne. Les points et les lignes ne se croisent pas
Je peux le faire avec ArcGIS et la jointure spatiale (option de correspondance: la plus proche), mais je ne sais pas comment y parvenir dans QGIS.
qgis
attribute-joins
attribute-table
Miha Požauko
la source
la source
Réponses:
Je ne pense pas qu'il existe une fonction QGIS «de base» pour cela. Cependant, installez le plugin MMQGIS et utilisez l'outil 'distance du hub'. Choisissez vos points en tant que couche "Points source" et vos lignes en tant que "Couche de concentrateurs de destination" et définissez "Type de forme de sortie" sur "Ligne vers concentrateur". Cela vous donnera un fichier de formes de lignes (avec longueur) qui rejoignent les entités les plus proches. Idéalement, il ajoute également l'ID de l'entité la plus proche à la table attributaire.
Edition / Commentaire: Cette approche fonctionne bien s'il y a moins de points que de lignes, ou bien une situation ligne à point un à un. Avoir plus de points que de lignes complique les choses. L'outil 'Hub Distance' ajoute l'ID de l'entité linéaire à la table attributaire de points en tant que 'HubName' ainsi que la distance entre le point et le centre de la ligne en tant que 'HubDist'. S'il y a plus de points que de lignes, un travail supplémentaire est nécessaire pour déterminer au sein de chaque sous-ensemble de points (ces enregistrements multiples liés à chaque hub de ligne) lequel est le plus proche de chaque ligne, et / ou qui est un avec l'ensemble souhaité de attributs à joindre à la ligne.
la source
La fonction GRASS v.distance peut être utilisée pour cela. Dans QGIS, vous pouvez accéder à la fonction via le plugin GRASS (la version de traitement ne fonctionne pas actuellement). Le plugin NNJoin QGIS peut être une alternative plus simple.
la source
Le plugin NNJoin ne m'a jamais laissé tomber et fonctionne bien avec de grands ensembles de données .
Plugins> Installer: NNJoin> NNJoin> choisissez la couche d'entrée et joignez la couche> Cliquez ensuite sur joindre.
Examinez les résultats de la nouvelle couche de sortie avec la table attributaire. Attention: assurez-vous que vos deux couches utilisent la même projection spatiale, sinon vos résultats seront vides.
la source
En 2019, cela peut être possible avec l'outil QGIS 3 Zanzibar 'Joindre les attributs par le plus proche'. Cet outil vous permet de trouver l'entité la plus proche et de joindre les attributs sélectionnés. Il est également possible d'effectuer une jointure un-à-plusieurs, si vous spécifiez la distance maximale et les voisins les plus proches max.
la source