#1 Tue 27 August 2019 12:13
- neskuik01
- Participant assidu
- Date d'inscription: 16 Feb 2015
- Messages: 199
QGIS: Expression Intersects(geom1,geom2)
Bonjour,
Je suis entrain d'écrire une requête pour détecter tous les linéaires dont le noeud terminal intersecte une autre couche linéaire (J'utilise select by expression sur une couche branchement).
le but de la requête étant de déterminé les branchements dont le sens d'écoulement est en direction de la conduite de distribution
Code:
intersects(end_point($geometry, geometry('conduite_distri))) is true
L'expression est invalide et il est précisé "Cannot convert to feature". si quelqu'un a une idée je suis preneur
Hors ligne
#2 Tue 27 August 2019 18:42
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS: Expression Intersects(geom1,geom2)
Bonjour,
Je me demande s'il n'y a pas des plugins métiers qui fourniraient déjà ce genre de fonctionnalités. Jamais cherché perso, juste des échos. Je peux me tromper.
Pour la formule,
end_point prend un seul argument (voir l'aide associée) donc ce devrait être end_point($geometry)
geometry prend comme variable une entité. Or vous lui passez du texte (je suppose que ce doit être le nom de la couche ==> attention à utiliser les bons guillemets et à les fermer). Pour récupérer la géométrie d'une entité d'une autre couche, c'est geometry(get_feature ('couche', 'champ', valeur)). Il y a un bout d'exemple dans l'aide de la fonction
L'inconvénient avec ces fonctions core dans QGIS est qu'il vous faut lui indiquer les entités que vous voulez comparer. Or vous souhaitez faire à l'aveugle en parcourant tous les possibles. C'est, je pense, là que l'extension ref_functions peut vous aider. Elle permet de contourner cela; je vous invite donc à regarder de ce côté.
Autrement, une alternative par les algorithmes : extraire nœuds spécifiques --> sélection (ou extraction) par localisation ou jointure spatiale --> jointure attributaire via ID avec la ligne d'origine
D'autres options sont une requête SQL via couches virtuelles ou DB Manager.
Hors ligne
#3 Wed 28 August 2019 08:43
- GlaDal
- Participant assidu
- Date d'inscription: 30 Aug 2013
- Messages: 1103
Re: QGIS: Expression Intersects(geom1,geom2)
Bonjour Nesquik,
Pour le plugin métier auquel fait certainement référence SANTANNA, c'est Qgep : https://github.com/QGEP/QGEP
A voir peut-être l'extension Water network line.
Hors ligne
#4 Wed 28 August 2019 10:34
- neskuik01
- Participant assidu
- Date d'inscription: 16 Feb 2015
- Messages: 199
Re: QGIS: Expression Intersects(geom1,geom2)
Merci pour vos réponses ! effectivement pour le end_point j'avais mal placé la parenthèse.
Je vais regardé les extensions.
Après effectivement j'avais essayé de procéder avec une requête sql en important les deux couches dans ma base postgis. Et ça moulinait en vain :
Code:
select * from brouillon.branchement as tpt, brouillon.conduite as tcond where ST_Crosses(tcond.geom,ST_EndPoint(tpt.geom))is true;
Les fonctions refFunction elles peuvent marcher mais que si j'exporte au préalable les EndPoints non ? vu que la syntaxe c'est fonction('coucheCible',$geometry) .
Dernière modification par neskuik01 (Wed 28 August 2019 12:28)
Hors ligne
#5 Wed 28 August 2019 22:29
- carteq
- Participant assidu
- Date d'inscription: 8 Mar 2008
- Messages: 829
Re: QGIS: Expression Intersects(geom1,geom2)
Code:
Select L2.ID as ID2, L2.geometry as L2Geom from lines2 as L2, lines1 as L1 where intersects(L1.geometry, endPoint(L2.geometry))
Dernière modification par carteq (Wed 28 August 2019 22:29)
Hors ligne
#6 Fri 30 August 2019 17:09
- neskuik01
- Participant assidu
- Date d'inscription: 16 Feb 2015
- Messages: 199
Re: QGIS: Expression Intersects(geom1,geom2)
Code:
Select L2.ID as ID2, L2.geometry as L2Geom from lines2 as L2, lines1 as L1 where intersects(L1.geometry, endPoint(L2.geometry))
J'ai le même résultat, cad 0 entité de sélectionée (pourtant aucun problème pour selectionner les branchements intersectants les conduites )
y'a t-il possibilité d'extraire sous postgis ou qgis les endpoints ? l'algo extraire les sommets spécifiques me demande un chiffre oO.
Hors ligne
#7 Fri 30 August 2019 19:00
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS: Expression Intersects(geom1,geom2)
Bonjour,
y'a t-il possibilité d'extraire sous postgis ou qgis les endpoints ? l'algo extraire les sommets spécifiques me demande un chiffre oO.
-1 (cf doc associée ou mise en lien plus haut)
Dernière modification par SANTANNA (Fri 30 August 2019 19:01)
Hors ligne
#8 Thu 12 September 2019 11:08
- neskuik01
- Participant assidu
- Date d'inscription: 16 Feb 2015
- Messages: 199
Re: QGIS: Expression Intersects(geom1,geom2)
Bonjour,
y'a t-il possibilité d'extraire sous postgis ou qgis les endpoints ? l'algo extraire les sommets spécifiques me demande un chiffre oO.
-1 (cf doc associée ou mise en lien plus haut)
Merci !!
Hors ligne