openplans/Leaflet.AnimatedMarker

Name: Leaflet.AnimatedMarker

Owner: OpenPlans

Description: A Leaflet plugin to animated a Marker along a polyline

Created: 2012-11-08 23:45:07.0

Updated: 2018-01-12 23:40:03.0

Pushed: 2018-01-17 03:13:44.0

Homepage: http://openplans.github.com/Leaflet.AnimatedMarker/

Size: 193

Language: CSS

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Leaflet Animated Marker

CDNJS

This is a Leaflet plugin for animating a marker along a polyline. Check out the demo. Feedback appreciated!

How does it work?

It uses CSS3 animations to move the marker from point to point at a specific rate (meter per millisecond). For ancient browsers that don't support CSS3, the polyline is chunked into distance segments and moved per interval (not so great).

How can I use it?

The following code will create an AnimatedMarker that moves along line, assuming a Leaflet.Map called map.

var line = L.polyline([[40.68510, -73.94136],[40.68576, -73.94149],[40.68649, -73.94165]]),
    animatedMarker = L.animatedMarker(line.getLatLngs());

map.addLayer(animatedMarker);
How do I change the rate?
var animatedMarker = L.animatedMarker(line.getLatLngs(), {
  distance: 300,  // meters
  interval: 2000, // milliseconds
});
What if I don't want it to animate right away? Or need to stop it halfway through?
var animatedMarker = L.animatedMarker(line.getLatLngs(), {
  autoStart: false
});

// Start when you're ready
animatedMarker.start();

setTimeout(function() {
  // Stop the animation
  animatedMarker.stop();
}, 2000);
Can I give it a custom icon?

Yep! Just like a standard Leaflet.Marker layer.

var myIcon = L.icon({
  iconUrl: 'myicon.png'
});

var animatedMarker = L.animatedMarker(line.getLatLngs(), {
  icon: myIcon
});
Can I make the marker explode when it gets to the end of the line?

Sure! Just use the onEnd callback.

var animatedMarker = L.animatedMarker(line.getLatLngs(), {
  onEnd: function() {
    // TODO: blow up this marker
  }
});

This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.