C library for Geodesics 2.2
Loading...
Searching...
No Matches
inverse.c
Go to the documentation of this file.
1/**
2 * @file inverse.c
3 * @brief A test program for geod_inverse()
4 **********************************************************************/
5
6#include <stdio.h>
7#include "geodesic.h"
8
9#if defined(_MSC_VER)
10/* Squelch warnings about scanf */
11# pragma warning (disable: 4996)
12#endif
13
14/**
15 * A simple program to solve the inverse geodesic problem.
16 *
17 * This program reads in lines with lat1, lon1, lat2, lon2 and prints out lines
18 * with azi1, azi2, s12 (for the WGS84 ellipsoid).
19 **********************************************************************/
20
21int main(void) {
22 double a = 6378137, f = 1/298.257223563; /* WGS84 */
23 double lat1, lon1, azi1, lat2, lon2, azi2, s12;
24 struct geod_geodesic g;
25
26 geod_init(&g, a, f);
27 while (scanf("%lf %lf %lf %lf", &lat1, &lon1, &lat2, &lon2) == 4) {
28 geod_inverse(&g, lat1, lon1, lat2, lon2, &s12, &azi1, &azi2);
29 printf("%.15f %.15f %.10f\n", azi1, azi2, s12);
30 }
31 return 0;
32}
API for the geodesic routines in C.
void GEOD_DLL geod_init(struct geod_geodesic *g, double a, double f)
void GEOD_DLL geod_inverse(const struct geod_geodesic *g, double lat1, double lon1, double lat2, double lon2, double *ps12, double *pazi1, double *pazi2)
int main(void)
Definition inverse.c:21