UNPKG

leaflet.polyline.snakeanim

Version:

Animates Leaflet polylines so they creep into full length

76 lines (56 loc) 2.25 kB
<!DOCTYPE html> <html> <head> <title>Leaflet debug page</title> <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.1/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin=""/> <!--<script src="https://unpkg.com/leaflet@1.3.1/dist/leaflet-src.js" crossorigin=""></script>--> <script src="https://unpkg.com/leaflet@1.3.1/dist/leaflet.js" integrity="sha512-/Nsx9X4HebavoBvEBuyp3I7od5tA0UzAxs+j83KgC8PU0kgB4XiK4Lfe4y4cgBtaRJQEIFCW+oC506aPT2L1zw==" crossorigin=""></script> <script src="L.Polyline.SnakeAnim.js"></script> </head> <body> <div id="map" style="width: 800px; height: 600px; border: 1px solid #ccc"></div> <div><p>Badger badger badger badger badger badger badger<br> badger badger badger badger badger mushroom mushroom!<p> <p>Badger badger badger badger badger badger badger<br> badger badger badger badger badger <button onclick='snake()'>SNAKE! IT'S A SNAKE!</button></p></div> <script src="route.js"></script> <script> // for (var i = 0, latlngs = [], len = route.length; i < len; i++) { // latlngs.push(new L.LatLng(route[i][0], route[i][1])); // } var trd = [63.5, 11], mad = [40.5, -3.5], lnd = [51.5, -0.5], ams = [52.3, 4.75], vlc = [39.5, -0.5]; var route = L.featureGroup([ L.marker(trd), L.polyline([trd, ams]), L.marker(ams), L.polyline([ams, lnd]), L.marker(lnd), L.polyline([lnd, mad]), L.marker(mad), L.polyline([mad, vlc]), L.marker(vlc) ]); var map = L.map('map'); var positron = L.tileLayer('http://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png', { attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, &copy; <a href="http://cartodb.com/attributions">CartoDB</a>' }).addTo(map); map.fitBounds(route.getBounds()); // map.addLayer(new L.Marker(latlngs[0])); // map.addLayer(new L.Marker(latlngs[len - 1])); map.addLayer(route); function snake() { route.snakeIn(); } route.on('snakestart snake snakeend', function(ev){ console.log(ev.type); }); </script> </body> </html>