Mobile devices are often used with fitness applications for monitoring and tracking fitness-related metrics such as distance traveled, calorie consumption and heartbeat. Some mobile devices use data provided by a Global Navigation Satellite System (GNSS) receiver that is embedded in or coupled to the mobile device to determine the distance traveled by a pedestrian. Traditional approaches compute the distance travelled from consecutive position solutions or Doppler-based velocity estimates output by the GNSS receiver. In both approaches the errors can grow significantly over time, resulting in a biased estimate of the distance traveled. This is especially true when the GNSS estimated position and velocity have large errors by operating in a multipath environment (e.g., urban canyons) or when the GNSS position update rate is slow allowing position errors to grow rapidly.