diff --git a/routing_common/vehicle_model.cpp b/routing_common/vehicle_model.cpp index fb03cbad5f..f881281c88 100644 --- a/routing_common/vehicle_model.cpp +++ b/routing_common/vehicle_model.cpp @@ -199,7 +199,11 @@ SpeedKMpH VehicleModel::GetSpeedOnFeatureWithoutMaxspeed(HighwayType const & typ SpeedKMpH const speed = speedIt->second.GetSpeed(isCityRoad); ASSERT(speed.IsValid(), (speed)); - return Pick(factorIt->second.GetFactor(isCityRoad) * speed, maxModelSpeed); + // Note. Weight speeds put to |m_highwayBasedInfo| are taken from the former code and should not + // be multiplied to the factor. On the contrary eta speed should be multiplied. + return SpeedKMpH( + min(speed.m_weight, maxModelSpeed.m_weight), + min(factorIt->second.GetFactor(isCityRoad).m_eta * speed.m_eta, maxModelSpeed.m_eta)); } SpeedKMpH VehicleModel::GetTypeSpeed(feature::TypesHolder const & types,