Skip to content

Commit fe182f8

Browse files
author
Martin Journois
committed
additional layers are templates
1 parent 662b680 commit fe182f8

File tree

4 files changed

+49
-2
lines changed

4 files changed

+49
-2
lines changed

folium/plugins/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@
33
from .marker_cluster import MarkerCluster
44
from .scroll_zoom_toggler import ScrollZoomToggler
55
from .terminator import Terminator
6-
from .boat_marker import BoatMarker
6+
from .boat_marker import BoatMarker
7+
from .layer import Layer, LayerControl

folium/plugins/layer.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# -*- coding: utf-8 -*-
2+
3+
from .plugin import Plugin
4+
5+
class Layer(Plugin):
6+
"""Adds a layer to the map."""
7+
def __init__(self, layer_name = None, tile_url=None, min_zoom=1, max_zoom=18, attribution=''):
8+
super(Layer, self).__init__()
9+
self.plugin_name = 'Layer'
10+
self.tile_url = tile_url if tile_url is not None else '//otile1.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.png'
11+
self.attribution = attribution
12+
self.min_zoom = min_zoom
13+
self.max_zoom = max_zoom
14+
self.object_id = self.object_name
15+
if layer_name is not None:
16+
self.object_name = layer_name
17+
18+
def render_js(self, nb):
19+
return """
20+
var layer_"""+self.object_id+""" = L.tileLayer('"""+self.tile_url+"""', {
21+
maxZoom: """+str(self.max_zoom)+""",
22+
minZoom: """+str(self.min_zoom)+""",
23+
attribution: '"""+str(self.attribution)+"""'
24+
});
25+
layer_"""+self.object_id+""".addTo(map);
26+
"""
27+
28+
class LayerControl(Plugin):
29+
"""Adds a layer control to the map."""
30+
def __init__(self):
31+
super(LayerControl, self).__init__()
32+
self.plugin_name = 'LayerControl'
33+
34+
def render_js(self, nb):
35+
return """
36+
var baseLayer = {
37+
"Base Layer": base_tile,"""+\
38+
",".join(['"%s" : layer_%s ' % (x.object_name,x.object_id) for x in self.map.plugins['Layer']])+\
39+
"""};
40+
41+
L.control.layers(baseLayer, layer_list).addTo(map);
42+
"""
43+
44+
45+

folium/plugins/plugin.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ def __init__(self):
1313
def add_to_map(self, map):
1414
"""Adds the plugin on a folium.map object."""
1515
map.plugins.setdefault(self.plugin_name,[]).append(self)
16+
self.map = map
1617

1718
def render_html(self, nb):
1819
"""Generates the HTML part of the plugin."""

folium/templates/fol_template.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@
131131
layers: [base_tile]
132132
});
133133

134-
L.control.layers(baseLayer, layer_list).addTo(map);
134+
// L.control.layers(baseLayer, layer_list).addTo(map);
135135

136136
//cluster group
137137
var clusteredmarkers = L.markerClusterGroup();

0 commit comments

Comments
 (0)