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 05 November 2024 08:07

eliezer
Juste Inscrit !
Date d'inscription: 4 Nov 2024
Messages: 1

téléchargement de plan de situation centré sur chaque points

Bonjour,

j'essaie de télécharger le plan de situation de chaque point de mon réseau. cela me permettra de remplir une fiche technique avec une photo du SIG avec le regard au centre.

j'ai réussi à trouver comment télécharger le canvas QGIS en cours et ajuster le niveau de zoom.

mon soucis est que la capture est fait avant que Qgis déplace mon point. j'ai fais des tests en mettant mon canvas dans un endroit inconnu avant de lancer mon script python. l'image qui en résulte est l'image de l'endroit que j'ai choisi au hasard avant que qgis centre le canvas sur mon point.

la conséquence est que lorsque je passe en prod la capture du canvas n'est pas juste parce qu'il est sur le point précédent.

j'espère avoir été bien explicite voici un fichier teste ?

https://www.grosfichiers.com/4DEs3Rdment

Code:

from qgis.core import *
from PyQt5.QtCore import QDateTime, QTimer
import os
from qgis.utils import iface

# Récupérer l'instance du projet
project = QgsProject.instance()
regards = project.mapLayersByName("fiche_regard fiche_reg")[0]

# Créer un répertoire si nécessaire
output_dir = "R:/Commun/Eliezer/developpement en cours/fiche_SAUR/"
if not os.path.exists(output_dir):
    os.makedirs(output_dir)
   
# Récupérer les entités (features) de la couche et les convertir en liste

def capture_plan(nom_image):
       
        point_geom = QgsGeometry.fromPointXY(QgsPointXY(495521.80476182291749865, 6913526.50558853521943092))
        # Récupérer les coordonnées du point
        point = point_geom.asPoint()
        iface.mapCanvas().saveAsImage(os.path.join(output_dir, f"{nom_image}.jpg"))
        buffer_size = 21
        extent = iface.mapCanvas().extent()
        extent.setXMinimum(point.x() - buffer_size)
        extent.setXMaximum(point.x() + buffer_size)
        extent.setYMinimum(point.y() - buffer_size)
        extent.setYMaximum(point.y() + buffer_size)
            # Appliquer l'extension et rafraîchir la carte
        iface.mapCanvas().setExtent(extent)
        iface.mapCanvas().refresh()
        QgsApplication.processEvents()  # Forcer le traitement des événements

       
capture_plan("PAR_REG_578")

Hors ligne

 

#2 Tue 05 November 2024 11:24

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

Re: téléchargement de plan de situation centré sur chaque points

Ce que vous souhaitez faire ressemble très fortement à un Atlas dans QGis, et c'est une fonctionnalité de base accessible sans programmation :
https://www.sigterritoires.fr/index.php … avec-qgis/

Avez-vous exploré ces possibilités ?

Dernière modification par Sylvain M. (Tue 05 November 2024 11:24)


Sylvain M.

Hors ligne

 

Pied de page des forums

Powered by FluxBB