Auteur : Lena
L’union (cf. ‘Comment croiser plusieurs couches vectorielles (union, intersection, combinaison, découpage) ?’) donne un résultat semblable à une jointure spatiale (n, m), à ceci près qu’on ne conserve pas la géométrie originale de la couche. Pour réaliser une jointure spatiale (1, n), on utilisera l’intersection qui, de la même façon, ne conserve pas la géométrie des entités.
Exemple :
On dispose d’une couche représentant des communes et d’une couche représentant des habitats naturels. On souhaite connaître pour chaque commune la liste des habitats naturels qui y ont été identifiés. En d’autres termes, on souhaite faire une jointure commune <- (1,n)-> habitat_naturel.
- Au préalable, on s’assure que les deux couches possèdent un champ identifiant de manière unique chaque commune et chaque habitat ([id _commune] et [id _habitat]).
On réalise ensuite une intersection (cf. ‘Géotraitements’ -> ‘Comment croiser plusieurs couches vectorielles (union, intersection, combinaison, découpage) ?’ : couche A = communes, couche B = habitats_naturels) :
La géométrie de la couche résultante intersection_output n’a pas forcément grand intérêt, contrairement à sa table attributaire. Celle-ci contient effet un enregistrement pour chaque couple polygone communal <-> polygone habitat.
- Si l’on souhaite ensuite connaître la superficie des différents habitats pour chaque commune, on va tout d’abord créer et calculer un champ [aire] dans la couche intersection_output. On va ensuite créer un champ texte à partir de la concaténation des champs [id_polyg_commune] et [id_habitat] (via la calculatrice de valeur de champ, à partir de la formule : [id_concat] = ‘Str([id_polyg_commune]) & Str([id_habitat])’). Puis on fait une récapitulation (clic droit sur l’en-tête du champ [id_concat] -> ‘Récapituler...’) à partir du champ [id_concat] en incluant comme résumé statistique la somme du champ [aire]. On a ainsi la superficie totale des différents habitats sur chaque commune.