Message posté par : Mathieu Denat
----------------------------------------
Bonsoir,
Je ne suis pas sur d'avoir saisi en détail les subtilités (je n'ai pas saisi à
quel comment intervient t1), une requête aurait été bienvenue! ;)
Si j'ai bien compris, l'idée est de tester l'intersection d'une couche
avec des zonages.
Personnellement je procéderais par étape (je pars du postulat que les parcelles ont un
identifiant unique : id_parcelle, et que vous travaillez sous postgreSQL):
1. sélection des tables qui intersectent mon zonage, je garde l'id unique et
l'info du zonage 1
2. idem pour le zonage 2
3. idem pour le zonage 3, etc, etc
4. je joins les différentes tables à ma table parcelle sur leur identifiant
-----------------
Code :
with
--pour les znieff
znieff as (
select distinct p.*, 'true'::boolean znieff
from parcelles p
join znieff tj on st_intersects(p.geom,tj.geom)
)
--pour natura2000
,n2000 as (
select distinct p.id, 'true'::boolean n2000
from parcelles p
join natura_2000 tj on st_intersects(p.geom,tj.geom)
)
---etc, etc ajouter autant de blocs que de zonages
-- étape finale: tout joindre
select distinct p.*, z.znieff, n.n2000
from parcelle p
left join znieff z on p.id_parcelle = z.id_parcelle
left join n2000 n on p.id_parcelle = n.id_parcelle
-----------------
Le résultat attendu est du type:
geom, id_parcelle, znieff, n2000, etc.
znieff et n2000 sont des booléens (valeur vrai/faux ou null).
Cette couche peut être intersectée avec la couche t1 (et éventuellement filtré au
préalable).
J'espère apporter un début de solution, bonne continuation.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=356887#p356887
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net