#1 Tue 19 March 2019 22:16
- GlaDal
- Participant assidu
- Date d'inscription: 30 Aug 2013
- Messages: 1103
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