6.2 KiB
Intégration des analyses Osmose
Ce document décrit l'intégration des analyses Osmose dans les pages détaillées de thématique, à la fois pour les routes publiques et administratives.
Fonctionnalités implémentées
- Affichage d'une carte avec les analyses Osmose pour la thématique courante
- Affichage des analyses sous forme de points violets sur la carte
- Popups interactives avec:
- Titre et description de l'analyse
- Tags proposés (tableau clé-valeur)
- Bouton pour voir l'analyse sur Osmose
- Bouton pour réparer dans JOSM via la télécommande
Thèmes supportés
Les thèmes suivants sont actuellement supportés avec leurs IDs d'items Osmose correspondants:
Thème | IDs Osmose |
---|---|
charging_station (Bornes de recharge) | 8410, 8411 |
school (Écoles) | 8031 |
healthcare (Santé) | 8211, 7220, 8331 |
laboratory (Laboratoires d'analyses) | 7240, 8351 |
police (Commissariats) | 8190, 8191 |
defibrillator (Défibrillateurs) | 8370 |
Pour ajouter de nouveaux thèmes, modifiez la constante osmoseItemsMapping
dans les deux fichiers suivants:
templates/public/followup_graph.html.twig
(route publique)templates/admin/followup_theme_graph.html.twig
(route administrative)
Assurez-vous que les mappages sont identiques dans les deux fichiers pour garantir un comportement cohérent.
Fonctionnement technique
L'intégration est implémentée à la fois sur la route publique (templates/public/followup_graph.html.twig
) et sur la route administrative (templates/admin/followup_theme_graph.html.twig
). Le fonctionnement est similaire sur les deux routes:
- La carte est initialisée avec MapLibre GL JS
- Les coordonnées de la commune sont récupérées via l'API Geo.gouv.fr
- Une bounding box est calculée autour du centre de la commune
- Les analyses Osmose sont récupérées via l'API Osmose avec les paramètres:
- Les IDs d'items correspondant au thème
- La bounding box calculée
- Les niveaux de sévérité 1, 2 et 3
- Une limite de 500 résultats
- Les analyses sont affichées sous forme de points violets sur la carte
- Au clic sur un point, une popup s'ouvre et charge les détails de l'analyse via l'API Osmose
- La popup affiche les tags proposés et des boutons d'action
Différences entre les routes
- Route publique: La carte affiche uniquement les analyses Osmose.
- Route administrative: La carte affiche à la fois les objets OSM existants (récupérés via Overpass API) et les analyses Osmose, permettant une comparaison directe entre les objets existants et les suggestions d'ajout.
Exemple d'URL d'API Osmose
Pour les bornes de recharge (charging_station):
https://osmose.openstreetmap.fr/api/0.3/issues?zoom=12&item=8410,8411&level=1,2,3&limit=500&bbox=-0.789642333984375,47.35905994178323,-0.3203201293945313,47.598060753627195
Pour récupérer les détails d'une analyse:
https://osmose.openstreetmap.fr/api/0.3/issue/5c319a16-3689-b8c7-5427-187e04a6042a?langs=auto
Tests
Pour tester l'intégration:
Route publique
-
Accédez à une page de thématique détaillée publique, par exemple:
/stats/12345/followup-graph/charging_station
pour les bornes de recharge/stats/12345/followup-graph/school
pour les écoles/stats/12345/followup-graph/healthcare
pour les lieux de santé
-
Vérifiez que:
- La carte s'affiche correctement
- Les points violets apparaissent sur la carte (s'il y a des analyses Osmose pour cette thématique dans la zone)
- Au clic sur un point, une popup s'ouvre avec les détails de l'analyse
- Les boutons "Voir sur Osmose" et "Réparer dans JOSM" fonctionnent correctement
Route administrative
-
Accédez à une page de thématique détaillée administrative, par exemple:
/admin/stats/12345/followup-graph/charging_station
pour les bornes de recharge/admin/stats/12345/followup-graph/school
pour les écoles/admin/stats/12345/followup-graph/healthcare
pour les lieux de santé
-
Vérifiez que:
- La carte s'affiche correctement avec les objets OSM existants
- Les points violets des analyses Osmose apparaissent également sur la carte
- Au clic sur un point violet, une popup s'ouvre avec les détails de l'analyse
- Les boutons "Voir sur Osmose" et "Réparer dans JOSM" fonctionnent correctement
Dépannage
Problèmes généraux
Si la carte ne s'affiche pas correctement:
- Vérifiez que la variable d'environnement
MAPTILER_TOKEN
est correctement définie - Vérifiez les erreurs dans la console JavaScript du navigateur
Si les analyses Osmose ne s'affichent pas:
- Vérifiez que le thème a des IDs d'items Osmose associés dans
osmoseItemsMapping
- Vérifiez qu'il y a des analyses Osmose pour ce thème dans la zone
- Vérifiez les erreurs dans la console JavaScript du navigateur
Erreurs liées à l'API Osmose
Si vous rencontrez l'erreur "TypeError: right-hand side of 'in' should be an object, got undefined":
- Cette erreur peut se produire si l'API Osmose renvoie une réponse où
data.issue
est undefined - Vérifiez que la fonction
loadOsmoseIssueDetails
contient bien la vérificationif (!data || !data.issue) return;
avant d'utiliserdata.issue
- Si l'erreur persiste, vérifiez la structure de la réponse de l'API Osmose en ajoutant
console.log(data)
avant d'utiliserdata.issue
Problèmes spécifiques à la route administrative
Si les analyses Osmose s'affichent sur la route publique mais pas sur la route administrative:
- Vérifiez que la constante
osmoseItemsMapping
est correctement définie danstemplates/admin/followup_theme_graph.html.twig
- Vérifiez que le code d'initialisation des analyses Osmose est appelé après l'initialisation de la carte
- Vérifiez que les analyses Osmose ne sont pas masquées par d'autres éléments de la carte (comme les marqueurs des objets OSM existants)
Si les objets OSM existants et les analyses Osmose se chevauchent de manière confuse:
- Les analyses Osmose sont affichées avec des marqueurs violets pour les distinguer des objets OSM existants
- Vous pouvez ajuster la couleur des marqueurs Osmose en modifiant la valeur
color: '#8A2BE2'
dans la fonctionloadOsmoseAnalyses