Skip to content

Commit d349e19

Browse files
authored
finishes #684 (#686)
1 parent 8216a86 commit d349e19

3 files changed

Lines changed: 43 additions & 22 deletions

File tree

examples/GulfStreamImageOverlay.ipynb

Lines changed: 20 additions & 15 deletions
Large diffs are not rendered by default.

folium/map.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -217,12 +217,6 @@ def __init__(self, location=None, width='100%', height='100%',
217217
left: {{this.left[0]}}{{this.left[1]}};
218218
top: {{this.top[0]}}{{this.top[1]}};
219219
}
220-
#{{this.get_name()}} .leaflet-image-layer {
221-
image-rendering: pixelated; /* chrome */
222-
image-rendering: -moz-crisp-edges; /* firefox */
223-
image-rendering: -o-crisp-edges; /* opera */
224-
-ms-interpolation-mode: nearest-neighbor; /* internet explorer */
225-
}
226220
</style>
227221
{% endmacro %}
228222
{% macro html(this, kwargs) %}

folium/plugins/image_overlay.py

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import json
66

7+
from branca.element import Element, Figure
78
from branca.utilities import image_to_url
89

910
from folium.map import Layer
@@ -110,10 +111,11 @@ class ImageOverlay(Layer):
110111
"""
111112
def __init__(self, image, bounds, opacity=1., attr=None,
112113
origin='upper', colormap=None, mercator_project=False,
113-
overlay=True, control=True):
114+
overlay=True, control=True, pixelated=True):
114115
super(ImageOverlay, self).__init__(overlay=overlay, control=control)
115116
self._name = 'ImageOverlay'
116117
self.overlay = overlay
118+
self.pixelated = pixelated
117119

118120
if mercator_project:
119121
image = mercator_transform(image,
@@ -140,6 +142,26 @@ def __init__(self, image, bounds, opacity=1., attr=None,
140142
{% endmacro %}
141143
""")
142144

145+
def render(self, **kwargs):
146+
super(ImageOverlay, self).render()
147+
148+
figure = self.get_root()
149+
assert isinstance(figure, Figure), ('You cannot render this Element '
150+
'if it is not in a Figure.')
151+
pixelated = """<style>
152+
.leaflet-image-layer {
153+
image-rendering: -webkit-optimize-contrast; /* old android/safari*/
154+
image-rendering: crisp-edges; /* safari */
155+
image-rendering: pixelated; /* chrome */
156+
image-rendering: -moz-crisp-edges; /* firefox */
157+
image-rendering: -o-crisp-edges; /* opera */
158+
-ms-interpolation-mode: nearest-neighbor; /* ie */
159+
}
160+
</style>"""
161+
162+
if self.pixelated:
163+
figure.header.add_child(Element(pixelated), name='leaflet-image-layer')
164+
143165
def _get_self_bounds(self):
144166
"""
145167
Computes the bounds of the object itself (not including it's children)

0 commit comments

Comments
 (0)