the square blog post I referenced implements this better. they save tuples of (timestamp, location) and can therefore determine velocity (more or less).
I used a really ghetto distance metric as a proxy for velocity and since the sampling rate varies on everyone's local machines it can produce really ugly signatures.
close inspection of the implementation will not bode well for anyone's opinion of my programming abilities.
my excuse is that this is a tiny bit of UI candy on top of my core business. if i were to spend much more time on it, I'd change a lot of things about it.