Message posté par : aheurion
----------------------------------------
Bonjour Giene,
J'ai l'impression qu'il y a une petite différence entre ce que tu dis et ce
que ton code tend à faire :
- ce que j'ai compris : tu souhaites vérifier que ton champ (appelons-le
"Mon_champ", de ta couche 'Ma_couche') contienne une info unique (dans
le cas où "champ_à_cocher" =0)
- ce que ton code tend à faire : il va chercher toutes les entités proches (<1000) dans
la couche 'points' (qui je suppose est la même que la couche 'Ma_couche'
?), et s'il y en a plusieurs il va appliquer ce qu'il y aura après le then (un
booléen dans ce cas)
Veux-tu donc vérifier si l'info est en doublon ou bien s'il y a une autre entité
trop proche ? Ou bien vérifier si l'info est en doublon mais uniquement parmi les
entités les plus proches ?
Pour ce dernier cas il faut rajouter une condition dans ton filtre et bien penser à écrire
cette expression dans le calculateur d'expression de la contrainte. Ce qui donnera
qqchose comme ça :
-----------------
Code :
with_variable(
'min_distance',
1000,
case
when
aggregate(
'points',
'count',
"fid",
distance(geometry(@parent), $geometry) < @min_distance
AND
"Mon_champ"=attribute('Mon_champ',@parent)
)>1
then 0
else 1
end
)
-----------------
then 0 : la contrainte a trouvé un doublon pour le champ et dans la distance
else 1 : aucun doublon ou au-delà de la distance => pas de contrainte
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=345118#p345118
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