Find any bug? Open a issue or make a PR!
Also, see the guide on how to contribute.
Via NPM:
npm install leaflet-ant-path
Via Bower:
bower install leaflet-ant-path
Or just download this source code
- Leaflet >= 1
Can be used with asynchronous module loaders and CommonJS packers
- MultiAntPath was removed, and now AntPath doesn't support the legacy version anymore (0.7.7). If you're still using MultiAntPath and Leaflet 0.7, use older AntPath versions than 0.6
It's just like a polyline:
// Using the constructor...
let antPolyline = new L.Polyline.AntPath(latlngs, options);
// ... or use the factory
antPolyline = L.polyline.antPath(latlngs, options);
antPolyline.addTo(map);
Using with ES6 imports
import { AntPath, antPath } from 'leaflet-ant-path';
// Usethe constructor...
let antPolyline = new AntPath(latlngs, options);
// ... or use the factory
antPolyline = antPath(latlngs, options);
antPolyline.addTo(map);
Using with AMD:
require(['leaflet-ant-path'], function(AntPathModule) {
// Use the constructor ...
let antPolyline = new AntPathModule.AntPath(latlngs, options);
// ... or use the factory
antPolyline = AntPathModule.antPath(latlngs, options);
antPolyline.addTo(map);
});
Using with browserify:
const { AntPath, antPath } = require('leaflet-ant-path');
The AntPath extends from the FeatureGroup and implements the Path interface. Initialise with the same options of a common Polyline, with some extra options, like the flux color.
name | type | example | description |
---|---|---|---|
latlngs | L.LatLng[] or Array[number, number] | [ [0, 10], [-20, 0], ... ] | A array of latitude and longitudes (same as used in Polyline constructor ) |
options | Object | {color: 'red', weight: 5, ...} | Same as the Polyline options plus the extra options bellow |
options.paused | boolean | true/false | Starts with the animation paused (default: false) |
options.reverse | boolean | true/false | Defines if the flow follows or not the path order |
options.hardwareAccelerated | boolean | true/false | Makes the animation run with hardware acceleration (default: false) |
options.pulseColor | string | #FF00FF | Adds a color to the dashed flux (default: 'white') |
options.delay | string | 120 | Add a delay to the animation flux (default: 400) |
options.dashArray | [number, number] or string | [15, 30] | The size of the animated dashes (default: "10, 20"). See also the pattern |
name | returns | description |
---|---|---|
pause() | boolean | Stops the animation |
resume() | booelan | Resume the animation |
reverse() | this instance | Reverses the animation flow |
map(callback) | new AntPath or extended class | Iterates over the latlngs |
Also have the same as the L.Polyline API and with the same behaviour. See it here.
Thinking in the new features of JavaScript, and its new way of programing, AntPath has some nicely features to work with ES6.
When spread the path, you will receive it lat/lngs array;
//...
const antPathLayer = new AntPath(path, options);
const anotherAntPath = new AntPath(path2, options);
const latLngs = [...antPathLayer, ...anotherAntPath];
Use a for ... of ... to iterate over the path coordinates
for(let latLng of antPath) {
// do something with it latLngs ...
}
You can create you custom 'class' based on the AntPath:
class CustomAntPath extends AntPath {
//...
}
AntPath has a map method as the Array, returning a new instance of AntPath (or the child class which extends it, because of its Functor property):
//New path with translated path
const newAnthPath = myAntPath.map(pos => latLng(pos.lat + 1, pos.lng + 1));
The module provide two bundles, the full one, with some es6 polyfills (loaded by default when importing) and the lighter one without the polyfills. If you're already uses the following polyfills in your project:
- core-js/es6/symbol
- core-js/es6/reflect
Just use the lighter version (leaflet-ant-path.es6.js). If not, just use the full bundle.
This project is under the MIT LICENSE