Bonjour,
Avez-vous réussi à intégrer les données de trafic en temps réel dans QGIS ? Est-ce que qqn aurait un tuto ?
Merci ![]()
Marie-Cécile.
Bonjour,
Avez-vous réussi à intégrer les données de trafic en temps réel dans QGIS ? Est-ce que qqn aurait un tuto ?
Merci ![]()
Marie-Cécile.
Bonjour VilleChelles77,
N’hésitez pas à me contacter par message privé, ou sur clautier at gmail point com
Une solution pour afficher les données de trafic en temps réel dans QGIS ?
Bonjour @simonmaurel,
Pour afficher les informations de trafic en temps réel dans QGIS à partir des données Waze, tu dois passer par une série d’étapes, car Waze ne fournit pas directement une couche SIG prête à l’emploi, mais propose une API GeoRSS ou JSON dans le cadre du programme Waze for Cities Partners (WFC/CCP). Voici les étapes clés :
Tu dois être partenaire pour accéder au flux de données en temps réel.
Deux options principales :
Layer > Add Layer > Add Vector LayerProtocol: HTTP avec l’URL du flux GeoJSONExtrais le flux brut depuis l’API (JSON)
Convertis les coordonnées x/y (lon/lat) en objets géométriques (ligne ou points) dans QGIS
Ajoute les entités dans une couche mémoire ou un GeoPackage
import json
from qgis.core import QgsProject, QgsPointXY, QgsFeature, QgsGeometry, QgsFields, QgsField, QgsVectorLayer
from PyQt5.QtCore import QVariant
# Charger le fichier JSON (local ou depuis l'API)
with open('/chemin/vers/ton/fichier.json', encoding='utf-8') as f:
data = json.load(f)
layer = QgsVectorLayer('LineString?crs=EPSG:4326', 'Trafic Waze', 'memory')
pr = layer.dataProvider()
pr.addAttributes([QgsField("name", QVariant.String), QgsField("jamLevel", QVariant.Int)])
layer.updateFields()
for route in data['routes']:
points = [QgsPointXY(coord['x'], coord['y']) for coord in route['line']]
fet = QgsFeature()
fet.setGeometry(QgsGeometry.fromPolylineXY(points))
fet.setAttributes([route.get("name", ""), route.get("jamLevel", 0)])
pr.addFeatures([fet])
layer.updateExtents()
QgsProject.instance().addMapLayer(layer)
Rédaction de la réponse aidée de ChatGPT.