This file has been deprecated. For release notes of v0.16.0 and higher, check https://github.com/python-visualization/folium/releases. 0.15.1 ~~~~~~ New features - Use xyzservices instead of templates for tiles (@martinfleis #1827) Improvements - Add TimeSliderChoropleth stroke colour/width/opacity argument (@yutemi #1838) Bug fixes - Fix streamlit-folium compatibility (add layer to map with new class) (@Conengmo #1834) - Improve docstring preview readability in features.py (@BastienGauthier #1833) 0.15.0 ~~~~~~ Breaking changes - Drop support for Python 3.5 and 3.6 (@ocefpaf #1729) - Remove deprecated Stamen tiles (@ocefpaf #1811) - Remove `_env` instance attributes (@Conengmo #1817) - Use write_png from Branca, remove from Folium (@Conengmo #1708) - Remove deprecated Map.choropleth method (@Conengmo #1684) New features - Draggable layer control option (@Conengmo #1760) - Add fit enabled overlays feature (@Conengmo #1693) - Add type hints (@Conengmo #1677) Improvements - Update jquery to v3.7.1 (@BastienGauthier #1824) - Update leaflet.fullscreen plugin to 3.0.0 (@afontenot #1818) - Allow Choropleth key_on to traverse through array (@amrutharajashekar #1772) - Support TagFilterButton in PolyLine, AntPath and GeoJson (@jamiechoi1995 #1756) - Multiple instances of TimeSliderChoropleth on a single map (@Conengmo #1749) - Make VectorGridProtobuf an overlay by default (@iwpnd #1723) - Change internally where layers are added to the map (@Conengmo #1690) - TimestampedWmsTileLayers inherit from MacroElement, not Layer (@Conengmo #1696) - SideBySideLayers inherit from MacroElement, not Layer (@Conengmo #1695) - Consolidate duplicate utility functions with Branca (@Conengmo #1676) Bug fixes - Fix interaction between DualMap and Draw (@Qweaper #1776) - Fix MeasureControl plugin for Leaflet>=1.8.0 (@Conengmo #1748) - Pin older version of leaflet side by side to fix SideBySideLayers plugin (@jtmiclat #1732) - Fix Map.show_in_browser() by adding local file prefix to url (@RileyLeff #1704) Documentation - Deprecate example notebooks (@Conengmo #1798) - Documentation overhaul (@Conengmo #1700) - Update example notebooks after new Pandas version (@Conengmo #1761) 0.14.0 ~~~~~~ Breaking changes - Use keyword arguments as CSS properties in FloatImage (@Conengmo #1668) - Upgrade Leaflet 1.6.0 to 1.9.3, set default font size (@Conengmo #1660) - Upgrade Bootstrap 3.2.0 to 5.2.2 (@Conengmo #1650) New plugins - Add GroupedLayerControl plugin (@chansooligans #1592) - Add SideBySide plugin (@fralc #1292) - Add TagFilterButton plugin (@Waffleboy #1343) Major improvements - Add optional Jenks Natural Breaks Optimization to Choropleth (@pmains #1634) - Add Map.show_in_browser() method (@Conengmo #1651) - Accept TileProvider objects from the xyzservices package (@martinfleis #1498) - Add support for Vega-Lite v4 and v5 (@wd60622 #1525) - Upgrade Font Awesome 4.6.3 to 6.2.0 (@Sujithkumardola #1637) Minor improvements - Allow cql_filter argument in WmsTileLayer (@Conengmo #1673) - Silently allow lowerCamelCase for vector path options (@Conengmo #1672) - Allow html popups and templating in ClickForMarker (@Conengmo #1666) - Add show_geometry_on_click argument to Draw plugin (@Conengmo #1657) - Automatically join string and numeric key_on values for Choropleth (@alessioarena #1193) - Add speed_slider argument to TimeStampedGeoJson (@gokyori #1279) - Add gradient option to vector path options (@nocturnalAndroid #1433) - Add initial timestamp argument to TimeSliderChoropleth (@jjbenes #1435) - Allow passing TileLayer to Map (@Conengmo #1624) - Use fullscreen window in Map._to_png() (@Conengmo #1656) - Expose webdriver argument in Map._to_png() (@WooilJeong #1620) - Export the map only in Map._to_png() (@Vayel #1197) Bug fixes - Fix LayerControl visibility on multiple renders (@Conengmo #1674) - Fix the new TagFilterButton plugin, it's not a Layer (@Conengmo #1671) - Fix TopoJson object path lookup (@Conengmo #1665) - Fix Choropleth when `bins` is a list of integers (@Conengmo #1664) - Fix attribution links in Notebooks opening within iframe (@Conengmo #1655) - Fix empty geojson failing when using style_function (@agussman #1213) - Fix Marker location validation for numpy array (@Conengmo #1647) - Fix date sorting in TimeSliderChoropleth (@Ade-StapleHill #1503) - Fix unescaped backticks in Popup (@Conengmo #1642) - Fix `map.get_bounds()` when using GeometryCollection (@amrutha1098 #1633) - Fix ClickForLatLng not imported in __init__ (@amrutha1098 #1627) Documentation - More Flask examples (@Conengmo #1675) - Add PolyLine example to Quickstart.ipynb (@IamPhytan #1492) Thanks to: - All contributors to this release - @giswqs for fixing typos - @pmains for fixing flake8 warnings - @amrutha1098 for fixing tests - Our maintainers @ocefpaf and @Conengmo 0.13.0 ~~~~~~ - Lazy popup: only load content on click (@marciogranzotto #1511) - Add Leaflet.VectorGrid plugin: VectorGridProtobuf (@iwpnd #1576) - Add blur parameter to HeatMapWithTime plugin (@Demetrio92 #1529) - New ClickForLatLng class: click to save lat/lon to clipboard (@BibMartin #1530) - Add width parameter to css for FloatImage (@beautah #1570) - Add support for tooltips in TimestampedGeoJson objects (@tblundy #1472) - Expose GeoJson's web retrieval to its own function (@beautah #1458) Bug fixes - Restore allowing simple Popup in GeoJson (@ocefpaf #1528) Tests - Fix test failure with recent branca change on map ids (@oefe #1556) Documentation - Thanks to @oefe, @Demetrio92 and @giswqs for helping out with the documentation 0.12.0 ~~~~~~ - GeoJson add `zoom_on_click` option, default False (@conengmo #1349) - Add Geocoder plugin (@WBP20 #1323) - Replace githack.com CDN with jsdelivr.com (@conengmo #1337) - Add SemiCircle plugin (@kuaka #1238) - Move hardcoded JS CDN links to class variables (@and-viceversa @conengmo #1312 #1416) - Treat data uris as valid (@Kirill888 #1428) - Add GeoJson marker option (@jtbaker #957) Bug fixes - Fix TimeSliderChoropleth breaking when using layer control (@markhudson42 #1380) - Fix GeoJson data loading (@conengmo #1353) - Fix heatmap weights/intensity (@conengmo #1354 #1282) - Fix multiple GeoJsonPopup 'name_getter' JS SyntaxError (@jtbaker #1347) - Fix TimestampedWmsTileLayers layer control (@conengmo #1319) API changes - Remove deprecated Mapbox and Cloudmade tilesets (@conengmo #1339) 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) 0.10.1 ~~~~~~ Bug fixes - Fix TimeSliderChoropleth plugin broken setStyle (@khllkcm #1227) - Fix HeatMapWithTime plugin (@farisnanosoft @conengmo #1228) - Fix adding GeoJSON to MarkerCluster (@conengmo #1190) Documentation - Typo corrections in examples/Colormaps.ipynb (@nik-ahuja #1215) 0.10.0 ~~~~~~ - Bump Leaflet version from 1.4.0 to 1.5.1 (@ocefpaf #1149) - Choropleth: warn if `key_on` not found in data (@evwhiz #1144) Bug fixes - Fix layer control in DualMap plugin (@conengmo #1156) - Fix typo in DivIcon options (@fullonic #1181) - Fix JS error in Draw plugin export option (@fullonic #1180) - Fix typo in color options in Icon (@adnanhemani #1171) - Fix draw and edit options in Draw plugin (@mccarthyryanc #1175) - Remove warnings about conflicts with Draw plugin (@fullonic #1184) - More explicit `key_on` check in Choropleth (@leandroordonez #1169) Documentation - Add Flask example (@penguindustin #1140) - Improve contribution guide (@leonardofurtado #1173) 0.9.1 ~~~~~ Bug fixes - Fix geojson identifier (conengmo #1155) 0.9.0 ~~~~~ This version drops support for Python 2.7. (#1100, #1104, #1111) Python 3.5+ is required. - Geojson separate style mapping (conengmo #1058) - Warn for wrong color values in Icon (conengmo #1099) - Use Jinja2's `tojson` filter to convert data (conengmo #1101) - Pass **kwargs as options to Leaflet classes (conengmo #1101) - Explicit coordinate validation (conengmo #1090) - Add `icon_create_function` arg to `FastMarkerCluster` plugin (Gordonei #1109) - Add `PolyLineOffset` plugin (FabeG #1091) - Add Locate Control plugin (fullonic #1116) - Add Leaflet `CustomPane` class (Ipkirwin #1094) API changes - Remove `add_tile_layer` method from `Map` (conengmo #1127) - Remove args from `Map`, if needed use `TileLayer` instead (conengmo #1127) Bug fixes - Fix broken attribution for built-in tiles (FabeG #1128) - Fix broken prefer_canvas option of `Map` (FabeG #1133) 0.8.3 ~~~~~ - Relaxing location data type restriction (dskkato #1084) - Add options to draw control (EtsuNDmA #1035) - folium 0.8.x will be the last version series to support Python 2 (conengmo #1087) Bug Fixes - Use jquery.com CDN instead of Google (conengmo #1086) 0.8.0 ~~~~~ - Warn when using geojson data with GeometryCollection type in GeoJsonToolTip (jtbaker #988) - Change default popup width from 300px to 100% (ocefpaf #1040) - Automatically detect VegaLite version from specs (JarnoRFB #959) - Validate style and highlight functions in GeoJson (jtbaker #1024) - AntPath plugin (ocefpaf #1016) - Update Leaflet version to 1.4.0 (conengmo #1047) - DualMap plugin (conengmo #933) - CirclePattern and StripePattern plugins (talbertc-usgs #966) - Add option to make Marker draggable (Conengmo #1053) - Example notebook on creating polygons from points (HZALK #1056) API changes - Improved Search plugin (jtbaker #995) Bug Fixes - Re-add missing GeoJsonTooltip in __init__ (Conengmo #1029) - Use Javascript template literals in DivIcon (Conengmo #1054) 0.7.0 ~~~~~ - Fixed HeatMap silently fail on incompatible data types (ocefpaf #1017) - Proper scaling on mobile phones (Conengmo #992) - Update leaflet to 1.3.4 (ocefpaf #939) - More options (tms, opacity, kwargs) in TileLayer (mpickering #948) - Add MousePosition plugin (btozer #916) - Add Minimap plugin (talbertc-usgs #968) - Replace Rawgit CDN with Githack (jtbaker #1002) - Handling of NaN and missing values in choropleth (FloChehab #1005) API changes - `threshold_scale` argument of choropleth is replaced by `bins` (FloChehab #1005) - `Map.choropleth()` moved to `Choropleth` class, former is deprecated (Conengmo #1011) Bug Fixes - Fix wrong default value for fmt argument of WmsTileLayer (conengmo #950) - Fix icon_create_function argument in MarkerCluster (conengmo #954) - Update stylesheet url in TimestampedGeoJson (frodebjerke #963) - Use Javascript template literals in Tooltip and Popup (jtbaker #955 #962) - Proper scaling on mobile phones (conengmo #992) 0.6.0 ~~~~~ - `Popup` accepts new arguments `show` (render open on page load) and `sticky` (popups only close when explicitly clicked) (jwhendy #778) - Added leaflet-search plugin (ghandic #759) - Improved Vector Layers docs, notebooks, and optional arguments (ocefpaf #731) - Implemented `export=False/True` option to the Draw plugin layer for saving GeoJSON files (ocefpaf #727) - Internal re-factor to reflect leaflet's organization (ocefpaf #725) - Added `tooltip` support to `Marker`s (ocefpaf #724) - Added `tooltip` support to all vector layers (ocefpaf #722) - Added `TimeSliderChoropleth` plugin (halfdanrump #736) - Added `show` parameter to choose which overlays to show on opening (conengmo #772) - Added BeautifyIcon Plugin (arthuralvim and jeremybyu #819) - Explicit WMSTileLayer options, accept all **kwargs (conengmo #838) - Updated links to Draw plugin (conengmo #868) - Ingest any object that __geo_interface__ (ocefpaf #880) - Added `FeatureGroupSubGroup` plugin (shtrom #875) - Added `duration` option to `TimestampedGeoJson` (andy23512 #894) - Added `zoom_control` to `Map` to toggle zoom controls as per enhancement (#795) (okomarov #899) - Change default `date_options` in TimestampedGeoJson (andy23512 #914) - Added gradient argument to HeatMapWithTime (jtbaker #925) - Added `Tooltip` and `GeoJsonTooltip` classes (jtbaker #883) API changes - Refactor `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) Bug Fixes - Fixed numpy array bug (#749) in _flatten - Unify `get_bounds` routine to avoid wrong responses - If Path option `fill_color` is present it will override `fill=False` - Fix disappearing layer control when using FastMarkerCluster (conengmo #866) - Host heatmap.js to circumvent adblockers (conengmo #886) - Fix permission error in Map._to_png() due to tempfile (conengmo #887) - Replace strftime use in TimesliderChoropleth example (conengmo #919) 0.5.0 ~~~~~ - Added `Draw` plugin (ocefpaf #720) - Better handling of URL input (ocefpaf #717) - Versioned docs! Visit http://python-visualization.github.io/folium/docs-v{{version}} or simply http://python-visualization.github.io/folium/ for the latest version. Bug Fixes - Fix `VideoOverlay` import (ocefpaf #719) - Fix `choropleth` docstring (lsetiawan #713) - Fix `choropleth` name in `LayerControl` (ocefpaf #493) 0.4.0 ~~~~~ - Optional `iconCreateFunction` for `MarkerCluster` to customize the icons (odovad #701) - Added `HeatMapWithTime` (Padarn #567) - Added `MeasureControl` (ocefpaf #669) - Added `VideoOverlay` plugin (ocefpaf #665) - Added `TimestampedWmsTileLayers` plugin (acrosby #644 and #660) - Vega-Lite features support via altair (njwilson23 #643) - Experimental support for a static png output (ocefpaf #634) - Added support for subdomains options in TileLayer (damselem #623) - Updated to leaflet 1.2.0 (ocefpaf #693) - Added `FastMarkerCluster` (James Gardiner #585 (proposed by ruoyu0088)) - Use the GIS standard "pixelated" css image-rendering in image overlays by default (dirkvdb #684 and ocefpaf #686) API changes - Removed features `MarkerCluster` in lieu of the plugin version (ocefpaf #704) - `choropleth` now takes a single `geo_data` instead of `geo_path`/`geo_str` leaving the parsing to `GeoJSON`, remove the unused `data_out` option, add geopandas support (ocefpaf #702) - All popups are considered HTML text by default (ocefpaf #689) If a popup requires rendering use the `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) - Changed default `max_bounds` to `False` to reflect leaflet's default value (rdd9999 #641) - Modified `Fullscreen` plugin `kwargs` to be more "pythonic" - All `.format` properties are now `.fmt` for consistency - Removed the `kwarg` `continuous_world` that is no longer in leaflet's API (ocefpaf #695) Bug Fixes - `subdomain` option in `TileLayer` should be a list and `WmsTileLayer` `overlay` default is `True` (ocefpaf #707) - Checking if the lat, lon locations are floats to avoid empty maps (radumas #626) 0.3.0 ~~~~~ - Added `FastMarkerCluster` (James Gardiner #585 (proposed by ruoyu0088)) - Added style option to 'Timestamped geojson' plugin (soymsk #627) - Switched to `leaflet 1.0.1` (juoceano #531 and ocefpaf #535) - Added `continuous_world`, `world_copy_jump`, and `no_wrap` options (ocefpaf #508) - Update font-awesome to 4.6.3 (ocefpaf #478) - Added text path (talespaiva #451 and ocefpaf #474) - More options added to `LayerControl` (qingkaikong #473) - More options added to `fullscreen` plugin (qingkaikong #468) - Added `ColorLine` object (bibmartin #449) - Added highlight function to `GeoJSON`, and `Chrorpleth` (JoshuaCano #341) - Added `fullscreen` plugin (sanga #437) - Added `smooth_factor `option to `GeoJSON`, `TopoJSON` and `Choropleth` (JamesGardiner #428) - `Map` object now accepts Leaflet global switches (sgvandijk #424) - Added weight option to CircleMarker (palewire #581) - Added requests support to enable http(s) and ftp for geo_path parameter (jreades #602) Bug Fixes - Fixed image order (juoceano #536) - Fixed Icon rotation (juoceano #530 and sseemayer #527) - Fixed MIME type (text/plain) is not executable (talespaiva #440) - Update Travis-CI testing to incorporate branca and fix notebook tests (ocefpaf #436) - Removed MultiPolyLine and MultiPolygon, both are handled by PolyLine and PolyLine in leaflet 1.0.* (ocefpaf #554) - Removed deprecated MapQuest tiles (HashCode55 #562) 0.2.1 ~~~~~ Bugfix release - TopoJson.get_bounds() returns [lon,lat] instead of [lat,lon] (eddies #383) - HeatMap was not passing "name" argument (eddies #380) - Fix heatmap.fit_bounds (same bug as #383) (BibMartin #384) - Fix WMS rendering (ocefpaf #404) - Change Leaflet.awesome-markers URL (BibMartin #393) 0.2.0 ~~~~~ 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/ - Added control_scale (BibMartin and jelmelk #355) - WMS styles (ocefpaf #348) - Docs! (BibMartin #344, #337, #329) - No tile option (ocefpaf #330) - GeoJSON and TopoJSON `style_function` (BibMartin #317 and #266) - Colormaps (BibMartin # 300) - Map CRS (BibMartin #297) - GeoPandas drawing (BibMartin #296) - Div Icons (BibMartin #250) - CustomIcon (BibMartin #230) - HeatMap (BibMartin #213) And many bug fixes. See https://github.com/python-visualization/folium/issues?&q=milestone:v0.2.0+is:closed+label:bug 0.1.6 ~~~~~ - Added Image Overlay. (andrewgiessel b625613) - All popups can take a `popup_width` keyword to adjust the width in text/HTML (ocefpaf #157). - CAVEAT! Backwards incompatibly change: the keyword `width` in popups is now `popup_width` to avoid confusion with map `width`. 0.1.5 ~~~~~ - Popups on lines. (themiurgo #122) - Map auto bounds. (themiurgo #134) - GeoJSON popup. (ocefpaf 7aad5e0) - Added cartodb positron and dark_matter tiles (ocefpaf d4daee7) - Forcing HTTPS when available. (ocefpaf c69ac89) - Added Stamen Watercolor tiles. (ocefpaf 8c1f837) - Added non-pixel width and height. (ocefpaf a87a449) - Default map size is defined as non-pixel and equal to 100% of the window. (ocefpaf dcaf575) Bug Fixes - Draw GeoJSON first. (ocefpaf d92bdbe) - Removed keyword unnecessary `popup_on`. (themiurgo 204d722) - Fixed MapQuest Open Aerial URL. (ocefpaf 5e787fa) 0.1.4 ~~~~~ - Popups allow unicode. (Anand Patil 545315a) - Loading javascript over https. (Anand Patil ac9a4d6) - Added `width` keyword to simple_popup. (ocefpaf 95325c4) - Support multi_polyline. (Younggun Kim efbd1db) - Added max and min zoom keywords. (ocefpaf 4ca4c92) Bug Fixes - Remove margins from leaflet-tiles. (Lennart Fricke 3c11433) - Fix #50 template not found on Windows OSes. (ocefpaf 101daee) - Fixed `add_wms_layer` py3k bug. (ocefpaf 154f0a5) 0.1.3 ~~~~~ - Bootstrap glyphicon marker icons. birdage - Cluster marker group, and simple markers . (birdage 801d91c) - WMS tile. (birdage 26f9668) - Expanded color support to 253 with colorbrewer. (Adam Pah 3ba39ae) - Port to python 3. (Pavel Tysliatski 5093e1b) - Update geojson_template to Leaflet.js 0.7. (Justin Duke a917551) - Update fol_template to Leaflet.js 0.7. (Justin Duke b328cec) - Add support for lines. (Jacob Wasserman e3be077) - Allow rendering w/ custom template. (Samat K Jain 1a85841) - MapQuest Open tilesets. (Samat K Jain d536949) Bug Fixes - Vincent popups take padding into account. (Kyle Corbitt 26556fe) - Simple popups correctly escape internal quotes. (Kyle Corbitt 20c979f) - Add encoding specification. jmduke - Reverted change to mathchColor. (Roy Keyes 70d7f5c) - Changed no-data fill to null/no-fill, rather than #fff. (Rob Story 6ff80a6) - Fixed issue with counties TopoJSON. (Rob Story cddaab3) 0.1.2 ~~~~~ - TopoJSON functionality. (Rob Story 5566b71) - Vincent/Vega charts as popups. (Rob Story 4b7e402) - GeoJSON overlays added. (Rob Story b5d9081) - Click to add markers, popover Lat/Lng functionality. (Rob Story 9c809f9) - Simple and Circle markers added. (Rob Story 181ac51) - Initial commit. (Rob Story 6a43874)