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é ?

#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

 

Pied de page des forums

Powered by FluxBB