#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 !
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
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 genreCode:
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