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

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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

 

Pied de page des forums

Powered by FluxBB