Skip to content

Commit 39bd5be

Browse files
author
Martin Journois
committed
MarkerCluster Element
1 parent b77e472 commit 39bd5be

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

folium/features.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -849,3 +849,44 @@ def __init__(self, data):
849849
var {{this.get_name()}} = L.geoJson({{this.data}}).addTo({{this._parent.get_name()}});
850850
{% endmacro %}
851851
""")
852+
853+
class MarkerCluster(MacroElement):
854+
"""Adds a MarkerCluster layer on the map."""
855+
def __init__(self):
856+
"""Creates a MarkerCluster element to append into a map with
857+
Map.add_children.
858+
859+
Parameters
860+
----------
861+
"""
862+
super(MarkerCluster, self).__init__()
863+
self._name = 'MarkerCluster'
864+
self._template = Template(u"""
865+
{% macro script(this, kwargs) %}
866+
var {{this.get_name()}} = L.markerClusterGroup();
867+
{{this._parent.get_name()}}.addLayer({{this.get_name()}});
868+
{% endmacro %}
869+
""")
870+
def render(self, **kwargs):
871+
super(MarkerCluster, self).render()
872+
873+
figure = self.get_root()
874+
assert isinstance(figure,Figure), ("You cannot render this Element "
875+
"if it's not in a Figure.")
876+
figure.header.add_children(\
877+
JavascriptLink("https://cdnjs.cloudflare.com/ajax/libs/leaflet.markercluster"
878+
"/0.4.0/leaflet.markercluster-src.js"),
879+
name='marker_cluster_src')
880+
881+
figure.header.add_children(\
882+
JavascriptLink("https://cdnjs.cloudflare.com/ajax/libs/leaflet.markercluster"
883+
"/0.4.0/leaflet.markercluster.js"),
884+
name='marker_cluster')
885+
886+
figure.header.add_children(\
887+
CssLink("https://cdnjs.cloudflare.com/ajax/libs/leaflet.markercluster/0.4.0/MarkerCluster.css"),
888+
name='marker_cluster_css')
889+
890+
figure.header.add_children(\
891+
CssLink("https://cdnjs.cloudflare.com/ajax/libs/leaflet.markercluster/0.4.0/MarkerCluster.Default.css"),
892+
name="marker_cluster_default_css")

0 commit comments

Comments
 (0)