diff --git a/routing/index_router.cpp b/routing/index_router.cpp index 8f9cde0710..e9130049f2 100644 --- a/routing/index_router.cpp +++ b/routing/index_router.cpp @@ -423,8 +423,11 @@ RouterResultCode IndexRouter::DoCalculateRoute(Checkpoints const & checkpoints, isStartSegmentStrictForward, *graph); vector subroute; + static double constexpr kEpsAlmostZero = 1e-7; double const contributionCoef = - MercatorBounds::DistanceOnEarth(startCheckpoint, finishCheckpoint) / checkpointsLength; + !base::AlmostEqualAbs(checkpointsLength, 0.0, kEpsAlmostZero) ? + MercatorBounds::DistanceOnEarth(startCheckpoint, finishCheckpoint) / checkpointsLength : + kEpsAlmostZero; AStarSubProgress subProgress(startCheckpoint, finishCheckpoint, contributionCoef); progress.AppendSubProgress(subProgress);