the difference is simple. Latitude/Longitude is double number like 57.126847, LatitudeE6/LongitudeE6 is integer value of Latitude/Longitude multiplied by 1.000.000. When you use GeoPoint you have to give integer parameters (LatitudeE6,LongitudeE6) and then you can't give Latitude/Longitude as a double, so you have to miltiply it by 1.000.000. When you use Location it need double values of Latitude/Longtitude.
I hope you understand what I mean ;) If you have another questions - write! ;)