Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Tue 27 August 2019 12:13

neskuik01
Participant assidu
Date d'inscription: 16 Feb 2015
Messages: 195

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 smile

Hors ligne

 

#2 Tue 27 August 2019 18:42

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3799

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: 994

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: 195

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: 195

Re: QGIS: Expression Intersects(geom1,geom2)

carteq a écrit:

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: 3799

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: 195

Re: QGIS: Expression Intersects(geom1,geom2)

SANTANNA a écrit:

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

 

Pied de page des forums

Powered by FluxBB