summaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
authorrodri <rgl@antares-labs.eu>2020-02-22 22:51:45 +0000
committerrodri <rgl@antares-labs.eu>2020-02-22 22:51:45 +0000
commit3ad78f8e124a6201726d7cba3771bc71a6adaa67 (patch)
tree2e5faf99172a9d4dcb5830e1e76a4ba495f76722 /main.c
downloadgeod-master.tar.gz
geod-master.tar.bz2
geod-master.zip
now version controlled.HEADmaster
Diffstat (limited to 'main.c')
-rw-r--r--main.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/main.c b/main.c
new file mode 100644
index 0000000..487171b
--- /dev/null
+++ b/main.c
@@ -0,0 +1,41 @@
+#include <u.h>
+#include <libc.h>
+#include "geodesic.h"
+
+typedef struct Geomodel Geomodel;
+
+struct Geomodel
+{
+ double a; /* equatorial radius */
+ double f; /* flattening */
+};
+
+Geomodel WGS84 = { 6378137, 1/298.257223563 };
+
+void
+usage(void)
+{
+ fprint(2, "usage: %s lat0 lon0 lat1 lon1\n", argv0);
+ exits("usage");
+}
+
+void
+main(int argc, char *argv[])
+{
+ Geodesic g;
+ double lat0, lon0, lat1, lon1;
+ double s12;
+
+ ARGBEGIN{
+ default: usage();
+ }ARGEND;
+ if(argc != 4)
+ usage();
+ lat0 = strtod(argv[0], nil);
+ lon0 = strtod(argv[1], nil);
+ lat1 = strtod(argv[2], nil);
+ lon1 = strtod(argv[3], nil);
+ initgeod(&g, WGS84.a, WGS84.f);
+ inversegeod(&g, lat0, lon0, lat1, lon1, &s12, nil, nil);
+ print("%gm\n", s12);
+}