Annonce
Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !
10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …
Retrouver nos membres bienfaiteurs
Pages: 1
- Sujet précédent - téléchargement de plan de situation centré sur chaque points - Sujet suivant
#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
Pages: 1
- Sujet précédent - téléchargement de plan de situation centré sur chaque points - Sujet suivant