NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2768 most downloaded on PyPI
Make beautiful maps with Leaflet.js & Python
Last release 2 months ago
26 Jul 2026
Release timing varies
gaps range from 2 weeks to 1.1 years
Nearly every release is documented
notes for 39 of 41 stable releases
1 version withdrawn
withdrawn after publishing
13 years old
43 releases · first in 2013
Issue 2165 by @hansthen in #2166
requires-python via PEP 621 [project] metadata by @chid in #2213Full Changelog: v0.20.0...v1.0.0-pre.1
One column per quarter.
docs: Update switcher.json for v0.19.7 by @github-actions in #2155
Full Changelog: v0.19.7...v0.20.0
docs: Update switcher.json for v0.19.6 by @github-actions in #2147
Full Changelog: v0.19.6...v0.19.7
Fix numeric keys for dict inputs in tojavascript by @hansthen in #2100
utilities.image_to_url() 'image' and related docstrings by @elliot-100 in #2106_to_png when using fit_bounds by @hansthen in #2135Full Changelog: v0.19.5...v0.19.6
Fix icon when passing Marker to GeoJson by @Conengmo in #2086
Full Changelog: v0.19.4...v0.19.5
Fix javascript template of TimelineSlider plugin by @hansthen in #2071
Add DivIcon and CustomIcon as accepted type of Marker icon by @pixelsapphire in #2056
Full Changelog: v0.19.2...v0.19.3
Remove empty values from the options by @hansthen in #2049
TileLayer: max_native_zoom cannot be null by @Conengmo in #2044
Actually drop python 3.8 by @hamdanal in #2031
once method on Evented by @hansthen in #2023Full Changelog: v0.18.0...v0.19.0
Drop Python 3.8, add Python 3.13 by @ocefpaf in https://github.com/python-visualization/folium/pull/2013
Full Changelog: https://github.com/python-visualization/folium/compare/v0.17.0...v0.18.0
Fix crs deprecation in geopandas by @ocefpaf in https://github.com/python-visualization/folium/pull/1968
Leaflet.encoded plugin: Enable creating PolyLine and Polygon from encoded string by @achieveordie in https://github.com/python-visualization/folium/pull/1928__geo_interface__ styling by @ocefpaf in https://github.com/python-visualization/folium/pull/1935Map lat&lon bound type annotations from int to float by @JonasVerbickas in https://github.com/python-visualization/folium/pull/1954Thanks to everyone who contributed!
Full Changelog: https://github.com/python-visualization/folium/compare/v0.16.0...v0.17.0
GeoJSON: option to keep layer highlighted when popup is open by @GiuseppeGalilei in https://github.com/python-visualization/folium/pull/1836
Full Changelog: https://github.com/python-visualization/folium/compare/v0.15.1...v0.16.0
Use xyzservices instead of templates for tiles by @martinfleis in https://github.com/python-visualization/folium/pull/1827
Full Changelog: https://github.com/python-visualization/folium/compare/v0.15.0...v0.15.1
New features
Improvements
Bug fixes
Remove deprecated Stamen tiles (@ocefpaf #1811)
_env instance attributes (@Conengmo #1817)Full Changelog: https://github.com/python-visualization/folium/compare/v0.14.0...v.0.15.0
Use keyword arguments as CSS properties in FloatImage (@Conengmo #1668)
Breaking changes
New plugins
Major improvements
Minor improvements
bins is a list of integers (@Conengmo #1664)map.get_bounds() when using GeometryCollection (@amrutha1098 #1633)Lazy popup: only load content on click (@marciogranzotto #1511)
Bug fixes
Tests
Documentation
Minor bugfix on the version number in the source distribution
Minor bugfix on the version number in the source distribution
Remove deprecated Mapbox and Cloudmade tilesets (@conengmo #1339)
zoom_on_click option, default False (@conengmo #1349)Upgrade Leaflet 1.5.1 -> 1.6.0 (@conengmo #1241)
0.11.0
- Upgrade Leaflet 1.5.1 -> 1.6.0 (@conengmo #1241)
- Add auto_start parameter to locate control plugin (@fullonic #1220)
- New feature: GeoJsonPopup (@jtbaker #1023)
Bug fixes
- Choropleth: default color for with and without data (@conengmo #1288)
- Update WMS data url in WmsTimeDimension example notebook (@sknzl #1259)
- Search plugin: fix position argument (@jjbenes #1304)
- Fix GeoJsonPopupAndTooltip example notebook (@conengmo #1298)
- Change geopandas dataframe `to_crs()` usage syntax (@artnikitin #1251)
- GeoJson: fix `show` parameter when embedding data (@conengmo #1289)
- Use https CDN for leaflet.timedimension.control.min.css (@sknzl #1256)
- Host leaflet-heatmap.js under different name to avoid adblockers (@conengmo #1240)
API changes
- Removed unused `folium.utilities.iter_points` function, use instead `iter_coords` (@conengmo #1294)
Fix TimeSliderChoropleth plugin broken setStyle (@khllkcm #1227)
Add user location plugin LocateControl (@fullonic #1116)
key_on not found in data (@evwhiz #1144)key_on check in Choropleth (@leandroordonez #1169)Fix geojson identifier (conengmo #1155)
0.9.1
Bug fixes
- Fix geojson identifier (conengmo #1155)
Geojson separate style mapping (conengmo #1058)
tojson filter to convert data (conengmo #1101)icon_create_function arg to FastMarkerCluster plugin (Gordonei #1109)PolyLineOffset plugin (FabeG #1091)CustomPane class (Ipkirwin #1094)add_tile_layer method from Map (conengmo #1127)Map, if needed use TileLayer instead (conengmo #1127)Map (FabeG #1133)Relaxing location data type restriction (dskkato #1084)
dummy release to test the doc publication
Warn when using geojson data with GeometryCollection type in GeoJsonToolTip (jtbaker #988)
API changes
Bug Fixes
Map.choropleth() moved to Choropleth class, former is deprecated (Conengmo #1011)
threshold_scale argument of choropleth is replaced by bins (FloChehab #1005)Map.choropleth() moved to Choropleth class, former is deprecated (Conengmo #1011)Popup accepts new arguments show (render open on page load) and sticky (popups only close when explicitly clicked) (jwhendy #778)
Popup accepts new arguments show (render open on page load) and sticky (popups
only close when explicitly clicked) (jwhendy #778)export=False/True option to the Draw plugin layer for saving
GeoJSON files (ocefpaf #727)tooltip support to Markers (ocefpaf #724)tooltip support to all vector layers (ocefpaf #722)TimeSliderChoropleth plugin (halfdanrump #736)show parameter to choose which overlays to show on opening (conengmo #772)__geo_interface__ (ocefpaf #880)FeatureGroupSubGroup plugin (shtrom #875)duration option to TimestampedGeoJson (andy23512 #894)zoom_control to Map to toggle zoom controls as per enhancement (#795) (okomarov #899)date_options in TimestampedGeoJson (andy23512 #914)Tooltip and GeoJsonTooltip classes (jtbaker #883)ImageOverlay, VideoOverlay, WmsTileLayer, and TileLayer to a
new raster_layers.py module (ocefpaf #729)Rectangle and Polygon were renamed and set to leaflet's defaults.
Both now accepted all Path's optional arguments (ocefpaf #722)get_bounds routine to avoid wrong responsesfill_color is present it will override fill=FalseAdded Draw plugin (ocefpaf #720)
Draw plugin (ocefpaf #720)VideoOverlay import (ocefpaf #719)choropleth docstring (lsetiawan #713)choropleth name in LayerControl (ocefpaf #493)Optional iconCreateFunction for MarkerCluster to customize the icons (odovad #701)
iconCreateFunction for MarkerCluster to customize the icons (odovad #701)HeatMapWithTime (Padarn #567)MeasureControl (ocefpaf #669)VideoOverlay plugin (ocefpaf #665)TimestampedWmsTileLayers plugin (acrosby #644 and #660)FastMarkerCluster (James Gardiner #585 (proposed by @ruoyu0088))MarkerCluster in lieu of the plugin version (ocefpaf #704)choropleth now takes a single geo_data instad of geo_path/geo_str
leaving the parsing to GeoJSON, remove the unused data_out option,
add geopandas support (ocefpaf #702)kwarg parse_html=True.PolyLine, Circle and CircleMarker are set to leaflet's defaults and
accepted all Path's optional arguments (ocefpaf #683 and #697)WmsTileLayer and ImageOverlay are set to leaflet's defaults and accepted
all TileLayer.WMS and ImageOverlay optional arguments respectively (ocefpaf #695 and #697)max_bounds to False to reflect leaflet's default value (rdd9999 #641)Fullscreen plugin kwargs to be more "pythonic".format properties are now .fmt for consistencykwarg continuous_world that is no longer in leaflet's API (ocefpaf #695)subdomain option in TileLayer should be a list and WmsTileLayer
overlay default is True (ocefpaf #707)Removed deprecated MapQuest tiles (HashCode55 #562)
leaflet 1.0.1 (juoceano #531 and ocefpaf #535)continuous_world, world_copy_jump, and no_wrap options (ocefpaf #508)LayerControl (qingkaikong #473)fullscreen plugin (qingkaikong #468)ColorLine object (bibmartin #449)GeoJSON, and Chrorpleth (JoshuaCano #341)fullscreen plugin (sanga #437)smooth_factor option to GeoJSON, TopoJSON and Choropleth (JamesGardiner #428)Map object now accepts Leaflet global switches (sgvandijk #424)Bug Fixes
FastMarkerCluster (James Gardiner #585 (proposed by ruoyu0088))leaflet 1.0.1 (juoceano #531 and ocefpaf #535)continuous_world, world_copy_jump, and no_wrap options
(ocefpaf #508)LayerControl (qingkaikong #473)fullscreen plugin (qingkaikong #468)ColorLine object (bibmartin #449)GeoJSON, and Chrorpleth (JoshuaCano #341)fullscreen plugin (sanga #437)smooth_factor option to GeoJSON, TopoJSON and Choropleth
(JamesGardiner #428)Map object now accepts Leaflet global switches (sgvandijk #424)Bug Fixes
This is mostly a bugfix release
This is mostly a bugfix release
Major changes to the API with the new plugin system, and several new features in this version. For more information check the docs: http://python-visu
Major changes to the API with the new plugin system, and several new features in this version. For more information check the docs: http://python-visualization.github.io/folium/
style_function (BibMartin #317 and #266)And many bug fixes! (See https://github.com/python-visualization/folium/issues?&q=milestone:v0.2.0+is:closed+label:bug)
CAVEAT! Backwards incompatibly change: the keyword width in popups is now popup_width to avoid confusion with map width.
popup_width keyword to adjust the width in
text/HTML (ocefpaf #157).width in popups is now
popup_width to avoid confusion with map width.Bug Fixes
Popups on lines. (themiurgo #122)
Version 0.1.5
Bug Fixes
popup_on. (themiurgo 204d722)Support for https protocol. @apatil
New features
Bug Fixes
width keyword to simple_popup. (ocefpaf 95325c4)Bug Fixes
add_wms_layer py3k bug. (ocefpaf 154f0a5)Bootstrap glyphicon marker icons. birdage
Bug Fixes
TopoJSON functionality. (Rob Story 5566b71)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →