Annonce
Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !
10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …
Retrouver nos membres bienfaiteurs
Pages: 1
- Sujet précédent - QGIS: Plantage pendant la création d'une couche virtuelle - Sujet suivant
#1 Mon 06 March 2017 12:51
- fnixou
- Participant actif
- Date d'inscription: 22 Feb 2017
- Messages: 82
QGIS: Plantage pendant la création d'une couche virtuelle
Salut à tous je me retrouve face à un problème un peu gênant, en effet quand j'essaye d’exécuter une requête pour créer une couche virtuelle mon QGIS plante ( minidump )
et le message dans le rapport de bug est le suivant : "Le thread a tenté de lire à partir d'une adresse virtuelle ou d'écrire vers une adresse virtuelle pour laquelle il ne dispose pas d'un accès appropriés".
Cela provient surement de la requête que je vous poste également.
J'espère que quelqu'un aura une idée car pour le moment c'est sacrément vide de mon côté
SELECT t3.label ,
SUM(t3.NBHAB) AS TOTHAB
FROM (SELECT t1.label,
area(intersection(t1.geometry, t2.geometry))/area(t2.geometry)*t2.DONNEESP10 as NBHAB
FROM test_fusion AS t1,
test_iris AS t2
WHERE st_intersects(t2.geometry, t1.geometry)) t3
GROUP BY t3.label
Merci d'avance.
Hors ligne
#2 Mon 06 March 2017 16:07
- michel56
- Participant assidu
- Lieu: Lorient
- Date d'inscription: 14 Jul 2012
- Messages: 474
Re: QGIS: Plantage pendant la création d'une couche virtuelle
Bonjour,
pour la fonction st_intersects il faut mettre un alias
WHERE st_intersects(alias1, alias2)
Opérateur cartographique & DAO & PHP.
Hors ligne
#3 Mon 06 March 2017 16:14
- fnixou
- Participant actif
- Date d'inscription: 22 Feb 2017
- Messages: 82
Re: QGIS: Plantage pendant la création d'une couche virtuelle
a moins que je n ai pas bien compris votre réponse mais t1 et t2 sont bien des alias dans ma requête . Si vous pouviez préciser du coup ce que vous souhaitiez pointer dans la requête je vous en serai gré , car la je suis un poil perdu .
Hors ligne
#4 Mon 06 March 2017 17:52
- michel56
- Participant assidu
- Lieu: Lorient
- Date d'inscription: 14 Jul 2012
- Messages: 474
Re: QGIS: Plantage pendant la création d'une couche virtuelle
OUI OK
mets juste l'alias
Code:
WHERE st_intersects(t2, t1)
et tu es sur que intersection() est une fonction?
Le deuxième SELECT ne serait pas plutôt dans la clause where
Tu devrais utiliser le gestionnaire de base de données pour faire ta requête, la fenêtre sql et l'assistant.
Une requête sur deux tables c'est déjà compliqué mais sur 3 bon courage.
Une requête sur deux tables qui fonctionne si ça peut t'aider.
Code:
SELECT "CouchePoints"."geometry" AS G_CouchePoints, "CouchePoints"."annee", "CouchePolygones"."geometry" AS G_CouchePolygones, "CouchePolygones"."NomCommunes", Sum("CouchePoints"."Nb") AS SumCouchePoints, Count("CouchePoints"."geometry") AS CountCouchePoints FROM "CouchePoints", "CouchePolygones" WHERE ST_Within("G_CouchePoints","G_CouchePolygones") GROUP BY "CouchePoints"."annee", "CouchePolygones"."NomCommunes" ORDER BY "CouchePoints"."annee" ASC, "CouchePolygones"."NomCommunes" ASC
Dernière modification par michel56 (Mon 06 March 2017 18:58)
Opérateur cartographique & DAO & PHP.
Hors ligne
#5 Tue 07 March 2017 10:16
- fnixou
- Participant actif
- Date d'inscription: 22 Feb 2017
- Messages: 82
Re: QGIS: Plantage pendant la création d'une couche virtuelle
la fonction intersection existe belle et bien elle permet de créer un nouvelle objet a partir de l intersection des objets 1 et 2 si je ne me trompe pas.
A priori non le select est bien dans le from l'idée étant de créer une table 3 à partir de 1 et 2 et d'en extraire la donnée nbhab pour chaque label.
Pour faire simple j'ai 2 couches qui se superposent et j'aimerai calculer la quantité d'habitants dans la seconde couche à partir de mes données dans la première couche.
Merci en tout cas du coup de main.
Dernière modification par fnixou (Tue 07 March 2017 10:16)
Hors ligne
#6 Tue 07 March 2017 10:55
- michel56
- Participant assidu
- Lieu: Lorient
- Date d'inscription: 14 Jul 2012
- Messages: 474
Re: QGIS: Plantage pendant la création d'une couche virtuelle
Bonjour,
intersection() c'est une fonction QGIS qui fonctionne dans une expression.
Dans une requête SQL ?.
Pour tes deux couches, quelle est la relation entre les deux tables.
Dernière modification par michel56 (Tue 07 March 2017 10:56)
Opérateur cartographique & DAO & PHP.
Hors ligne
#7 Tue 07 March 2017 12:38
- fnixou
- Participant actif
- Date d'inscription: 22 Feb 2017
- Messages: 82
Re: QGIS: Plantage pendant la création d'une couche virtuelle
J'utilise l'ajout de couche virtuelle de QGIS mes 2 couches sont des shp donc non contenu dans une quelconque base ( je peux éventuellement les ajouter à un postgre+postgis si nécessaire mais je doute que ça change la donne )
Pour ce qui est de intersection l'ajout de couche virtuelle de Qgis utilise SQLite et spatialite comme moteur et cette fonction est incluse dans Spatialite.
Voilà pour le petit topo j'espère que ça t'aidera.
Hors ligne
#8 Tue 07 March 2017 12:58
- michel56
- Participant assidu
- Lieu: Lorient
- Date d'inscription: 14 Jul 2012
- Messages: 474
Re: QGIS: Plantage pendant la création d'une couche virtuelle
Bonjour
Tu as essayé avec le gestionnaire de base de données et l'assistant.
Dans la liste des fonctions il y bien ST_intersection()
Opérateur cartographique & DAO & PHP.
Hors ligne
#9 Tue 07 March 2017 15:07
- fnixou
- Participant actif
- Date d'inscription: 22 Feb 2017
- Messages: 82
Re: QGIS: Plantage pendant la création d'une couche virtuelle
C'est ce sur quoi je planche actuellement et j'ai également décomposé ma requête en 2 étapes.
Dans un premier temps je crée ma table T3 et je vais la requêter ensuite (le traitement était surement trop lourd pour QGIS )
Hors ligne
#10 Tue 07 March 2017 18:06
- fnixou
- Participant actif
- Date d'inscription: 22 Feb 2017
- Messages: 82
Re: QGIS: Plantage pendant la création d'une couche virtuelle
Finalement je suis passé sur postgre j'ai créé mes tables et ma requête ne me fait plus planter qgis mais je me retrouve avec une erreur de topologie sur mes données j'avance mais j'ai vraiment l'impression d'y aller à pas d'escargots.
Enfin bon je finirai bien par réussir :p
Hors ligne
Pages: 1
- Sujet précédent - QGIS: Plantage pendant la création d'une couche virtuelle - Sujet suivant