Someone stands on a sphere at a given initial latitude and longitude. They face a given angle relative to north and move forward around the sphere a given distance measured in revolutions of the sphere.

For example they stand half way between the equator and the north pole, they move north east (angle = pi * 0.25) quarter of a revolution of the sphere (distance = pi * 0.5).

3 values need to be determined from these 4 inputs. The persons final latitude and longitude and there final angle.

There is no need to know the spheres radius to work this out.

The final angle may be different from the innital angle, for example imagine starting neer the north pole facing 90 degrees right of it then moving forward, you started with the pole just on your left and ended with the pole almost behind you.

See this spreadsheet

http://with-logic.co.uk/a/moving.xlsx

It demonstrates a simple method I used where

final_latitude = initial_latitude + (sin(angle) * distance)

final_longitude = initial_longitude + (cos(angle) * distance)

Unfortunatly this only works well neer the equator but I think ought to be similar to a correct solution.

It also demonstrates an equation I found here.

http://mathforum.org/library/drmath/view/51816.html

Which seems to be like this

Code:

d is the distance to travel
tc is the angle relative to north
lat1 is the initial latitude
lon1 is the initial longitude
lat = asin(sin(lat1)*cos(d)+cos(lat1)*sin(d)*cos(tc))
dlon = atan2(sin(tc)*sin(d)*cos(lat1),cos(d)-sin(lat1)*sin(lat))
lon = mod(lon1-dlon +pi,2*pi)-pi

Unfortunatly it produces answers which appear wrong. For example moving no distance results in ending in a verry different location that you started.

I have also determined that in this diagram

http://upload.wikimedia.org/wikipedi...haversines.svg

We could

Set 'u' lat and long to be on the starting point

Set 'w' lat and long to be on the north pole

Set 'C' as the angle facing

Set 'a' as the distance to travel

Find 'v' lat and long

To solve most of the problem.

I have limeted time to find a solution. I am looking for just one solution as opposed to many partial ones, can somone produce an equation that works?

Sorry if I posted in the wrong section, there were various that it could have fitted. I hope I have adequately shown my workings and thinking so far.

final_latitude = ?

final_longitude = ?

final_angle = ?