Most events have fixed routes. With a fixed route, you have the perfect reference in order to determine the participants 'distance on track'. But what happends if somebody goes off track? Or if the event is free-route, like TransIberica for example.
Although free-route events intent to be ranked based upon checkpoints, 'first rider in is leading', you still would like to know their distance covered.
Distance is also very important as it is the base for calculating other additional data, like moving time or route speed, averages etc.
If you know (tracking-) point A and (tracking-) point B, you can use the Haversine formula to calculate the distance between those two points. This is the distance 'as the crow flies', in a straight line, ignoring anything that has been countered in between. Since the most used tracking interval is 5 minutes happends in between those two known points, cornering, bridges, hill climbs, hairpins etc.
As of today, we have fired up two servers, physically separated, running smart routing software. For each incoming waypoint, we now as the smart routing algorithm what would have been the most logical route.
This results in a far more accurate distance reading in free-route events, even with low tracking intervals.
Below is an example. If you start at point A and go to point B, you would have covered 1.14 KM if we were to rely on the point-to-point calculation. In real-life, you would have covered 4.8 KM as you had to follow the path to guide you across the river.
We currently have deployed smart-routing for the continent of Europe + Canary Islands and focussed on road cycling. This will be expanded over time to cover all area's where we track events.