initial commit
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
from jinja2 import Template
|
||||
|
||||
from folium.elements import JSCSSMixin
|
||||
from folium.vector_layers import BaseMultiLocation, path_options
|
||||
|
||||
|
||||
class AntPath(JSCSSMixin, BaseMultiLocation):
|
||||
"""
|
||||
Class for drawing AntPath polyline overlays on a map.
|
||||
|
||||
See :func:`folium.vector_layers.path_options` for the `Path` options.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
locations: list of points (latitude, longitude)
|
||||
Latitude and Longitude of line (Northing, Easting)
|
||||
popup: str or folium.Popup, default None
|
||||
Input text or visualization for object displayed when clicking.
|
||||
tooltip: str or folium.Tooltip, optional
|
||||
Display a text when hovering over the object.
|
||||
**kwargs:
|
||||
Polyline and AntPath options. See their Github page for the
|
||||
available parameters.
|
||||
|
||||
https://github.com/rubenspgcavalcante/leaflet-ant-path/
|
||||
|
||||
"""
|
||||
|
||||
_template = Template(
|
||||
"""
|
||||
{% macro script(this, kwargs) %}
|
||||
{{ this.get_name() }} = L.polyline.antPath(
|
||||
{{ this.locations|tojson }},
|
||||
{{ this.options|tojson }}
|
||||
).addTo({{this._parent.get_name()}});
|
||||
{% endmacro %}
|
||||
"""
|
||||
)
|
||||
|
||||
default_js = [
|
||||
(
|
||||
"antpath",
|
||||
"https://cdn.jsdelivr.net/npm/leaflet-ant-path@1.1.2/dist/leaflet-ant-path.min.js",
|
||||
)
|
||||
]
|
||||
|
||||
def __init__(self, locations, popup=None, tooltip=None, **kwargs):
|
||||
super().__init__(
|
||||
locations,
|
||||
popup=popup,
|
||||
tooltip=tooltip,
|
||||
)
|
||||
|
||||
self._name = "AntPath"
|
||||
# Polyline + AntPath defaults.
|
||||
self.options = path_options(line=True, **kwargs)
|
||||
self.options.update(
|
||||
{
|
||||
"paused": kwargs.pop("paused", False),
|
||||
"reverse": kwargs.pop("reverse", False),
|
||||
"hardwareAcceleration": kwargs.pop("hardware_acceleration", False),
|
||||
"delay": kwargs.pop("delay", 400),
|
||||
"dashArray": kwargs.pop("dash_array", [10, 20]),
|
||||
"weight": kwargs.pop("weight", 5),
|
||||
"opacity": kwargs.pop("opacity", 0.5),
|
||||
"color": kwargs.pop("color", "#0000FF"),
|
||||
"pulseColor": kwargs.pop("pulse_color", "#FFFFFF"),
|
||||
}
|
||||
)
|
||||
Reference in New Issue
Block a user