1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
.TH LIBTELLURIAN_END_POINT 3 libtellurian
.SH NAME
libtellurian_end_point \- Calculate travel end-point
.SH SYNPOSIS
.nf
#include <libtellurian.h>
void libtellurian_end_point(double \fIlatitude1\fP, double \fIlongitude1\fP,
double \fIazimuth1\fP, double \fIdistance\fP,
double *\fIlatitude2_out\fP, double *\fIlongitude2_out\fP,
double *\fIazimuth2_out\fP);
void libtellurian_end_point_radians(double \fIlatitude1\fP, double \fIlongitude1\fP,
double \fIazimuth1\fP, double \fIdistance\fP,
double *\fIlatitude2_out\fP, double *\fIlongitude2_out\fP,
double *\fIazimuth2_out\fP);
.fi
.PP
Link with
.I -ltellurian
.IR -lm .
.SH DESCRIPTION
The
.BR libtellurian_end_point ()
function models the Earth as an oblate
spheroid and calculates a good approximate
location where a traveller starting at
.RI ( latitude1 ", " longitude1 )
travelling in an azimuthal direction,
.IR azimuth1 ,
for a specified
.IR distance ,
measured in meters, along the ellipsoid.
.PP
The location the traveller will end at will
be stored at
.RI ( *latitude2_out ", " *longitude2_out ).
along the ellipsoid. The azimuth from this
point to continue the on the extended, circular
path (eventually returning to the starting
pointer after having traveled the azimuthal
circumference of the Earth) in
.IR *azimuth2_out .
.PP
However
.IR latitude2_out ,
.IR longitude2_out ,
and
.I azimuth2_out
can each, independently, be set to
.IR NULL ,
which will cause the function to skip the
specific calculations needed for the value
stored in the referenced memory.
.PP
The coordinates shall be specified, and are
returned, according to GPS and in degrees.
Likewise
.I azimuth1
shall be in degrees, and
.I *azimuth2_out
will be in degress.
.PP
The
.BR libtellurian_end_point_radians ()
function is identical to the
.BR libtellurian_end_point ()
function except that radians are
used instead of degress for
.IR latitude1 ,
.IR longitude1 ,
.IR azimuth1 ,
.IR *latitude2_out ,
.IR *longitude2_out ,
and
.IR *azimuth2_out .
.SH RETURN VALUE
None.
.SH ERRORS
None.
.SH APPLICATION USAGE
If
.I *azimuth2_out
will not be used by the application
.I azimuth2_out
should be set to
.I NULL
and likwise for
.I latitude2_out
and
.IR longitude2_out .
Although this currently has almost no impact on
the application, future versions of the library
may select different methods for performing the
calculations depending on what output is enabled.
.SH NOTES
The (forward) azimuths are defined as the
direction you travelling when you travel
along a great ellipsoid (which is the
shortest distance) from
.RI ( latitude1 ", " longitude1 )
in the direction specified by
.I azimuth1
at this point. Hence,
.I *azimuth2_out
will be the direction you would continue
along the great ellipsoid, at
.RI ( *latitude2_out ", " *longitude2_out ),
\m[red]not\m[] the direction for returning to
.RI ( latitude1 ", " longitude1 ).
.SH SEE ALSO
.BR libtellurian (7)
|