control-ruler.js (791B)
1 import L from 'leaflet'; 2 import './track-list'; 3 import './ruler.css'; 4 import {makeButton} from '~/lib/leaflet.control.commons'; 5 6 L.Control.TrackList.Ruler = L.Control.extend({ 7 options: { 8 position: 'topleft' 9 }, 10 11 initialize: function(trackList, options) { 12 L.Control.prototype.initialize.call(this, options); 13 this._trackList = trackList; 14 }, 15 16 onAdd: function(map) { 17 this._map = map; 18 let {container} = makeButton('', 'Measure distance', 'icon-ruler'); 19 this._container = container; 20 L.DomEvent.on(container, 'click', this.onClick, this); 21 return container; 22 }, 23 24 onClick: function() { 25 this._trackList.setExpanded(); 26 this._trackList.addTrackAndEdit('Ruler').measureTicksShown(true); 27 } 28 29 });