Main Content


Point at specified azimuth, range on sphere or ellipsoid


[latout,lonout] = reckon(lat,lon,arclen,az)
[latout,lonout] = reckon(lat,lon,arclen,az,units)
[latout,lonout] = reckon(lat,lon,arclen,az,ellipsoid)
[latout,lonout] = reckon(lat,lon,arclen,az,ellipsoid,units)
[latout,lonout] = reckon(track,...)


[latout,lonout] = reckon(lat,lon,arclen,az), for scalar inputs, calculates a position (latout,lonout) at a given range, arclen, and azimuth, az, along a great circle from a starting point defined by lat and lon. lat and lon are in degrees. arclen must be expressed as degrees of arc on a sphere, and equals the length of a great circle arc connecting the point (lat, lon) to the point (latout, lonout). az, also in degrees, is measured clockwise from north. reckon calculates multiple positions when given four arrays of matching size. When given a combination of scalar and array inputs, the scalar inputs are automatically expanded to match the size of the arrays.

[latout,lonout] = reckon(lat,lon,arclen,az,units), where units is either 'degrees' or 'radians', specifies the units of the inputs and outputs, including arclen. The default value is 'degrees'.

[latout,lonout] = reckon(lat,lon,arclen,az,ellipsoid) calculates positions along a geodesic on an ellipsoid, as specified by ellipsoid. ellipsoid is a referenceSphere, referenceEllipsoid, or oblateSpheroid object, or a vector of the form [semimajor_axis eccentricity]. The range, arclen, must be expressed same unit of length as the semimajor axis of the ellipsoid.

[latout,lonout] = reckon(lat,lon,arclen,az,ellipsoid,units) calculates positions on the specified ellipsoid with lat, lon, az, latout, and lonout in the specified angle units.

[latout,lonout] = reckon(track,...) calculates positions on great circles (or geodesics) if track is 'gc' and along rhumb lines if track is 'rh'. The default value is 'gc'.


Find the coordinates of the point 600 nautical miles northwest of London, UK (51.5ºN,0º) in a great circle sense:

% Convert nm distance to degrees.
dist = nm2deg(600)
dist =

% Northwest is 315 degrees.
pt1 = reckon(51.5,0,dist,315)  
pt1 =
   57.8999  -13.3507

Now, determine where a plane from London traveling on a constant northwesterly course for 600 nautical miles would end up:

pt2 = reckon('rh',51.5,0,dist,315)

pt2 =
   58.5663  -12.3699

How far apart are the points above (distance in great circle sense)?

separation = distance('gc',pt1,pt2)

separation =

% Convert answer to nautical miles.
nmsep = deg2nm(separation)  
nmsep =

Over 50 nautical miles separate the two points.

Version History

Introduced before R2006a