PM Tiles : les tuiles vectorielles au secours des pompiers
Rose Mathelier
Depuis 2019, Camptocamp accompagne l'Agence du Numérique de la Sécurité Civile (ANSC) dans le développement de NexSIS, le système d'information des pompiers et de la sécurité civile, désormais en production dans 20 Services d'Incendie et de Secours (SIS).
Dans NexSIS, la cartographie est centrale. Alertes, opérations, véhicules : tout est localisé. Un fond de plan à jour, lisible et performant est donc une pièce essentielle pour fournir des informations contextuelles, parfois cruciales dans le traitement d'une situation d'urgence.
Cet article présente un retour d'expérience sur la création d'un fond de plan vectoriel servi par des PM Tiles, des premiers essais à l'intégration fonctionnelle sur la plateforme NexSIS.
Experimenter
Pourquoi un nouveau fond de plan ?
La question est légitime. NexSIS propose déjà plusieurs fonds de plan, alors pourquoi en rajouter un à la liste ?
NexSIS offre à ses utilisateurs plusieurs fonds de plan complémentaires, exposés par GeoServer Cloud et basés sur des données stockées dans une base PostGIS. L'un de ces fonds est basé sur les données mondiales d'OpenStreetMap. L'import de ces données volumineuses est assez complexe et prend du temps. Cette tâche est donc parfois dépriorisée au profit d'autres tâches plus urgentes. Conséquence : les données sont datées, et le risque de passer à côté d'une information importante augmente.
Des fonds de plan basés sur des flux externes sont aussi disponibles, mais leur disponibilité ne peut pas être garantie car on ne contrôle pas le service : ce n'est donc pas une solution viable pour un système d'importance vitale.
Pourquoi le format PM Tiles ?
PM Tiles est un format de l'écosystème Protomaps qui stocke une pyramide de données tuilées, raster ou vectorielles, dans un unique fichier myfile.pmtiles, avec un index interne optimisé. Ce fichier peut contenir les données pour la Terre entière !
Un fichier PM Tiles est généralement associé à un style au format Mapbox Style.
L'avantage de cette solution est la simplification des mises à jour : un seul fichier à regénérer, sans écriture en base de données, et un coût de stockage minimal.
En outre, le format vecteur offre un rendu visuel plus fluide et des possibilités de customisation.
Valider la faisabilité
Pour initier ce travail, nous avons réalisé un mini-projet OpenLayers (la librairie cartographique utilisée dans NexSIS), avec deux objectifs : afficher le contenu d'un fichier PM Tiles sur la carte, et lui appliquer un style.
Avec OpenLayers, si plusieurs outils existent pour lire et afficher les tuiles, l'intégration du style est plus complexe, car le format Mapbox Style (le standard pour les tuiles vectorielles) n'est pas supporté nativement.
La solution a été trouvée parmi les projets existants Camptocamp, avec la librairie ol-maplibre-layer. Cet outil permet de créer une couche MapLibre dans une carte OpenLayers, bénéficiant ainsi d'une meilleure intégration des PM Tiles (et des tuiles vectorielles en général).
Structurer
Intégration dans le projet
NexSIS propose par défaut un fond de plan OpenStreetMap sur ses cartes opérationnelles. C'est donc le plus utilisé, mais aussi le plus complexe à mettre à jour. Par chance, Protomaps propose des fichiers PM Tiles, basés sur les données OSM et générés régulièrement, avec plusieurs styles associés. Nous pouvons donc l'utiliser comme base pour un nouveau fond de plan OSM, sans avoir besoin de générer nos propres PM Tiles.
Nous stockons le fichier PM Tiles sur un Object Storage. Afin d'empêcher un accès direct, nous utilisons un serveur de tuiles, qui diffuse le contenu du fichier via une API TMS (XYZ) plus classique.
Pour ce cas d'usage, nous avons utilisé Martin, une solution de l'écosystème MapLibre. Martin supporte plusieurs types de source différents (notamment les PM Tiles raster) et offre la possibilité de faire du cache.
L'architecture finale est donc la suivante :
Mise à disposition
Afin de tester le rendu et les performances en conditions réelles, nous avons mis le fond de plan à disposition dans NexSIS en mode optionnel : il est proposé, mais pas activé par défaut. Ainsi, on valide l'architecture sur les environnements déployés, sans perturber les activités de production.
Les utilisateurs sont invités à tester ce nouvel outil à leur rythme et à remonter leurs impressions, et les équipes de développement peuvent monitorer en parallèle l'évolution de la consommation réseau. Ces essais et métriques montrent jusqu'ici des performances acceptables, et valident le démarrage de travaux pour enrichir ce fond de plan et lui donner une vraie valeur métier.
Enrichir
Customiser le style
Les utilisateurs sont habitués à travailler avec le fond de plan OSM (ses données et son style). Nous devons donc en préserver au maximum les caractéristiques visuelles - choix des données représentées, couleurs, ponctuels - car un changement trop drastique pourrait les désorienter et leur faire perdre en efficacité.
Il est donc souhaitable de customiser le style pour se rapprocher du rendu OpenStreetMap :
A gauche, le style OSM d'origine. A droite, le travail en cours pour le reproduire dans un style Mapbox adapté aux PM Tiles
Ajouter une nouvelle information : l'estompage
L'estompage permet de représenter visuellement le relief sur une carte en dessinant les ombres portées. C'est souvent un complément intéressant pour représenter un lieu avec plus de réalisme, en particulier dans les zones montagneuses. Un avantage non-négligeable dans certains départements comme le SDIS de la Corse du Sud, premier département à avoir utilisé NexSIS.
L'ombrage permet aux utilisateurs de se représenter plus fidèlement la morphologie du territoire.
Conclusion
Ce travail sur les PM Tiles ouvre de nombreuses possibilités techniques vers une utilisation plus large des tuiles vectorielles dans NexSIS, et une customisation plus poussée des fonds de plan. Surtout, il apporte deux améliorations majeures : un rendu moderne, fluide et personnalisable, mais aussi une facilité de mise à jour qui permet d'afficher des données récentes pour les utilisateurs, et libère les administrateurs de données d'une tâche complexe et chronophage.
Carrière
Vous souhaitez travailler dans un environnement inspirant et rejoindre nos équipes motivées et multiculturelles ?