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 19 March 2019 22:16

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 994

QGIS: Requete SQL dans une base de données spatialite

Bonjour à tous,

Je cherche à créer une couche de points qui soit le résultat de requêtes spatiales multiples sur (dans un premier temps) 4 couches. Pour ceux qui ont l'habitude de travailler avec une base de données Spatialite, je pense que la solution va être assez simple. J'ai lu plusieurs choses sur différents sites mais je n'arrive à aucun résultat (je débute...).
Pour aller plus loin : j'ai
- une couche de type polyligne "A"
- une couche de type polyligne "B"
- une couche de type point "C" avec un champ qui recence deux types d'objet "1" et "2" (ces points sont accrochés aux extremités de ma polyligne "A")
- une couche de type point "D" avec un champ qui recence deux types d'objet "3" et "4" (ces points sont accrochés aux extremités de ma polyligne "B")

J'aimerais pouvoir créer une couche de points qui se situeront soit sur le premier point (point amont soit xat(0)) de ma polyligne "A" ou sur le premier point de ma polyligne "B" qui n'intersectera pas de points de type "1" de la couche "C" sur l'extremité de ma polyligne "A" (je nommerai ces points "carre" dans un champ "TYPE" dans une nouvelle couche "E") et qui n'intersectera pas de point de type "3" sur l'extremité de ma polyligne "B" ((je nommerai ces points "rond" dans un champ "TYPE" dans une nouvelle couche "F").

Si c'est possible, je suis ravi. Et ce sera l'occasion de me pencher plus sérieusement sur les requêtes SQL dans les bases de données (depuis le temps...).

D'avance merci pour votre aide

PS : en espérant avoir été assez clair... :-/

Hors ligne

 

#2 Wed 20 March 2019 13:28

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: QGIS: Requete SQL dans une base de données spatialite

Je commencerai par créer tous les points possibles avec 2 requêtes Insert Into. Ensuite je supprimerais les points qui ne respectent pas vos critères avec des requêtes Delete...from...where. Enfin, j'éliminerais les doublons.

Hors ligne

 

#3 Wed 20 March 2019 14:55

TLSR
Participant occasionnel
Date d'inscription: 1 Feb 2019
Messages: 17

Re: QGIS: Requete SQL dans une base de données spatialite

Bonjour, je veux pas trop m'avancer, mais je pense que tu peux essayer quelque chose comme ceci. Notamment avec les fonction sql startpoint et endpoint. Qui renvoient le point amont et aval d'un objet linéaire (tronçon)

Code:

Select startpoint(A.geom) as amont_A, startpoint(B.geom) as amont_B 
from A,B 
where st_intersects(amont_A.geom,(select geom from C where type=1) is false 
and st_intersects(amont_B.geom,(select geom from D where type=3) is false

Je ne suis pas sûre de la syntaxe pour les sous requêtes, mais dans la logique ça pourrait marcher. Dans tout les cas, je te conseil de faire cela étapes par étapes dans un premier temps.

Tiens moi au courant du résultat.

Hors ligne

 

Pied de page des forums

Powered by FluxBB