Hey, Ultimately, the decision is going to be your friend. It's not really your choice as to whether or not he is heterosexual or homosexual. This might be frustrating, after liking him for so long, but there is honestly nothing you can (or at least, should) do to make this decision for him. You can stereotype him by the sports he plays as much as you want. When you get down to it, there is really no outward way of knowing unless he says something, or his sexual behavior speaks otherwise.
You are correct that just asking him out of the blue might really throw a fork in your friendship with him for a bit. That can be something that's kind of surprising and confusing to hear. Because of this, I don't recommend coming straight out and telling him everything you feel.
If you want to talk to him about this and possibly explore the possibility of a relationship, I think the first thing that needs to happen is for him to know that you are gay (if he doesn't already). Coming out to a friend will obviously let him know that you are at least in the right league for him (if he is gay). If you do it gracefully, you may be able to ask if he's ever had any doubts about his sexuality. This depends on how close you two are, and if that would be something that would be ok to talk about.
Other than that, I don't really see how you can change him at all. It is entirely possible that he is straight and isn't interested in a relationship with another guy. It's just a fact of life. There is nothing you can do to change someone's sexuality for them. Regardless, there is really no reason why this should hurt your friendship.
Good luck with everything. If you want to talk any further, feel free to PM me.
Take care.
-Isobel