check-in bower_components
This commit is contained in:
parent
4cc16bccd0
commit
9e08e74132
101 changed files with 90960 additions and 0 deletions
80
bower_components/leaflet-plugins/layer/vector/GPX.Speed.js
vendored
Normal file
80
bower_components/leaflet-plugins/layer/vector/GPX.Speed.js
vendored
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
//#include "GPX.js"
|
||||
|
||||
(function() {
|
||||
|
||||
function d2h(d) {
|
||||
var hex = '0123456789ABCDEF';
|
||||
var r = '';
|
||||
d = Math.floor(d);
|
||||
while (d != 0) {
|
||||
r = hex[d % 16] + r;
|
||||
d = Math.floor(d / 16);
|
||||
}
|
||||
while (r.length < 2) r = '0' + r;
|
||||
return r;
|
||||
}
|
||||
|
||||
function gradient(color) {
|
||||
// First arc (0, PI) in HSV colorspace
|
||||
function f2h(d) { return d2h(256 * d); }
|
||||
if (color < 0)
|
||||
return "#FF0000";
|
||||
else if (color < 1.0/3)
|
||||
return "#FF" + f2h(3 * color) + "00";
|
||||
else if (color < 2.0/3)
|
||||
return "#" + f2h(2 - 3 * color) + "FF00";
|
||||
else if (color < 1)
|
||||
return "#00FF" + f2h(3 * color - 2);
|
||||
else
|
||||
return "#00FFFF";
|
||||
};
|
||||
|
||||
function gpx2time(s) {
|
||||
// 2011-09-24T12:07:53Z
|
||||
if (s.length != 10 + 1 + 8 + 1)
|
||||
return new Date();
|
||||
return new Date(s);
|
||||
};
|
||||
|
||||
L.GPX.include({
|
||||
options: {
|
||||
maxSpeed: 110,
|
||||
chunks: 200
|
||||
},
|
||||
|
||||
speedSplitEnable: function(options) {
|
||||
L.Util.setOptions(this, options);
|
||||
return this.on('addline', this.speed_split, this);
|
||||
},
|
||||
|
||||
speedSplitDisable: function() {
|
||||
return this.off('addline', this.speed_split, this);
|
||||
},
|
||||
|
||||
speed_split: function(e) {
|
||||
var l = e.line.pop(), ll = l.getLatLngs();
|
||||
var chunk = Math.floor(ll.length / this.options.chunks);
|
||||
if (chunk < 3) chunk = 3;
|
||||
var p = null;
|
||||
for (var i = 0; i < ll.length; i += chunk) {
|
||||
var d = 0, t = null;
|
||||
if (i + chunk > ll.length)
|
||||
chunk = ll.length - i;
|
||||
for (var j = 0; j < chunk; j++) {
|
||||
if (p) d += p.distanceTo(ll[i+j]);
|
||||
p = ll[i + j];
|
||||
if (!t) t = gpx2time(p.meta.time);
|
||||
}
|
||||
p = ll[i + chunk - 1];
|
||||
t = (gpx2time(p.meta.time) - t) / (3600 * 1000);
|
||||
var speed = 0.001 * d / t;
|
||||
//console.info('Dist: ' + d + "; Speed: " + speed);
|
||||
var color = gradient(speed / this.options.maxSpeed);
|
||||
var l = new L.Polyline(ll.slice(i, i+chunk+1), {color: color, weight: 2, opacity: 1});
|
||||
l.bindPopup('Dist: ' + d.toFixed() + "m; Speed: " + speed.toFixed(2) + " km/h");
|
||||
e.line.push(l);
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
})();
|
||||
Loading…
Add table
Add a link
Reference in a new issue