#1 Sat 04 March 2017 09:10
- PaulH
- Participant assidu
- Lieu: Nantes
- Date d'inscription: 1 Aug 2007
- Messages: 463
QGIS: création de vue dans spatialite
Bonjour à tous,
Je suis en train de créer une petite BD ds spatialite et je souhaiterais créer des vues. Je n'ai pas encore testé et je préfère que vous m'expliquiez la logique et s'il y a des petites spécificités à ce SGBD.
Comment importe-t-on une couche dans spatialite correctement pr créer une vue? création d'un champ géométrique? index spatial?
Après dans la fenêtre de création de vue, c'est du SQL classique? J'ai cru voir qu'il fallait appelé le ID et le champ de geometry à chaque fois?
Merci pour vos conseils afin de bien débuter et construire cette BD !!!!
Paul Hedin
ex-luern
Hors ligne
#2 Mon 06 March 2017 16:44
- PaulH
- Participant assidu
- Lieu: Nantes
- Date d'inscription: 1 Aug 2007
- Messages: 463
Re: QGIS: création de vue dans spatialite
Je reviens vers vous car après essais, je n'arrive pas à créer de vue spatiale.
En test, j'utilise une couche de Corine Land Cover et une couche des périmètres des EPCI. Je souhaite avoir une vue avec les entités de CLC qui intersecte un EPCI en particulier (pk=104).
J'utilise l'écriture suivante:
CREATE VIEW CLC_test as
SELECT c.pk as ROWID, c.id, c.code_90, c.area_ha, c.geom
FROM CLC90 as c, epci_140306 as e
WHERE e.pk ('104') intersect c;
J'obtiens une erreur en résultat, voyez-vous d'où l'erreur peut venir svp??
D'avance merci beaucoup !!!
Paul Hedin
ex-luern
Hors ligne
#3 Mon 06 March 2017 19:15
- Lsam
- Participant assidu
- Date d'inscription: 27 Nov 2013
- Messages: 157
Re: QGIS: création de vue dans spatialite
Bonjour,
L'erreur vient de là :
WHERE e.pk ('104') intersect c;
Remplacer par :
Code:
WHERE e.pk = '104' and st_intersects(e.geom,c.geom) = 1 ;
J'ai supposé que la colonne géométrique de e s'appelle e.geom
Par contre, la requête est incomplète si vous voulez créer une vue spatiale de l'intersection de la couche CLC avec le périmètre de votre EPCI.
Il faut compléter par :
Code:
SELECT c.pk as ROWID, c.id, c.code_90, c.area_ha, st_intersection(c.geom,e.geom) as geometry
Dernière modification par Lsam (Mon 06 March 2017 19:28)
Hors ligne