Drupal advanced integration with the Leaflet JS mapping library.

> A Modern, Lightweight Open-Source JavaScript Library for Interactive Web Mapping

Drupal Leaflet module is dependant from the Geofield module.

### > 👉 LIVE DEMO <

### Drupal Leaflet Showcase

Some Cool Websites using Drupal Leaflet

- https://arst.dk/kort
- https://www.wastereduction.gov.hk/en-hk/recycling-map
- https://www.taranto-viva.com
- https://www.geodemocracy.com/via-degli-dei-2024/web/
- https://www.geodemocracy.com/copenhagen-discovery/web/
- and k others ...

### LATEST NEWS

- February 2025: Leaflet 10.0.37 adds Option to Leaflet Widget for Placing Markers on the Map via Geocoding. Refer to #3505326 Leaflet project issue for more info.

## Leaflet Version 10

### Drupal Community documentation (WIP)

### Features and Options

- Easy to use API for extended Leaflet Map definition & customisation;
- Leaflet Default Widget, with advanced integration with Leaflet-Geoman plugin for creating and editing Points and Geometries (Linestring, Polygon) Layers;
- Leaflet Tooltips and Popups;
- Leaflet Multi Maps Base Layers Control;
- Leaflet Overlays Control via Drupal Views Grouping;
- Dynamic Markers Icons and Paths/Geometries Styling, with tokens and replacement patterns;
- Markerclustering,via Leaflet.markercluster plugin;
- Leaflet Gesture handling, via Leaflet.GestureHandling plugin;
- Reset Map View Control via Leaflet.ResetView plugin;
- Fullscreen Control, via Leaflet.Control.FullScreen plugin;
- User Location Control, via Leaflet.Locate plugin;
- Feature Additional Properties settings for advanced / dynamic customisation of Leaflet Map and Features rendering logics;
- Address Search Geocoding with Autocomplete integration (requires Geocoder module);
- Token and Replacement Patterns in Leaflet components settings;
- Multiple Leaflet maps (mixed of Leaflet Formatters, Views and Widgets) on the same page;
- Drupal hooks for altering and interacting with its functionalities;
- etc. ...

### Installation and Use

Require/Download the Leaflet module using Composer, which is simply running the following command from your project package root (where the main composer.json file is sited):

`composer require drupal/leaflet`

which will also download the required Geofield Module dependency (and GeoPHP library).

Read the instructions in the Readme.md file for further details, on how to enable the Leaflet module and its submodules.

### Additional Drupal Integrations

Leaflet module works well with the following modules;

- Geofield Map
- Leaflet More Maps
- Leaflet More Markers
- Leaflet Layers
- Views GeoJSON
- Leaflet GeoJSON

D8 version started by RdeBoer of flink, and evolved to maturity by Itamair.

## Leaflet Version 7

The Leaflet module features:

- Field formatter that can show a map for fields that contain geospatial data.
- Views integration that plots data on a map (using the sub module Leaflet Views).
- Lightweight and easy to use API for defining maps and displaying data on a map.

Some modules that build on Leaflet, adding various features:

- Leaflet More Maps: adds over 20 map styles, selected at the flick of a drop-down
- Leaflet Label: alternative tool tip hovers for polygons and line strings
- Leaflet Hash: bookmarking for maps, appends a hash of current map center and zoom to the URL, so you save and restore the "view port"
- Leaflet MarkerCluster: makes large marker populations easier to navigate through animated clustering and drill-down capability
- IP Geolocation Views & Maps: adds a swag of cool features such as centering options, markers colour-coded by any field in your View, cross-highlighting between content and map, geocoding and reverse geocoding options.
- Many more...

D7 version originally developed by ThinkShout and @pvhee (from Marzee Labs) with lots of help from the community.