#1 Sat 09 March 2024 22:58
- laurent00
- Participant assidu
- Date d'inscription: 6 Aug 2007
- Messages: 402
QGIS: calcul emprise d un polygone + polyligne
bonsoir
je souhaite créer l'emprise de deux éléments appartenant à deux couches, une polygone et une polyligne
ils sont relier par un id identique
je peux faire l'emprise e chaque élément, mais comment faire l'emprise du couple polygone-polyligne
merci Lj
Hors ligne
#2 Sun 10 March 2024 08:43
- laurent00
- Participant assidu
- Date d'inscription: 6 Aug 2007
- Messages: 402
Re: QGIS: calcul emprise d un polygone + polyligne
j'ai cette formule qui me permet de calculer l'aire globale de cette emprise depuis la première couche
mais comment créer l'emprise elle même ?
area(
make_polygon(
make_line(
make_point(
if((x_min( geometry( get_feature('tourettes', 'trt_id', attribute ($currentfeature, 'maa_id' )) ) ))< x_min( $geometry), (x_min( geometry( get_feature('tourettes', 'trt_id', attribute ($currentfeature, 'maa_id' )) ) )), x_min( $geometry)),
if((y_min( geometry( get_feature('tourettes', 'trt_id', attribute ($currentfeature, 'maa_id' )) ) ))< y_min( $geometry), (y_min( geometry( get_feature('tourettes', 'trt_id', attribute ($currentfeature, 'maa_id' )) ) )), y_min( $geometry)) ),
make_point(
if((x_min( geometry( get_feature('tourettes', 'trt_id', attribute ($currentfeature, 'maa_id' )) ) ))< x_min( $geometry), (x_min( geometry( get_feature('tourettes', 'trt_id', attribute ($currentfeature, 'maa_id' )) ) )), x_min( $geometry)),
if((y_max( geometry( get_feature('tourettes', 'trt_id', attribute ($currentfeature, 'maa_id' )) ) ))> y_max( $geometry), (y_max( geometry( get_feature('tourettes', 'trt_id', attribute ($currentfeature, 'maa_id' )) ) )), y_max( $geometry)) ),
make_point(
if((x_max( geometry( get_feature('tourettes', 'trt_id', attribute ($currentfeature, 'maa_id' )) ) ))> x_max( $geometry), (x_max( geometry( get_feature('tourettes', 'trt_id', attribute ($currentfeature, 'maa_id' )) ) )), x_max( $geometry)),
if((y_max( geometry( get_feature('tourettes', 'trt_id', attribute ($currentfeature, 'maa_id' )) ) ))> y_max( $geometry), (y_max( geometry( get_feature('tourettes', 'trt_id', attribute ($currentfeature, 'maa_id' )) ) )), y_max( $geometry)) ),
make_point(
if((x_max( geometry( get_feature('tourettes', 'trt_id', attribute ($currentfeature, 'maa_id' )) ) ))> x_max( $geometry), (x_max( geometry( get_feature('tourettes', 'trt_id', attribute ($currentfeature, 'maa_id' )) ) )), x_max( $geometry)),
if((y_min( geometry( get_feature('tourettes', 'trt_id', attribute ($currentfeature, 'maa_id' )) ) ))< y_min( $geometry), (y_min( geometry( get_feature('tourettes', 'trt_id', attribute ($currentfeature, 'maa_id' )) ) )), y_min( $geometry)) ),
make_point(
if((x_min( geometry( get_feature('tourettes', 'trt_id', attribute ($currentfeature, 'maa_id' )) ) ))< x_min( $geometry), (x_min( geometry( get_feature('tourettes', 'trt_id', attribute ($currentfeature, 'maa_id' )) ) )), x_min( $geometry)),
if((y_min( geometry( get_feature('tourettes', 'trt_id', attribute ($currentfeature, 'maa_id' )) ) ))< y_min( $geometry), (y_min( geometry( get_feature('tourettes', 'trt_id', attribute ($currentfeature, 'maa_id' )) ) )), y_min( $geometry)) )
)
)
)
Hors ligne
#3 Sun 10 March 2024 15:25
- Benoit D
- Participant assidu
- Date d'inscription: 17 Jul 2018
- Messages: 151
Re: QGIS: calcul emprise d un polygone + polyligne
Bonjour,
Si on considère les emprises "simples" c'est-à-dire non orientées, je vous propose :
- calcul d'emprise sur les lignes, donne une couche "emprises lignes"
- calcul d'emprise sur les polygones, donne une couche "emprises polygones"
- fusionner les couches "emprises lignes" et "emprises polygones" en une couche "emprises multiples"
- agrégation des entités par leur id conservé vers "emprises agrégées"
- calcul d'emprise sur "emprises agrégées" donne "emprises"
Hors ligne
#4 Sun 10 March 2024 15:37
- laurent00
- Participant assidu
- Date d'inscription: 6 Aug 2007
- Messages: 402
Re: QGIS: calcul emprise d un polygone + polyligne
ok merci
est-il possible de me détailler ces lignes
- fusionner les couches "emprises lignes" et "emprises polygones" en une couche "emprises multiples" -> ou sélectionner emprise multiple ?
- agrégation des entités par leur id conservé vers "emprises agrégées"
merci LJ
Hors ligne
#5 Sun 10 March 2024 16:29
- laurent00
- Participant assidu
- Date d'inscription: 6 Aug 2007
- Messages: 402
Re: QGIS: calcul emprise d un polygone + polyligne
je découvre donc l'outil agrégation
je mets la formule maa_id = trt_id pour faire l'agrégation mais cela ne ramène qu'une seule entité !?
LJ
Hors ligne
#6 Sun 10 March 2024 18:43
- Benoit D
- Participant assidu
- Date d'inscription: 17 Jul 2018
- Messages: 151
Re: QGIS: calcul emprise d un polygone + polyligne
est-il possible de me détailler ces lignes
- fusionner les couches "emprises lignes" et "emprises polygones" en une couche "emprises multiples" -> ou sélectionner emprise multiple ?
Il s'agit de l'outil fusionner les couches pour que toutes les entités soient dans une seule et même couche. J'ai choisi le nom "emprises multiples", mais vous pouvez l'appeler "résultat intermédiaire 16".
- agrégation des entités par leur id conservé vers "emprises agrégées"
Le plus simple est d'avoir le même champ dans les 2 couches, peut-être rajouter un champ trt_id dans la couche qui contient le maa_id. Dans mon jeu de test pour vérifier ce que je vous disais, j'ai utilisé le même nom de champ.
Hors ligne
#7 Sun 10 March 2024 19:49
- laurent00
- Participant assidu
- Date d'inscription: 6 Aug 2007
- Messages: 402
Re: QGIS: calcul emprise d un polygone + polyligne
merci c bon pour moi
LJ
Hors ligne