android,geolocation,distance,geopoints,bearing

In your code: Location here = new Location("Current"); here.setLatitude(currentLat); here.setLatitude(currentLng); you set latitude twice. Corrected, it gives absolutely right result....

mysql,gis,latitude-longitude,bearing

Here is a stored function that computes the initial compass heading (also known to navigators as the forward azimuth) to move from one point (lat1,lon1) to another point (lat2, lon2) on the (assumed spherical) globe. It's based on formulae in this web page. http://www.movable-type.co.uk/scripts/latlong.html DELIMITER $$ DROP FUNCTION IF EXISTS...

distance,latitude-longitude,bearing

This is a prime example of why commenting your code makes it more readable and maintainable. Mathematically you are looking at the following: double ec = 6356725 + 21412 * (90.0 - LAT) / 90.0; //why? This is a measure of eccentricity to account for the equatorial bulge in some...

android,locationmanager,direction,compass,bearing

From the documentation: Returns the direction of travel in degrees East of true North. If hasBearing() is false, 0.0 is returned. So 0 is north (and the degrees goes clockwise) So 90 would be East 180 South 270 West ...

Take a look the the distanceBetween method of a location object. Here is the doc. The initial bearing is the bearing you need to use from the starting point, the final bearing is the bearing you will be on when you reach the destination. I think you would be interested...