There is no way you can know 100% sure. Generally, the GPS signal would be weaker indoor, but not always. Also, the fact that the user coordinates are on a road tells you nothing, he could be indoor and the signal strength could be week and the coordinates flawed. However, depending on how accurate you want your algorithm to be, you could rely on the signal strength ( and maybe position ) to give you something.
If you want to take it to the next level, although it could prove to be a waste of time, given the fact that the user usually has movement patterns (home to work, work to shop, Sunday in the park, etc) you could try the above, plus several other parameters like a pedometer (moving, walking, running), speed (high speed, no movement from the pedometer, means he's in a car), noise, brightness etc. and run a logistic regression algorithm maybe asking for user feedback as training set. However, as you can see, this would become pretty large, and definitely not worth it if your app is small.