python-visualization / python-visualization/folium

fit_bounds seems to fail when multiple maps/cells are rendered in a notebook

Open
#2,080 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
7.4k
Forks
2.3k
Avg merge
17h 22m
Merged PRs (30d)
11

Description

Describe the bug
Since about September of 2024 I've noticed that folium seems to sometimes fail to correctly "apply" fit_bounds to maps when multiple maps are rendered back-to-back. Manually running map generation cells a second time seems to cause the map to zoom/fit correctly. Have others experienced this?

To Reproduce
[update] I'm happy to report that I now have a concise notebook the reproduces this issue for me consistently.
FitBoundsTest.txt Rename as .ipynb

The issue seems to be related to whether the call to the map rendering function is on or off screen at the time it gets executed. In my browsers, calling "restart kernel and run all" on this notebook causes the notebook to scroll to the start of the last cell where I have some filler_text which fills the screen, yet the last call to test() is barely visible. If I don't scroll during the execution of the cells, once the run is complete, when I do scroll up almost always the first map has not "zoomed" (fit to bounds correctly),
Screenshot from 2025-01-16 08-13-15
Sometimes the second map is also not "zoomed" correctly, but always the third is. If I remove the filler text (or move it to the top) and restart and run all again, all 3 maps "zoom" correctly. Similarly, if I scroll up to the calls to test() while it is "running all", it also succeeds every time. And, if I manually re-run a single cell that failed to zoom correctly during run all, it then zooms correctly. I hope that helps find and fix the issue. Please let me know how I can be of more assistance.

Expected behavior
All maps correctly fit to bounds as expected.

Environment (please complete the following information):

Current setup, though I've seen it in other settings as well. I believe on windows.

  • Browser: Firefox and Chrome
  • Jupyter Notebook or html files? Jupyter
  • Python version: 3.11.8
  • folium version: 0.19.4
  • branca version: 0.8.1

Additional context
Never saw this before the end of September 2024, but now see it many places.

Possible solutions
?

folium is maintained by volunteers. Can you help making a fix for this issue?
Maybe

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Rename the attached FitBoundsTest.txt file to .ipynb and run it in Jupyter with multiple maps, comparing on-screen and off-screen execution during “restart kernel and run all.” Check the fit_bounds rendering behavior when cells run back-to-back and when a failed cell is rerun. Done means all reproduced maps consistently fit their bounds.

Written by the indexing model from the issue text.

Assessment

Tech stack
jupyter-notebook, python
Domain
data-visualization
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.