Saving folium.Map to HTML file via map.save('out.html') adds iteratively proportionally as many lines as many objects you have.
I.E. on a second map.save() will be added N strings, on third save will be added 2xN and so on.
N is number of objects + number of tiles + empty strings.
For 10 object it will be 32 strings.
It is a problem for maps with thousands of objects, when you can get +200KB for output file each time.
To Reproduce
import folium
mymap = folium.Map(location=[40.75, -73.98], zoom_start=13)
# 10 objects
locations = [
[40.7829, -73.9654, "Central Park"],
[40.7484, -73.9857, "Empire State Building"],
[40.7580, -73.9855, "Times Square"],
[40.7061, -73.9969, "Brooklyn Bridge"],
[40.6892, -74.0445, "Statue of Liberty"],
[40.7587, -73.9787, "Rockefeller Center"],
[40.7128, -74.0060, "City Hall"],
[40.7308, -73.9973, "Washington Square Park"],
[40.7420, -74.0048, "The High Line"],
[40.7118, -74.0131, "One World Trade Center"]
]
for lat, lon, name in locations:
folium.Marker(
location=[lat, lon],
icon=folium.Icon(color="blue", icon="info-sign")
).add_to(mymap)
# Save the as HTML file twice in a row
mymap.save("1.html")
mymap.save("2.html")
Output of `diff 1.html 2.html `
579a580,612
>
> tile_layer_052f99b21ed1f9bb1c251666826b3405.addTo(map_5c1c64a03c53392f2db23886f23f12a3);
>
>
> marker_63f8ecad580ed4635b59dcfaf6c3e61f.setIcon(icon_beb42bcc1ea445f94958395ebfe206ea);
>
>
> marker_b160f28fb6d129ef2f92cdf20ea3e4d6.setIcon(icon_e75ca799208df661741ebbf502942fca);
>
>
> marker_53b65bb222dd30de59a2e63245de6307.setIcon(icon_68748d7f297e38784cecd742f031d88b);
>
>
> marker_25b58c032f3524af0221ac1207168844.setIcon(icon_32131f76c1960e3d1549864864743cd2);
>
>
> marker_334210d9a39502bfdfed7afdbd9e79c3.setIcon(icon_79f631e614c35fa625cb9ebf66332aa3);
>
>
> marker_da7f6dc7f513fca1304a2326ea2f0816.setIcon(icon_cbf658a28b584b3cc19f9f6bb4e79bd2);
>
>
> marker_bf430c5d7c07635d674ed2a334bb8e75.setIcon(icon_2a596a031d157fecbc56bf8fb6cc6780);
>
>
> marker_bdd2c45a9c4ea0d913663870e08555da.setIcon(icon_b46c071e79f3899b2fb392d7bc213dab);
>
>
> marker_9dd46997657a85db4ffe1fd23d60ceb2.setIcon(icon_6defd56ba4021afd9de3f8e7297d13eb);
>
>
> marker_9623e338468155be7219352ee3f2ba7a.setIcon(icon_dd2bb17bb8228efb1570ab10408dc3a2);
>
Expected behavior
No extra strings added
Environment (please complete the following information):
- jupyter/cli both
- Python version 3.12
- folium version 0.20.0
- branca version 0.8.2
Saving folium.Map to HTML file via
map.save('out.html')adds iteratively proportionally as many lines as many objects you have.I.E. on a second
map.save()will be added N strings, on third save will be added 2xN and so on.N is number of objects + number of tiles + empty strings.
For 10 object it will be 32 strings.
It is a problem for maps with thousands of objects, when you can get +200KB for output file each time.
To Reproduce
Output of `diff 1.html 2.html `
Expected behavior
No extra strings added
Environment (please complete the following information):