1 #include <cstdio>
2 #include "ogr_geo_utils.h"
3 
main(int,char * [])4 int main( int /* argc */ , char* /* argv */ [])
5 {
6   const double latA = 49;
7   const double lonA = 2;
8   const double latB = 49.00001;
9   const double lonB = 2.00001;
10 
11   double heading = OGR_GreatCircle_InitialHeading(latA, lonA, latB, lonB);
12   double distance = OGR_GreatCircle_Distance(latA, lonA, latB, lonB);
13   double latC = 0.0;
14   double lonC = 0.0;
15   OGR_GreatCircle_ExtendPosition(latA, lonA, distance, heading, &latC, &lonC);
16   printf("heading=%f, distance=%f\n", heading, distance);
17   printf("%.15f=%.15f, %.15f=%.15f\n", latB, latC, lonB, lonC);
18 
19   heading = OGR_GreatCircle_InitialHeading(latB, lonB, latA, lonA);
20   distance = OGR_GreatCircle_Distance(latB, lonB, latA, lonA);
21   OGR_GreatCircle_ExtendPosition(latB, lonB, distance, heading, &latC, &lonC);
22   printf("heading=%f, distance=%f\n", heading, distance);
23   printf("%.15f=%.15f, %.15f=%.15f\n", latA, latC, lonA, lonC);
24 
25   OGR_GreatCircle_ExtendPosition(0, 100, 100000, 0, &latC, &lonC);
26   printf("lat=%.15f, lon=%.15f\n", latC, lonC);
27 
28   OGR_GreatCircle_ExtendPosition(0, 100, 100000, 90, &latC, &lonC);
29   printf("lat=%.15f, lon=%.15f\n", latC, lonC);
30 
31   OGR_GreatCircle_ExtendPosition(0, 100, 100000, 180, &latC, &lonC);
32   printf("lat=%.15f, lon=%.15f\n", latC, lonC);
33 
34   OGR_GreatCircle_ExtendPosition(0, 100, 100000, 270, &latC, &lonC);
35   printf("lat=%.15f, lon=%.15f\n", latC, lonC);
36 
37   OGR_GreatCircle_ExtendPosition(0, 0, 100000, 0, &latC, &lonC);
38   printf("lat=%.15f, lon=%.15f\n", latC, lonC);
39 
40   OGR_GreatCircle_ExtendPosition(0, 0, 100000, 90, &latC, &lonC);
41   printf("lat=%.15f, lon=%.15f\n", latC, lonC);
42 
43   OGR_GreatCircle_ExtendPosition(0, 0, 100000, 180, &latC, &lonC);
44   printf("lat=%.15f, lon=%.15f\n", latC, lonC);
45 
46   OGR_GreatCircle_ExtendPosition(0, 0, 100000, 270, &latC, &lonC);
47   printf("lat=%.15f, lon=%.15f\n", latC, lonC);
48 
49   return 0;
50 }
51