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