npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

room-leaflet

v1.0.0

Published

Un composant pour afficher des cartes interactives.

Downloads

22

Readme

Room-Leaflet

Room-Leaflet est un composant basé sur Room permettant d’afficher des cartes interactives en utilisant la librairie JavaScript open source Leaflet.

Room-Leaflet est disponible sous la forme d’un module ECMAScript 6 (une version non ECMAScript est également disponible) qui comme Room, ne nécessite pas de système de construction (build tools). Room-Leaflet est donc utilisable directement dans un navigateur Web.

Installation

Room-Leaflet est disponible sur :

Vous pouvez aussi auto-héberger Room-Leaflet en utilisant le fichier room-leaflet.min.js ou le fichier room-leaflet-nm.min.js.

Utilisation

Pour utiliser Room-Leaflet il faut importer la librairie Leaflet.

Pour rappel, la librairie Leaflet utilise un fichier CSS qui doit impérativement être chargé avant la librairie et il est indispensable de donner une dimension par CSS à l’élément <div> qui contient la carte (classe leaflet-container par défaut mais qui peut être changée via la propriété className du composant).

Version ESM

En version ESM, vous pouvez utiliser un élément <script> avec un attribut type à la valeur module, mais vous avez en plus la possibilité de laisser Room-Leaflet importer dynamiquement la librairie Leaflet en tant que module ECMAScript à la condition d’ajouter dans votre carte d’importation une entrée nommée Leaflet (en plus des entrées Room et RomLeaflet).

Pour que cette possibilité fonction vous devez passez par un CDN capable de convertir Leaflet en module ECMAScript 6, c'est très simple comme indiqué dans cette article de GreenerSoft.

Une carte d'importation est obligatoire en version ESM à minima pour indiquer où est le module Room.

Vous trouverez un exemple de carte d’importation dans le fichier index.html de notre dépôt Room-Test. Il contient par ailleurs plusieurs exemples d'utilisation de Room-Leaflet.

Version non ESM

En version non ESM, vous devez avoir un élément <script> dans votre page HTML avant ceux pour Room et Room-Leaflet.

Vous avez alors un objet RoomLeafet attaché à l'objet principal window qui permet d'appeler les fonctions (RoomLeaflet.MapContainer() par exemple).

Une autre solution plus simple consiste à utiliser l'affection par décomposition :

const {FranceCenter, OpenStreetMapProvider, L, addTileLayer, MapContainer} = RoomLeaflet;

Vous pouvez alors par exemple appeler directement la fonction MapContainer() sans préfixer avec RoomLeaflet..

Fournisseur de fonds de carte

Un fournisseur de fonds de carte est décrit par un objet provider qui est constitué de 3 propriétés :

  1. wms : Un booléen qui indique si le layer est de type WMS ou pas.
  2. url : Une chaîne de caractères contenant l’URL donnant les tuiles.
  3. options: Un objet avec les propriétés décrites comme options de la méthode tileLayer.wms() si la propriété wms est à true et les options de la méthode tileLayer() de Leaflet si la propriété wms est à false.

L'objet provider est utilisable avec les fonctions createTileLayer(), addTileLayer() et MapContainer() de Room-Leaflet.

La fonction OpenStreetMapProvider() de Room-Leaflet retourne un objet de cette forme.

Variable L

Classiquement avec Leaflet, la variable L contient l’objet qui permet d'appeler les méthodes de Leaflet (elle est attachée à l'objet principal window).

Cette variable est exportée par le module Room-Leaflet et il faut l’utiliser en version ESM surtout si vous laissez importer dynamiquement Leaflet par Room-Leaflet comme indiqué plus haut.

En version non ESM, la variable L est également disponible (c’est juste un alias de la variable L de window).

Fonctions

Room-Leaflet est minimaliste en exportant uniquement 7 fonctions.

Fonction EUCenter()

Cette fonction retrourne les coordonnées du centre de l’Europe sous la forme d’un tableau contenant la latitude et la longitude.

Fonction FranceCenter()

Cette fonction retourne les coordonnées du centre de la France.

Fonction USACenter()

Cette fonction retourne les coordonnées du centre des USA.

Fonction OpenStreetMapProvider()

Cette fonction retourne un objet décrivant un fournisseur de fonds de carte et en l'occurence OpenStreetMap.

Elle est utilisable avec les fonctions createTileLayer(), addTileLayer() et MapContainer() de Room-Leaflet.

Fonction createTileLayer()

Cette fonction retourne un objet TileLayer de Leaflet.

La signature de la fonction est :

createTileLayer(provider)

Le paramètre provider est un objet décrivant un fournisseur de fonds de carte dont la structure est décrite plus haut.

Si la propriété wms de l’objet provider est à true, la fonction utilise la méthode tileLayer.wms() de Leaflet.

Si la propriété est à false, la fonction utilise la méthode tileLayer() de Leaflet.

Fonction addTileLayer()

Cette fonction créé et ajoute un objet TileLayer de Leaflet à une carte à partir d’un fournisseur de fonds de carte. Elle retourne l’objet créé.

La signature de la fonction est :

addTileLayer(map, provider)

Le paramètre map est un objet Map de Leaflet qui représente la carte dans laquelle le layer doit être ajouté.

Le paramètre provider est un objet décrivant un fournisseur de fonds de carte dont la structure est décrite plus haut.

Fonction MapContainer()

Cette fonction retourne le composant Room-Leaflet qui est un élément <div> contenant une carte gérée par Leaflet.

La signature de la fonction est :

MapContainer({id, className, provider, mount, unmount})

L’unique paramètre attendu est un objet pouvant contenir des propriétés toutes optionnelles :

  • id : Une chaîne de caractères contenant l'identifiant CSS à utiliser pour l’élément <div>.
  • className : Une chaîne de caractères contenant la ou les classes CSS à utiliser pour l’élément <div>.
  • provider : Un objet décrivant le fournisseur de fonds de carte dont la structure est décrite plus haut.
  • mount : Une fonction appelée au montage de l’élément <div> dans le DOM.
  • unmount : Une fonction appelée à la suppression de l’élément <div> du DOM.

Les fonctions mount() et unmount() reçoivent un unique paramètre map qui est est un objet Map de Leaflet qui représente la carte associée à l’élément <div>.

La fonction mount() permet par exemple d’ajouter d’autres éléments dans la carte comme des layers, des marqueurs, des popups, etc. C’est aussi là qu'il est possible de créer des effets avec la fonctions createEffect() de Room ou de démarrer des timers.

La fonction unmount() permet par exemple d’arrêter des timers démarrés dans la fonction mount().