#1 Fri 18 December 2020 17:05
- WALTY77
- Juste Inscrit !
- Date d'inscription: 18 Dec 2020
- Messages: 6
QGIS: Doublons et Distance
Bonjour,
Je possède une table de ce type avec plusieurs entités :
Nom Coord_X Coord_Y Profession Type
Didier 36.2 48.7 Docteur Médecin Généraliste
Pierre 37.5 24 Pompier Autre
Paul 57 21 Docteur Autre
Je souhaite savoir s’il y a un moyen d’afficher les nom avec la profession de Docteur par exemple sur un rayon de 2KM sur la map
J’ai commencé à créer une requête de ce type:
CASE WHEN
count("Nom","") >0 and
distance( Coordonné X Coordonné Y, Coordonné X Coordonné Y)>2km
THEN " Profession "
ELSE 0
END
Savez-vous si ma requête est faisable sur QGIS ?
Merci
Dernière modification par WALTY77 (Thu 24 December 2020 10:42)
Hors ligne
#2 Sat 19 December 2020 13:30
- WALTY77
- Juste Inscrit !
- Date d'inscription: 18 Dec 2020
- Messages: 6
Re: QGIS: Doublons et Distance
Bonjour
une idée svp? je dois passer par une matrice de distance?
Merci
Hors ligne
#3 Sun 20 December 2020 13:07
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS: Doublons et Distance
Bonjour,
Je souhaite savoir s’il y a un moyen d’afficher les nom avec la profession de Docteur par exemple sur un rayon de 2KM sur la map
J'ai pas compris votre besoin. Vous voulez n'afficher que le nom des docteurs ?
Code:
case when profession = 'Docteur' then nom end
Que signifie "rayon de 2km sur la map"? Depuis le centre de la carte où une entité particulière ?
Hors ligne
#4 Sun 20 December 2020 16:40
- WALTY77
- Juste Inscrit !
- Date d'inscription: 18 Dec 2020
- Messages: 6
Re: QGIS: Doublons et Distance
Bonjour
J'ai pas compris votre besoin. Vous voulez n'afficher que le nom des docteurs ?
Code:
exactement (enfin un filtre sur un champs particulier qui contient des doublons ou plus)
Que signifie "rayon de 2km sur la map"? Depuis le centre de la carte où une entité particulière ?
Code:
une entité particulière
(je me demande si ce nest pas plus simple de définir un plygon et ensuitefaire les calculs de la matrice distance et enfin afficher les doublons sur la carte)
Hors ligne
#5 Tue 22 December 2020 09:58
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS: Doublons et Distance
Bonjour,
Et cette entité particulière, elle change ou c'est la seule et unique dans le projet ?
En supposant que ce point est unique (plus facile pour moi que l'autre), dans les paramètres d'étiquettes de la couche :
- choisir le champ profession à afficher
- dans les paramètres de rendu de l'étiquette, vous avez des options d'affichage conditionnel (bouton valeurs définies par des données de "Afficher l'étiquette"). On pourrait imaginer de restreindre l'affichage à ceux qui sont dans le rayon de 2km (à vol d'oiseau) avec une expression du type
Code:
distance ($geometry, geometry(get_feature(***))) <2000
*** Regardez les exemples de get_feature ou get_feature_by_id dans QGIS, la Doc ou le forum pour voir comment indiquer une entité particulière. Ou vous pouvez effectivement générer votre polygone tampon de 2km et vérifier qu'il contient les entités.
Vos données sont en degrés ? Parce qu'alors il vous faudra "convertir" vos 2km, je crains. Ou inversement, vos données.
On pourrait ensuite imaginer une condition sur le paramètre de couleur de l'étiquette pour mettre en évidence les doublons (on compte le nombre d'entités de même profession dans le rayon et on les met en rouge si supérieur à 1. Je n'ai pas QGIS sous la main et ne puis pondre une expression correcte de tête, mais je vous invite à regarder les fonctions d'agrégats.
Hors ligne
#6 Tue 22 December 2020 11:52
- WALTY77
- Juste Inscrit !
- Date d'inscription: 18 Dec 2020
- Messages: 6
Re: QGIS: Doublons et Distance
Bonjour
Je vais essayer de partir sur votre solution en divisant le problème en 2 parties :
1- D’abord un filtrage par distance
2 -compter et afficher les doublons de ce filtre.
Je vais prendre le cas où nous connaissons l’entité d’entrée, votre idée est de faire un filtre dans les paramètres de rendu de l’étiquette, pour afficher les valeurs à moins de 2km, j’ai regardé un peu en fonction, je dois avoir quelque chose qui ressemble à ça ?
Code:
distance ($geometry, geometry(get_feature(’Nom_de_la_table’,’Coord_X’,’36.2’))) <2000
(En sortie je devrais avoir les entités de moins de 20KM que Didier) la requête fonctionne bien et elle me retourne les résultats dans un rayon de 2KM de ma coordonnée X.
Une autre question svp pour cette partie : est-ce qu’ il existe un moyen pour filtrer uniquement sur la colonne Nom au lieu de mettre les coordonnées à chaque fois ?(même résultat en entrant un nom au lieu de mettre des coordonnées.)
Concernant la partie 2 J'ai essayé de l'intégrer aussi dans le filtre de l'étiquette de la partie 1 (pour l'instant ca ne marche pas)
je dois avoir quelque chose de ce genre ? (la notion de filtrage par une autre colonne ne fonctionne pas )?
Code:
CASE WHEN count("Docteur","",filter='Médecin Généraliste') >1 and distance ($geometry, geometry(get_feature(’Nom_de_la_table’,’Coord_X’,’36.2’))) <'2000' THEN "Docteur" ELSE 0 END
Quel structure je dois mettre en œuvre pour exécuter le calcul de doublons uniquement sur mon filtre de distance .(en sortie j'ai des fausses résultats avec la bonne distance)
Merci à vous
Dernière modification par WALTY77 (Fri 25 December 2020 12:56)
Hors ligne
#7 Sun 27 December 2020 23:47
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS: Doublons et Distance
Bonjour,
Une autre question svp pour cette partie : est-ce qu’ il existe un moyen pour filtrer uniquement sur la colonne Nom au lieu de mettre les coordonnées à chaque fois ?(même résultat en entrant un nom au lieu de mettre des coordonnées.)
c'est vous qui choisissez par quoi vous filtrez. Donc oui, il suffit de remplacer le champ coordonnées et sa valeur par l'autre variable que vous voulez utiliser. Une précaution cependant, get_feature renvoie la première entité trouvée (utilisé certainement l'ordre d'ajout de la donnée), donc si vous avez deux Didier, il risque de renvoyer toujours le même résultat car se référant toujours au même gars.
Pour le cas 2, j'avoue ne plus bien comprendre ce que vous cherchez
(le then "docteur" else 0 end m'a perdu). mais pour ce qui est de la syntaxe de la condition, ça donnerait je pense (non testé)
Code:
count("profession", group_by:=type, filter:=distance ($geometry, geometry(get_feature(’Nom_de_la_table’,’Coord_X’,’36.2’))) <2000) > 1
pour vérifier (vrai/faux) par exemple s'il y a plus d'un médecin généraliste à moins de 2km.
Hors ligne
#8 Mon 28 December 2020 11:00
- WALTY77
- Juste Inscrit !
- Date d'inscription: 18 Dec 2020
- Messages: 6
Re: QGIS: Doublons et Distance
Bonjour,
Merci SANTANNA pour ce détail finalement j'avais réussi avec la fonction count, par contre le temps de calcul est très long car j'ai un fichier de 20.000 entités, je voulais savoir s'il n'y a pas une alternative pour réduire ce temps de calcul (environs 20 min) (par exemple exécuter mon calcul count que sur ma couche déjà préfiltrée avec la distance).
Merci à vous
Dernière modification par WALTY77 (Wed 30 December 2020 14:26)
Hors ligne
#9 Mon 28 December 2020 17:42
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS: Doublons et Distance
Ah oui, 20mn...
Euh oui, il y a plusieurs alternatives plus ou moins dynamiques, genre:
- utiliser l'outil de sélection par expression avec la partie distance, enregistrer la sélection en tant que nouvelle couche et appliquer la symbolique dessus avec le count.
- utiliser une couche virtuelle, toujours avec la requête de distance puis symbologie et count
- (jamais essayé de l'utiliser dans ce contexte) utiliser with_variable pour tagger/collecter les entités à proximité puis faire le count, mais là sans interface, je ne peux m'avancer du tout sur une formule
- les algorithmes de sélection d'entités et de repérage de doublons peuvent aussi aider. Mieux, en en faisant un modèle.
Hors ligne
#10 Wed 30 December 2020 14:26
- WALTY77
- Juste Inscrit !
- Date d'inscription: 18 Dec 2020
- Messages: 6
Re: QGIS: Doublons et Distance
Hello,
Merci pour votre retour,
je pense partir sur cette solution car c'est la solution la plus simple:
utiliser une couche virtuelle, toujours avec la requête de distance puis symbologie et count
Je voulais savoir comment intégrer une couche virtuelle à ma couche pour faire le calcul count dessus,(dois je refaire les id des colonnes ?)et ensuite comment relier les 2 couches ?
Merci
Hors ligne