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 Tue 07 June 2022 11:02

stephanie_j
Participant occasionnel
Lieu: Toulouse
Date d'inscription: 22 May 2017
Messages: 27

QGIS 3.16: orientation symbole ponctuel vers une cible

Bonjour
Je voudrais pouvoir orienter ces symboles ponctuels de manière automatique et non manuellement. J'ai trouvé des post similaires, mais ils ne répondent pas vraiment à mon problème car il prennent en compte des lignes (canalisation) et non des points !

Dans mon cas, j'ai 1 couche de point, et je voudrais que les symboles s'oriente vers un point cible d'une autre couche : il s'agit de points où des photos ont été prises en direction d'un parc éolien et je voudrais que les points apparaissent orientés vers l'éolienne comme je l'ai fait manuellement dans l'image en pj

merci à vous !


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 Wed 08 June 2022 14:55

G. Navennec
Juste Inscrit !
Date d'inscription: 23 Jan 2018
Messages: 4

Re: QGIS 3.16: orientation symbole ponctuel vers une cible

Bonjour,

Cela me parait être faisable, mais le fait que l'information sur l'orientation soit sur une autre couche ne facilite pas les choses.

En fait cela dépend également de ce que vous entendez par "automatique" :
- si vous souhaitez simplement que les symboles s'orientent tous seuls vers un point donné, il suffit de définir les paramètres de l'orientation en éditant la rotation et en se servant des outils de géométrie du constructeur de chaine d'expression SQL.
- si en revanche vous souhaitez que les symboles s'orientent tous seuls et qu'en plus ils se mettent à jour tous seul de manière à ce que leurs orientations "suivent" le point cible qui se trouve dans une autre couche si jamais il est modifié... c'est une autre paire de manche et je n'ai pas de solution simple sous le coude, désolé

Dernière modification par G. Navennec (Wed 08 June 2022 14:56)

Hors ligne

 

#3 Thu 09 June 2022 08:55

shirosaki
Participant actif
Lieu: Lyon
Date d'inscription: 30 Mar 2018
Messages: 125

Re: QGIS 3.16: orientation symbole ponctuel vers une cible

Bonjour,
en supposant que vous avez une couche 'origine' et une couche 'cible'
Dans un premier temps, les deux couches doivent être dans le même système de projection
Ensuite aller dans les propriétés de la couche 'origine' --> Symbologie --> Rotation --> cliquez sur le petit symbole à droite --> Editer
Renseignez une formule du genre

Code:

line_interpolate_angle(  
make_line(
$geometry,
geometry(get_feature( 'cible','id_c','0')
)
)
,0.0005)

Ici ma couche 'cible' est composée de plusieurs points et a un champ "id_c", la formule renvoie l'angle de la ligne que l'on peut tracer entre l'entité courante de 'origine' et de l'entité 'cible' ou "id_c" = '0' (formule à adapter pour votre cas)

après il suffira d'ajouter un offset à votre angle (45°, 180° ou autre) pour que l'orientation soit parfaite.

Ci-joint un projet Qgis "exemple" empaqueté dans un Geopackage : https://we.tl/t-WGeQmL8ZJt (à ouvrir dans Qgis --> Projet --> Ouvrir depuis --> Geopackage)

Dernière modification par shirosaki (Thu 09 June 2022 09:05)


Paul QUESNOT

Hors ligne

 

#4 Thu 09 June 2022 08:59

shirosaki
Participant actif
Lieu: Lyon
Date d'inscription: 30 Mar 2018
Messages: 125

Re: QGIS 3.16: orientation symbole ponctuel vers une cible

shirosaki a écrit:

Bonjour,
en supposant que vous avez une couche 'origine' et une couche 'cible'
Dans un premier temps, les deux couches doivent être dans le même système de projection
Ensuite aller dans les propriétés de la couche 'origine' --> Symbologie --> Rotation --> cliquez sur le petit symbole à droite --> Editer
Renseignez une formule du genre

Code:

line_interpolate_angle(  
make_line(
$geometry,
geometry(get_feature( 'cible','id_c','0')
)
)
,0.0005)

Ici ma couche 'cible' est composée de plusieurs points et a un champ "id_c", la formule renvoie l'angle de la ligne que l'on peut tracer entre l'entité courante de 'origine' et de l'entité 'cible' ou "id_c" = '0' (formule à adapter pour votre cas)

après il suffira d'ajouter un offset à votre angle (45°, 180° ou autre) pour que l'orientation devienne automatique.

Ci-joint un projet Qgis "exemple" empaqueté dans un Geopackage : https://we.tl/t-WGeQmL8ZJt (à ouvrir dans Qgis --> Projet --> Ouvrir depuis --> Geopackage)


Si vous voulez que vos symboles symboles soient orientés vers le point 'cible' le plus proche, il faut utiliser une formule du genre :

Code:

line_interpolate_angle(  
make_line(
$geometry,
overlay_nearest('cible',$geometry)[0]
)
)
,0.0005)

Paul QUESNOT

Hors ligne

 

#5 Thu 09 June 2022 11:55

stephanie_j
Participant occasionnel
Lieu: Toulouse
Date d'inscription: 22 May 2017
Messages: 27

Re: QGIS 3.16: orientation symbole ponctuel vers une cible

Merci beaucoup, c'est exactement ce que je cherchais à faire !!!

Hors ligne

 

#6 Fri 10 June 2022 11:42

stephanie_j
Participant occasionnel
Lieu: Toulouse
Date d'inscription: 22 May 2017
Messages: 27

Re: QGIS 3.16: orientation symbole ponctuel vers une cible

Bonjour,
Pour la 2nde formule, je l'ai un peu modifié pour qu'elle marche :

Code:

line_interpolate_angle(  
make_line(
$geometry,
overlay_nearest('cible',$geometry,limit:=1
)
)
,0.0005)

Hors ligne

 

Pied de page des forums

Powered by FluxBB