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

GEODATA DAYS 2024

#1 Thu 14 April 2022 14:21

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1656

QGIS: Orientation atlas

Bonjour,
Je dois effectuer un atlas sur les parcelles traversées par une ligne électrique.
La ligne électrique est grosso-modo nord sud. Je voudrais qu'elle s'affiche pour chaque plan à l'horizontale.
Comment faire?
Merci.

Hors ligne

 

#2 Thu 14 April 2022 15:22

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 992

Re: QGIS: Orientation atlas

[off] C'est assez impressionnant le nombre de demandes que vous faites quotidiennement sur QGis.
Personnellement, je ne sais pas répondre à la question "comme ça". Mais en cherchant sur GeoRezo, sur les moteurs de recherche, on fini par trouver : la quête est souvent plus formatrice qu'une solution donnée.

[/off]

Du coup, voici comment je procèderais :
1) j'ajouterais un champ "orientation_ligne_elec" à la couche sur laquelle est basée l'Atlas (ici des parcelles)
2) je calculerais ce champs l'orientation moyenne de la ligne électrique pour chaque entité de l'Atlas (chaque parcelle, donc)
3) dans le composeur d'impression, dans les propriétés de la carte (sous l'échelle), je modifierais le champ "rotation de la carte", par défaut à 0, par une expression de type :

Code:

attribute(@atlas_feature,'orientation_ligne_elec')

Pour l'étape n°2, ce n'est pas si évident, mais en recherchant sur G**gl*, on trouve par exemple ceci :
https://archeomatic.wordpress.com/2012/ … polyligne/


Sylvain M.

Hors ligne

 

#3 Thu 14 April 2022 15:39

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1656

Re: QGIS: Orientation atlas

[off]

C'est assez impressionnant le nombre de demandes que vous faites quotidiennement sur QGis.
Personnellement, je ne sais pas répondre à la question "comme ça". Mais en cherchant sur GeoRezo, sur les moteurs de recherche, on fini par trouver : la quête est souvent plus formatrice qu'une solution donnée.


Oui je sais. Si je fais autant de demandes, c'est parce que les demandes sont multiplies et variées qui supposent une réponse rapide.
Désolé j'espère ne pas être trop encombrant.
[/off]

Hors ligne

 

#4 Thu 14 April 2022 15:43

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 992

Re: QGIS: Orientation atlas

Pour le 2) en lisant les commentaires de la page d'Archeomatic, il propose une formule plus simple à la fin :

Code:

degrees( azimuth( start_point($geometry), end_point($geometry) ) )

Ce qui doit être calculé pour chaque tronçon de ligne électrique, découpée par les parcelles cadastrales, puis renvoyé dans la couche des parcelles via une jointure spatiale ou attributaire.


Sylvain M.

Hors ligne

 

#5 Thu 14 April 2022 15:48

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 992

Re: QGIS: Orientation atlas

c'est parce que les demandes sont multiplies et variées qui supposent une réponse rapide.


Il faut parfois savoir temporiser les demandes wink Pas toujours facile, mais attention à ne pas encourager les demandes avec des délais trop courts.


Sylvain M.

Hors ligne

 

#6 Thu 14 April 2022 16:13

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1656

Re: QGIS: Orientation atlas

mais attention à ne pas encourager les demandes avec des délais trop courts.


Merci du conseil.

En fait ma demande est imprécise. L'atlas est au 1/2500ème.
Il s'agit de mettre l'ensemble de la ligne sur le plan de la parcelle de l'atlas.
Il faut que la ligne soit lue comme allant d'est en ouest, ou d'ouest en est si vous voulez, l'important est qu'elle doit être lue de manière horizontale.
Merci encore.

Hors ligne

 

#7 Thu 14 April 2022 16:51

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 992

Re: QGIS: Orientation atlas

En fait ma demande est imprécise. L'atlas est au 1/2500ème.


Cela ne change rien à la solution proposée, qui ne concerne que l'orientation de la mise en page.
La solution que je propose fonctionne "en théorie" avec un atlas à échelle fixe.


Sylvain M.

Hors ligne

 

#8 Thu 14 April 2022 17:02

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 992

Re: QGIS: Orientation atlas

Je viens de tester la formule [1] proposée avec un Atlas dans QGis, ça fonctionne bien smile :
capture écran QGis

[1] formule de calcul d'après un champ "orientation_ligne_elec" dans les attribut de la couche d'Atlas :

Code:

attribute(@atlas_feature,'orientation_ligne_elec')

Dernière modification par Sylvain M. (Thu 14 April 2022 17:06)


Sylvain M.

Hors ligne

 

#9 Thu 14 April 2022 17:21

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1656

Re: QGIS: Orientation atlas

Mais il peut y avoir plusieurs inclinaisons de la ligne qui est représentée dans le plan de la parcelle.
Si j'ai bien compris, il faut :
- calculer l'inclinaison de chaque segment de la ligne. Problème la ligne ne comporte qu'une seule entité. Il faudrait éclater la ligne à chaque changement de direction
- une fois calculé l'inclinaison de chaque segment, il faut attribuer à ce segment un angle qui le rende lisible à l'horizontale (comment faire?)
- ensuite attribuer au plan de l'atlas, l'inclinaison du segment, dont l'inclinaison à l'horizontale a été calculé, qui intersecte la parcelle de l'atlas.

Hors ligne

 

#10 Thu 14 April 2022 17:34

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1656

Re: QGIS: Orientation atlas

Il est vrai que je partais sur une fausse piste, je partais sur le calcul des angle de la ligne. Il faut autant que possible rester sur la couche de l'atlas. C'est plus facile.

J'ai utilisé l'expression sur la couche des parcelles de l'atlas
degrees( azimuth( start_point($geometry), end_point($geometry) ) )

mais cela ne calcule que l'angle sur une seule entité...

Hors ligne

 

#11 Fri 15 April 2022 19:43

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1656

Re: QGIS: Orientation atlas

En supposant que j'arrive à calculer intégralement l'angle de chaque parcelle, je voudrais savoir comment peut-on l'incliner de façon à la voir de façon horizontale comme expliqué dans ma pièce jointe?
Merci.


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

Hors ligne

 

#12 Sat 16 April 2022 12:47

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1656

Re: QGIS: Orientation atlas

je voudrais savoir comment peut-on l'incliner de façon à la voir de façon horizontale


Dans l'atlas

Hors ligne

 

#13 Wed 20 April 2022 09:55

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 992

Re: QGIS: Orientation atlas

Dans votre pièce jointe, la demande ne correspond plus à la demande initiale :
- initial : orientation de la mise en page en fonction de la ligne électrique
- PJ : orientation de la mise en page en fonction de l'orientation de la parcelle

Quel que soit le besoin, la solution proposée précédemment fonctionne :
- soit en calculant l'orientation de la ligne électrique au sein de la parcelle (par découpage puis calcul de l'azimuth pour l'entitée découpée)
- soit en calculant l'orientation de la parcelle


Sylvain M.

Hors ligne

 

#14 Wed 20 April 2022 10:12

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 992

Re: QGIS: Orientation atlas

Sinon, pour le calcul de l'orientation de la parcelle, il y a une nouvelle fonction depuis QGis 3.16 : main_angle($geometry)


Sylvain M.

Hors ligne

 

#15 Wed 20 April 2022 17:52

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1656

Re: QGIS: Orientation atlas

Merci j'arrive à moduler l'inclinaison de la carte en fonction de l'angle de la ligne qui est intersectée dans la parcelle de l'atlas.
Mais, l'angle de la ligne est le réel, or ce que je voudrais c'est de mettre la ligne électrique à l'horizontale.
Si la ligne est à 60°, alors elle sera à 0°.
Ce que j'ai pu faire :
- calculer effectivement l'angle de la ligne réel dans un champ "angle"
- dans un champ angle 2 :
          - pour les valeurs d'angle inférieures à 90° dans le champ "angle", faire le calcul suivant : 90 - "angle"
          - pour les valeurs d'angle supérieures à 90° dans le champ "angle", faire le calcul suivant : (360 - "angle") + 90

Ces calculs permettent à chaque fois de voir la ligne à l'horizontale dans l'atlas.

Hors ligne

 

#16 Wed 20 April 2022 17:56

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1656

Re: QGIS: Orientation atlas

Si la ligne est à 60°, alors elle sera à 0°.


Si la ligne est à 60°, alors elle sera à 60°.

Hors ligne

 

#17 Fri 22 April 2022 11:04

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 992

Re: QGIS: Orientation atlas

Ces calculs permettent à chaque fois de voir la ligne à l'horizontale dans l'atlas.


Du coup, si je comprends bien, vous avez réussi ?
Ou vous bloquez encore sur quelque chose ?


Sylvain M.

Hors ligne

 

#18 Fri 22 April 2022 11:15

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1656

Re: QGIS: Orientation atlas

Du coup, si je comprends bien, vous avez réussi ?


C'est tout bon. Je vous remercie pour vos pistes.
Par contre, pour y parvenir je dois créer un champ "angle" pour calculer l'angle réel et un champ "angle 2" pour l'angle à l'horizontale.
          - pour les valeurs d'angle inférieures à 90° dans le champ "angle", faire le calcul suivant : 90 - "angle"
          - pour les valeurs d'angle supérieures à 90° dans le champ "angle", faire le calcul suivant : (360 - "angle") + 90


J'ai bien essayé de calculer directement sur un seul champ l'angle à l'horizontale avec cette expression :

Case when main_angle($geometry) < 90 then 90 - main_angle($geometry) else 360-main_angle($geometry)+90 end


Mais cela ne fonctionne que pour les valeurs d'angle réel < 90

Hors ligne

 

#19 Fri 22 April 2022 15:53

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1656

Re: QGIS: Orientation atlas

Case when main_angle($geometry) < 90 then 90 - main_angle($geometry) else 360-main_angle($geometry)+90 end


main_angle($geometry) est l'expression qui permet de calculer l'angle réel dans le champ "angle"

Hors ligne

 

Pied de page des forums

Powered by FluxBB