Intégrer des cartes : Les solutions pour votre application métier

L’intégration de cartes et des diverses fonctionnalités cartographiques dans les applications métier est devenue un élément clé pour améliorer la visualisation et l’accès aux données géographiques. Ce besoin est notamment évident dans des applications nécessitant la manipulation de grandes quantités de données spatiales, comme celles utilisées dans l’urbanisme, la gestion immobilière, ou le suivi de projets d’infrastructure, le solaire etc. Cet article explore les technologies courantes et les meilleures pratiques pour cette intégration.

Pourquoi intégrer des cartes dans une application métier ?

L’intégration des cartes dans une application métier offre plusieurs avantages :

  • Amélioration de l’expérience utilisateur : Une carte interactive permet de visualiser des données complexes de manière intuitive. Les utilisateurs peuvent explorer des territoires, zoomer sur des zones spécifiques, ou obtenir des informations précises sur un point d’intérêt.
  • Optimisation de la prise de décision : Pour des secteurs comme l’immobilier ou la logistique, les cartes facilitent l’analyse spatiale et aident à prendre des décisions éclairées.
  • Automatisation et efficacité : Les fonctionnalités comme le géocodage ou le suivi en temps réel permettent de gagner du temps et d’améliorer la productivité.

Technologies utilisées pour l’intégration de cartes

Fond de carte et moteurs de rendu
Deux des solutions les plus populaires pour le rendu de cartes dans des applications web sont Leaflet et Mapbox GL JS.

  • Leaflet : Une bibliothèque JavaScript open-source légère qui permet de créer des cartes interactives. Elle est particulièrement prisée pour sa simplicité et sa rapidité. Leaflet est la solution parfaite pour des applications nécessitant des fonctionnalités de base comme le zoom, le défilement, et le marquage d’emplacements. Cependant, elle a des limites en termes de rendu 3D et de gestion de données massives.
  • Mapbox GL JS : Une bibliothèque plus avancée qui utilise le WebGL pour le rendu 3D et le traitement de grandes quantités de données en temps réel. Mapbox GL JS est parfait pour des projets nécessitant une visualisation fluide et détaillée, même à des niveaux de zoom très élevés. De plus, il est possible de créer des cartes personnalisées avec des styles complexes et des animations.
  • MapLibre est une bibliothèque open-source de cartographie interactive, conçue pour créer et afficher des cartes personnalisables sur le web et les applications mobiles. Issue de la communauté open-source, elle permet aux développeurs de travailler sans restriction de licence. Compatible avec des fonds de carte variés et de multiples sources de données géospatiales, elle offre des performances optimisées pour le rendu 3D et le style dynamique des cartes. MapLibre est largement adoptée pour des projets nécessitant une personnalisation poussée tout en restant libre et gratuite.

Cas d’utilisation : Pour une application de gestion des parcelles cadastrales, Mapbox GL JS est une excellente option. Non seulement elle permet d’afficher de manière fluide le fond de carte, mais elle assure aussi une gestion performante des couches de données (par exemple, les parcelles cadastrales fournies par Etalab).

Exemple d'intégration de cartes via Mapbox GL JS v3

Sources de données géographiques de l’intégration de cartes

Les données géographiques peuvent provenir de plusieurs sources ouvertes ou privées. Deux des plus utilisées sont :

  • Etalab : Ce portail français offre des données publiques, y compris des informations cadastrales et d’adressage. L’avantage de ces données est leur disponibilité gratuite et leur précision.
  • OpenStreetMap (OSM) : Une base de données collaborative qui fournit des informations géographiques libres d’accès. OSM est largement utilisé pour des projets nécessitant des données globales, mais il peut être enrichi avec des couches de données locales. 
  • L’Institut national de l’information géographique et forestière (IGN) propose divers fonds de carte adaptés aux besoins des professionnels et du grand public. Parmi eux, on retrouve les cartes topographiques détaillées, idéales pour les randonnées et activités de plein air, et les cartes de type orthophoto, qui fournissent des images aériennes haute résolution. Il existe également des cartes administratives et des cartes en relief, très utiles pour les projets d’aménagement et d’urbanisme. Les fonds de carte IGN sont accessibles via le portail Geoportail et peuvent être intégrés dans des applications grâce aux API proposées. Enfin, ces cartes sont régulièrement mises à jour pour refléter les évolutions du territoire.

Gestion des données géospatiales

Pour une application qui gère des données complexes comme des parcelles, le format GeoJSON est souvent utilisé. Ce format est standardisé pour l’échange et la manipulation de données géographiques, ce qui facilite l’intégration avec des moteurs de cartes comme Leaflet et Mapbox GL JS.

Exemple de fonctionnement :

  1. L’utilisateur peut zoomer sur une carte et voir les parcelles apparaître dynamiquement. Cela est rendu possible grâce à la capacité de Mapbox GL JS à charger et afficher les données de manière fluide.
  2. Les données de parcelles peuvent être hébergées sur un serveur dédié afin de garantir des performances optimales et une disponibilité continue.

Fonctionnalités avancées

En plus de l’affichage des cartes, des fonctionnalités spécifiques peuvent être ajoutées pour répondre aux besoins des applications métier :

  • Géocodage : La conversion des adresses en coordonnées géographiques et vice versa. Cela est essentiel pour les applications nécessitant une recherche d’adresses rapide et précise.
  • Calculs géospatiaux : Comme la mesure de distances, de surfaces, ou l’analyse des relations spatiales entre différents objets géographiques.

Aspects économiques de l’intégration de cartes

L’intégration de cartes et de technologies cartographiques peut avoir un coût, en particulier lorsque l’application commence à gérer de grandes quantités de transactions.

  • Mapbox GL JS propose un modèle de tarification basé sur le nombre de transactions. La version gratuite est limitée à 50 000 transactions par mois, ce qui peut être suffisant pour des applications à faible trafic. Pour les besoins plus importants, il faudra prévoir un budget pour les services Mapbox.
  • Données gratuites : Heureusement, des sources comme OpenStreetMap et Etalab offrent des données libres de droits, réduisant ainsi les coûts associés à l’acquisition de données géographiques. Couplés avec des technologies comme Leaflet ou Maplibre, l’affichage de cartes peut s’intégrer sans aucun coût liés à des services tiers.

Exemple d’implémentation

Prenons un exemple concret d’une application de gestion cadastrale :

  1. Affichage du fond de carte : Le fond de carte provient de Mapbox GL JS, offrant un rendu précis et fluide. Les utilisateurs peuvent se déplacer, zoomer, et voir les détails des routes, des bâtiments, et des espaces naturels.
  2. Données des parcelles : Importées depuis Etalab, les données cadastrales sont affichées à partir d’un certain niveau de zoom pour optimiser les performances.

Défis et meilleures pratiques

L’intégration de cartes dans une application métier n’est pas sans défis :

  • Performance : Le chargement de grandes quantités de données peut ralentir l’application. Pour y remédier, il est conseillé d’utiliser des techniques de chargement de type lazy loading et de limiter les appels API.
  • Précision des données : Assurez-vous que les données géographiques sont à jour et précises, surtout pour des applications critiques comme celles utilisées par les administrations publiques. Le gouvernement français met à disposition de nombreuses ressources permettant de rester en cohérence avec des exigences élevées.
  • Expérience utilisateur : Une interface claire et intuitive est essentielle. Pensez à offrir des contrôles de navigation simples et des options de filtrage avancées.

Conclusion

L’intégration de cartes dans les applications métier est un levier essentiel pour visualiser des données spatiales de manière efficace et intuitive. Des technologies comme Leaflet, MapLibre et Mapbox GL JS offrent des solutions adaptées à différents besoins, de la simple carte interactive au rendu 3D complexe. Grâce à des sources de données ouvertes comme Etalab et OpenStreetMap, il est possible de créer des applications performantes et économiques.

Que ce soit pour optimiser la logistique, gérer des biens immobiliers, ou planifier des projets d’infrastructure, les applications métier tirent un immense bénéfice de l’utilisation des cartes.

CMS Headless Statamic : Définition, avantages et fonctionnement

Alors, je ne sais pas si le nom est très heureux mais Statamic est un système de gestion de contenu Headless aussi appelé CMS Headless.

Une solution « Headless », soit “sans tête”,   signifie en langage technique une application où le Front-End, la partie visible, le visage de votre site auprès de vos utilisateurs, est détachée du Back-End, la machinerie cachée de votre site.

Headless CMS Statamic

Dans un CMS Headless, les différentes données (texte, images, …) sont envoyés du Back-End au Front-End par API et il est nécessaire de coder le Front-End de manière séparée. A l’opposé, un CMS traditionnel génère systématiquement le code du Front-End (HTML et CSS notamment) lorsque vous créez une page. On retrouve aussi cette approche dans les solutions e-commerce headless.

Ce détachement Front/Back propre au Headless CMS permet de donner une très grande souplesse au design, aux performances ou encore de proposer une expérience utilisateur améliorée. C’est une alternative plus sophistiquée à WordPress, dont l’objectif est de faciliter la création de sites web et d’applications web dynamiques. 

Statamic est développé spécifiquement pour le framework Laravel (ce qui est plutôt un gage de qualité). Alors, même si on a écrit un poste qui expliquait pourquoi WordPress est toujours une option valable (ici), on trouve que Statamic est vraiment pas mal et permet de répondre à de vrais besoins. 

Quelques explications – Comment fonctionne Statamic : 

Côté back-office, Statamic vous permet de créer et de gérer du contenu en offrant une interface administrateur conviviale, même pour les utilisateurs non techniques. L’interface est vraiment bien conçue, en voici un exemple ci-dessous.

Back Office Statamic
Exemple de Back-Office Statamic – Image du site officiel

Vous pouvez créer des pages, des articles de blog, des produits, des formulaires, des catégories, etc. 

Une gestion des assets permet de simplement organiser ses images ou vidéos, avec un système assez malin permettant de choisir la focale d’une image, afin qu’elle soit correctement ajustée sur le front-office quelque soit la résolution de l’écran (smartphone ou ordinateur).

Côté frontend (l’interface visible par l’utilisateur), c’est à votre guise : la force d’un CMS headless comme Statamic est qu’il laisse toutes les possibilités d’intégration. Vous pouvez donc faire un site entièrement sur-mesure en utilisant des technologies modernes comme React ou Vue.js, utiliser le moteur de Laravel Blade, ou même réaliser une intégration avec Antlers, un moteur de rendu de pages parfaitement intégré avec Statamic. Et en plus de tout cela, le CMS expose une API REST, mais aussi GraphQL, afin de ravir tous types d’intégrateurs web. 

Vous pouvez donc construire un site en vous concentrant sur les aspects de gestion de contenu, sans avoir de doutes sur les possibilités de rendu sur le site final.

Techniquement, Statamic est un CMS flat-file, ce qui signifie qu’il ne nécessite pas de base de données pour stocker le contenu et c’est ce qui le rend très particulier. Il utilise des fichiers de texte et des dossiers pour stocker le contenu. Et encore plus fort : si vous avez besoin de changer ce système, et que vous gérer des dizaines de milliers de contenus, vous pouvez tout simplement changer le mode d’enregistrement des données vers un système plus classique, comme une base de donnée MySQL ou même du NoSQL comme MongoDB.

En plus, Statamic offre des fonctionnalités avancées de gestion des utilisateurs, vous permettant de définir des rôles et des autorisations pour contrôler qui peut accéder, créer, modifier ou supprimer du contenu.

Et il existe encore beaucoup plus de fonctionnalités pour mettre en place une plateforme web sur-mesure robuste et scalable. On serait ravi de vous les présenter ! N’hésitez pas à contacter notre équipe de Lyon, spécialisée en la matière.

Quelques points de comparaison entre WordPress et Statamic : 

WordPressStatamic
Type de CMSCMS traditionnel basé sur une base de données.CMS Headless, et “flat-file” (sans base de données).
LicenceLogiciel librePaiement d’une licence d’utilisation (à partir de $7/mois)
Simplicité d’utilisationTrès convivial pour les débutants, avec une grande communauté et de nombreux tutoriels.Plus adapté aux utilisateurs ayant des connaissances techniques, notamment en raison de son intégration avec le framework Laravel.
PersonnalisationOffre une vaste gamme de thèmes et de plugins pour la personnalisation.Permet une personnalisation avancée grâce à ses modèles et sa structure flexible.
SécuritéSusceptible aux attaques, nécessitant des mises à jour et des plugins de sécurité réguliers.Plus sécurisé de par sa structure flat-file, réduisant les risques d’attaques comme les injections SQL, et de par son intégration avec Laravel
PerformancePeut être lent si mal optimisé ou surchargé de plugins.Généralement plus rapide en raison d’une structure plus légère et d’une intégration utilisant des technologies modernes (GraphQL, React, etc.).
Tableau de comparaison Statamic VS WordPress

Comment étendre les fonctionnalités de Statamic ? 

Au-delà des  fonctionnalités déjà présentées, les développeurs pourront étendre les fonctionnalités de Statamic assez facilement, en tirant parti de sa flexibilité et de son architecture modulaire :

  • Développement de Plugins : les plugins peuvent couvrir un large éventail de besoins, comme l’intégration avec des services tiers, l’ajout de nouvelles fonctionnalités, ou l’amélioration des performances du site.
  • Utilisation de l’API : Statamic offre une API robuste qui permet aux développeurs d’intégrer leur CMS avec d’autres systèmes et applications. Cela peut inclure l’intégration avec des outils de marketing, des plateformes de commerce électronique, ou d’autres applications web.
  • Manipulation des données avec Laravel : étant donné que Statamic est construit sur le framework Laravel, les développeurs familiarisés avec Laravel peuvent utiliser ses fonctionnalités pour manipuler les données, effectuer des opérations backend complexes, et étendre les capacités du CMS.
  • Webhooks et Intégrations : les développeurs peuvent utiliser des webhooks et des intégrations pour connecter Statamic à d’autres services en ligne, automatiser des workflows, et étendre les fonctionnalités du CMS au-delà de ses capacités natives.

Conclusion – Un CMS Headless aussi performant et flexible que Jason Statham

Pour conclure, Statamic est un CMS simple et flexible, idéal pour la plupart des sites web qui demandent une souplesse d’intégration. Il offre un équilibre entre facilité d’utilisation et personnalisation, ce qui en fait un choix de plus en plus populaire pour les développeurs et les équipes marketing.

Il est particulièrement adapté aux projets de taille moyenne qui nécessitent une gestion de contenu flexible et des performances élevées. Après, il faut juste pouvoir dire sans sourire : “ je sors un nouveau site web avec Statamic”…

On utilise Laravel Nova et on trouve ça cool ! 

Découvrez pourquoi Laravel Nova simplifie la création de back-offices

Vous cherchez à développer un back-office robuste ? Laravel Nova est certainement une très bonne solution… Il permet de développer une application très rapidement tout en reposant sur des technologies fiables. Et, c’est un peu notre crédo chez TheCodingMachine. Alors lorsqu’on a découvert Laravel Nova, on s’est dit qu’il fallait que l’on vous en parle. 

#1. Bon d’abord, qu’est-ce que Laravel Nova ? 

C’est un outil de conception de back-office, s’appuyant sur le très solide framework PHP Laravel

Laravel Nova permet de réduire à néant toutes les complexités inhérentes à la création d’un back-office d’administration (formulaire de création d’éléments complexes, affichage de listes triées, filtrées et paginées, déclenchement d’actions de masses, etc.), grâce à des outils clés en mains, robustes, et éprouvés.

Conçu pour drastiquement simplifier la mise en place de back-offices sur mesure, voici pourquoi vous devriez envisager d’utiliser Laravel Nova : 

  • Laravel Nova offre une interface utilisateur prête à l’emploi élégante. Vous n’avez pas besoin de créer une interface d’administration complexe depuis zéro. La gestion du menu, des listes, des formulaires, des erreurs, ou encore des dashboards est facilitée à travers des composants déjà pré-établis qualitatifs.
  • Rapidité de développement : en fournissant l’intégralité des vues et des composants du back-office, Laravel Nova permet de gagner du temps et de réduire la charge de travail de développement. Il permet notamment de générer des CRUD (interfaces pour les opérations de création, lecture, mise à jour et suppression des données) rapidement à partir du modèle de données, ou bien encore d’intégrer des fonctionnalités de recherche, tris et filtres  puissants. 
  • Bien que Nova fournisse des modèles de base, il est également personnalisable. Vous pouvez ajouter des champs et des outils personnalisés pour répondre aux besoins spécifiques de votre application. D’ailleurs chez TheCodingMachine, on adore concevoir des nouveaux champs, métriques ou ressources complètes sur-mesure pour nos clients : n’hésitez pas à suivre notre Github, on prévoit bientôt de mettre à disposition des composants Laravel Nova open-source !
  • Nova est spécialement conçu pour fonctionner en cohérence avec Laravel. Il tire parti des fonctionnalités telles que l’authentification, les autorisations, les migrations de base de données, les modèles Eloquent (détaillé ci-dessous), les validations, etc.
  • Nova intègre un système de gestion des autorisations qui vous permet de définir précisément qui peut accéder à quelles parties du back-office. Vous pouvez gérer les rôles et les autorisations de manière centralisée.

Nova propose un journal d’audit qui enregistre toutes les activités effectuées dans le back-office, ce qui peut être utile pour le suivi de l’activité des utilisateurs et la résolution de problèmes. Il est aussi optimisé pour être performant. 

Enfin, Laravel et Nova disposent d’une grande communauté de développeurs, ce qui signifie que vous pouvez trouver un grand nombre de ressources, de packages complémentaires et de documentation pour vous aider dans votre développement.

D’ailleurs, c’est le fondateur de Laravel qui est le créateur de Laravel Nova !

Exemple d'un back-office généré avec Laravel Nova.

#2. Ce qui est le plus cool : interagir simplement avec la base de donnée

Eloquent est l’ORM (Object-Relational Mapping) inclus avec Laravel. Il fournit une manière simple de travailler avec les bases de données, qu’importe la technologie utilisée (MySQL, MariaDB, PostgreSQL, SQL Server, etc.). 

Un modèle Eloquent est une classe qui représente une table dans votre base de données. Chaque modèle correspond à une table, et chaque instance du modèle correspond à un enregistrement dans cette table. Ces modèles permettent donc d’effectuer des requêtes sur la base de données de manière intuitive, en utilisant une syntaxe orientée objet.

Laravel Nova utilise les modèles Eloquent pour interagir avec les données de la base de données. Pour chaque modèle Eloquent que vous souhaitez gérer via l’interface d’administration de Nova, vous créez une « Resource » Nova correspondante qui définit comment ce modèle est présenté dans l’interface Nova, y compris les champs, les filtres, les actions, etc. 

Et ce qui est très fort, c’est que vos modèles peuvent être liés à d’autres entités (par exemple un utilisateur appartient à une entreprise, ou à l’inverse une entreprise est composée de plusieurs utilisateurs), Laravel Nova sait parfaitement représenter ces informations.

En résumé :  Nova étend la fonctionnalité des modèles Eloquent en fournissant une interface utilisateur graphique pour interagir avec ces modèles.

#3. Les alternatives à Laravel Nova

Il existe de nombreuses alternatives à Laravel Nova que nous allons prochainement tester (stay tuned !) : 

Voyager :

Voyager, souvent appelé l’Admin Panel pour Laravel, est une solution complète qui combine un outil d’administration avec un système de gestion de contenu intégré. Il est particulièrement apprécié pour sa simplicité d’installation et son interface utilisateur. Voyager propose une série de fonctionnalités clés telles que le CRUD (Créer, Lire, Mettre à jour, Supprimer) pour les modèles de base de données, un gestionnaire de rôles et de permissions, et un constructeur de menus, rendant la gestion de l’application Laravel plus efficace et intuitive. 

BackPack for Laravel :

BackPack for Laravel est une collection de packages qui fournit une solution d’administration personnalisable pour les applications Laravel. Il excelle dans la création d’interfaces d’administration complexes, offrant des fonctionnalités telles que la gestion des CRUD, des filtres avancés, et des formulaires avec validation. BackPack se distingue par sa capacité à étendre et personnaliser presque tous les aspects de l’interface d’administration, permettant aux développeurs de créer des back-offices qui s’adaptent parfaitement aux besoins spécifiques de leur application. Avec son architecture modulaire et ses nombreuses options de configuration, BackPack est idéal pour les projets nécessitant une approche plus sur mesure de la gestion de l’administration.

Conclusion

Il est nécessaire de parler des limites de Laravel Nova. D’abord, c’est un outil payant, ce qui peut être un facteur à prendre en compte. Il faut aussi avouer que cet outil vient avec les inconvénients de ses avantages comme par exemple, il est complexe de développer certaines fonctionnalités lorsqu’elles sont fournies en standard. 

Mais pour résumer, utiliser Nova avec Laravel simplifie considérablement la création de back-offices pour les applications web. Cela permet aux développeurs de se concentrer sur la logique métier de leur application plutôt que sur la création d’une interface d’administration complexe. 

Et, si vous souhaitez nous solliciter pour un projet Laravel Nova, n’hésitez pas à me contacter ! 

Laravel Nova, c'est cool - Aurélien Mutin