Skip to content

Commit 8bbc78d

Browse files
committed
added default options to tile_layer
missing template added Otherwise ``folium.initialize_notebook()`` causes error. added test
1 parent fff78a3 commit 8bbc78d

File tree

4 files changed

+61
-4
lines changed

4 files changed

+61
-4
lines changed

folium/folium.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,9 @@ def __init__(self, location=None, width='100%', height='100%',
221221
self.template_vars.setdefault('tile_layers', [])
222222

223223
@iter_obj('simple')
224-
def add_tile_layer(self, tile_name=None, tile_url=None, active=False):
224+
def add_tile_layer(self, tile_name=None, tile_url=None, active=False, minZoom=0,
225+
maxZoom=18, tms=False, continuousWorld=False, noWrap=False, zoomOffset=0,
226+
zoomReverse=False, opacity=1, attribution='Leaflet'):
225227
"""Adds a simple tile layer.
226228
227229
Parameters
@@ -236,9 +238,17 @@ def add_tile_layer(self, tile_name=None, tile_url=None, active=False):
236238
if tile_name not in self.added_layers:
237239
tile_name = tile_name.replace(" ", "_")
238240
tile_temp = self.env.get_template('tile_layer.js')
239-
240241
tile = tile_temp.render({'tile_name': tile_name,
241-
'tile_url': tile_url})
242+
'tile_url': tile_url,
243+
'minZoom': minZoom,
244+
'maxZoom': maxZoom,
245+
'tms': str(tms).lower(),
246+
'continuousWorld': str(continuousWorld).lower(),
247+
'noWrap': str(noWrap).lower(),
248+
'zoomOffset': zoomOffset,
249+
'zoomReverse': str(zoomReverse).lower(),
250+
'opacity': opacity,
251+
})
242252

243253
self.template_vars.setdefault('tile_layers', []).append((tile))
244254

folium/templates/leaflet-dvf.markers.min.js

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

folium/templates/tile_layer.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,10 @@
1-
var {{ tile_name }} = L.tileLayer('{{ tile_url }}');
1+
var {{ tile_name }} = L.tileLayer('{{ tile_url }}',{
2+
'minZoom': {{minZoom}},
3+
'maxZoom': {{maxZoom}},
4+
'tms': {{tms}},
5+
'continuousWorld': {{continuousWorld}},
6+
'noWrap': {{noWrap}},
7+
'zoomOffset': {{zoomOffset}},
8+
'zoomReverse': {{zoomReverse}},
9+
'opacity': {{opacity}}
10+
});

tests/folium_tests.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,38 @@ def test_wms_layer(self):
139139
'wms_transparent': 'true'})
140140
assert map.template_vars['wms_layers'][0] == wms
141141

142+
def test_add_tile_layer(self):
143+
'''Test add_layer URLs'''
144+
145+
map = folium.Map(location=[44, -73], zoom_start=3)
146+
tile_name = "Temperature"
147+
tile_url = 'http://gis.srh.noaa.gov/arcgis/services/NDFDTemps/'
148+
tile_url += 'MapServer/WMSServer'
149+
minZoom = 1
150+
maxZoom = 5
151+
tms = True
152+
continuousWorld = False
153+
noWrap = True
154+
zoomOffset = 1
155+
zoomReverse = True
156+
opacity = 2
157+
map.add_tile_layer(tile_name=tile_name, tile_url=tile_url, active=True, minZoom=minZoom,
158+
maxZoom=maxZoom, tms=tms, continuousWorld=continuousWorld, noWrap=noWrap, zoomOffset=zoomOffset,
159+
zoomReverse=zoomReverse, opacity=opacity, attribution='Leaflet')
160+
tile_temp = self.env.get_template('tile_layer.js')
161+
tile = tile_temp.render({'tile_name': tile_name,
162+
'tile_url': tile_url,
163+
'minZoom': minZoom,
164+
'maxZoom': maxZoom,
165+
'tms': str(tms).lower(),
166+
'continuousWorld': str(continuousWorld).lower(),
167+
'noWrap': str(noWrap).lower(),
168+
'zoomOffset': zoomOffset,
169+
'zoomReverse': str(zoomReverse).lower(),
170+
'opacity': opacity,
171+
})
172+
assert map.template_vars['tile_layers'][0] == tile
173+
142174
def test_simple_marker(self):
143175
'''Test simple marker addition'''
144176

0 commit comments

Comments
 (0)