Hi I had a similiar problem with my dog when she would return to me over a long distance, like in a field or walking in the woods. It was actually scary sometimes watching this 2 year old Dobe running at me full steam with no intentions of stopping. I would literally have to get out of the way or be flattened.
I mentioned this to my trainer during one of our OB classes and he said "Oh thats easy to fix" I said really how? So he proceeded to tell me that next time when the dog come running towards you DO NOT MOVE take your knee and put it in front of you and let them hit it. I was like "Really" he said yes definitley - DO NOT MOVE.
Well reluctantly I took his advice, the first time she came charging I stuck the knee out at the last minute - she hit it. I dont think it felt really good for either of us but I did it. Second time she came charging same thing stuck the knee out and boom, another not so fun experience. Well the 3rd time was the charm, she came running I stuck out the knee and she stoopped about 2 feet short of hitting me YAY! Right then I gave her a Foos (Heel) command and she sat to my left side. That was it, over. Problem solved. She has never run into me since, infact now it is common practice for her to return to me and sit at my left side right away.
It may be worth a try for you. - Good Luck!
DA