foliplus
foliplus: the missing piece between "see the map" and "use the map". GeoPandas handles data, Folium renders it, foliplus brings it to life.
Scope
Layer data passed to foliplus is read-only: no editing, upload, or deletion.
Data processing happens upstream. foliplus handles the map, not the data.
Features
| Control | Description |
|---|---|
| 📷 ExportControl | Capture a specific area of the map and export it as an image. |
| 🖥️ FullscreenControl | Fullscreen toggle with auto-hide for other controls. |
| 🔥 HeatmapControl | H3 hexbin heatmap with zoom-adaptive resolution and labeled hexagons. |
| 🗂️ LayerControl | Layer panel to organize, inspect, and zoom to map layers. |
| 🎯 LocateControl | Fly to the user's current position. |
| 📏 MeasureControl | Measure distances, areas, and circles; place geocoded markers; then edit by dragging nodes. |
| 📐 ScaleControl | Scale bar with metric units and optional zoom level display. |
| 🔍 SearchControl | Coordinate and address search via pluggable geocode providers. |
Beyond Plugins
Traditional map component libraries treat each tool as an independent plugin. foliplus was designed as one system from the start:
- Components communicate with each other, instead of working in isolation
- Layers are managed centrally, instead of each tool owning its own stack
- Conflicts are resolved automatically, instead of tools interfering with each other
- Third-party components can plug into the system, instead of being locked out
Built-in Coordination
Layer-producing tools register their canvas or layer through LayerControl, which manages z-order, visibility, and lifecycle centrally. This means they share a single layer stack — no z-index clashes, no orphaned DOM elements.
On top of this shared layer foundation, tools coordinate further:
- While measuring, search and locate are blocked to prevent map interaction conflicts
- During export, measurement pauses, heatmap renders in full resolution, and layer order is synced for a complete screenshot
- When a layer is removed from the layer panel, the component that owns it (e.g. measurement) auto-cleans its state
- When layers change, the heatmap refreshes automatically
All of this happens without manual wiring — foliplus handles it internally.
Compatibility
Requires folium>=0.14.0. Leaflet is not a Python dependency — the TypeScript controls run against the Leaflet Folium injects into the page.
CI runs the full suite on Folium's Leaflet (1.9.3) and a bring-up smoke on Leaflet 1.0.0 for pages that load a different pin.
Metadata
Release files for foliplus 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| foliplus-0.4.0.tar.gz | 176.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| foliplus-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 357.8 kB
Release files / foliplus-0.4.0.tar.gz
| Download URL | foliplus-0.4.0.tar.gz |
|---|---|
| Size | 176.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
551a27122cb281ff526d0ea9f059734d210f78574d73c510f84a0074b5aebbcb
|
|
BLAKE2b-256 checksum How to use checksums |
55a587ca76051911e981d1629a60ba88eca98ca0b3e908cfbd81f7d2a04f71e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Release files / foliplus-0.4.0-py3-none-any.whl
| Download URL | foliplus-0.4.0-py3-none-any.whl |
|---|---|
| Size | 181.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
588a0f4667863360acf5dd79d9ef80014ea7087b62238b088e41d535c8adf774
|
|
BLAKE2b-256 checksum How to use checksums |
7210aa3ddb78443a88ac5c8487f43d16463e422fd2e34a81830fa20db3f1d71b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|