/** *

Geodesic routines from GeographicLib implemented in Java

* @author Charles F. F. Karney (charles@karney.com) * @version 1.50 * *

* The documentation for other versions is available at * https://geographiclib.sourceforge.io/m.nn/java for versions numbers * m.nn ≥ 1.31. *

* Licensed under the * MIT/X11 License; see * * LICENSE.txt. * *

Abstract

*

* GeographicLib-Java is a Java implementation of the geodesic algorithms from * GeographicLib. This is a * self-contained library which makes it easy to do geodesic computations for * an ellipsoid of revolution in a Java program. It requires Java version 1.2 * or later. * *

Downloading

*

* Download either the source or the pre-built package as follows: * *

Obtaining the source

* GeographicLib-Java is part of GeographicLib which available for download at * *

* as either a compressed tar file (tar.gz) or a zip file. After unpacking * the source, the Java library can be found in GeographicLib-1.50/java. (This * library is completely independent from the rest of GeodegraphicLib.) The * library consists of the files in the src/main/java/net/sf/geographiclib * subdirectory. * *

The pre-built package

* GeographicLib-Java is available as a pre-built package on Maven Central * (thanks to Chris Bennight for help on this deployment). So, if you use * maven to build your code, you just * need to include the dependency
{@code
 *   
 *     net.sf.geographiclib
 *     GeographicLib-Java
 *     1.50
 *    }
* in your {@code pom.xml}. * *

Sample programs

*

* Included with the source are 3 small test programs *

*

* Here, for example, is {@code Inverse.java}

{@code
 * // Solve the inverse geodesic problem.
 *
 * // This program reads in lines with lat1, lon1, lat2, lon2 and prints
 * // out lines with azi1, azi2, s12 (for the WGS84 ellipsoid).
 *
 * import java.util.*;
 * import net.sf.geographiclib.*;
 * public class Inverse {
 *   public static void main(String[] args) {
 *     try {
 *       Scanner in = new Scanner(System.in);
 *       double lat1, lon1, lat2, lon2;
 *       while (true) {
 *         lat1 = in.nextDouble(); lon1 = in.nextDouble();
 *         lat2 = in.nextDouble(); lon2 = in.nextDouble();
 *         GeodesicData g = Geodesic.WGS84.Inverse(lat1, lon1, lat2, lon2);
 *         System.out.println(g.azi1 + " " + g.azi2 + " " + g.s12);
 *       }
 *     }
 *     catch (Exception e) {}
 *   }
 * }}
* *

Compiling and running a sample program

*

* Three difference ways of compiling and running {@code Inverse.java} are * given. These differ in the degree to which they utilize * maven to manage your Java code and * its dependencies. (Thanks to Skip Breidbach for supplying the maven * support.) * *

Without using maven

* Compile and run as follows
 * cd inverse/src/main/java
 * javac -cp .:../../../../src/main/java Inverse.java
 * echo -30 0 29.5 179.5 | java -cp .:../../../../src/main/java Inverse 
* On Windows, change this to
 * cd inverse\src\main\java
 * javac -cp .;../../../../src/main/java Inverse.java
 * echo -30 0 29.5 179.5 | java -cp .;../../../../src/main/java Inverse 
* *

Using maven to package GeographicLib

* Use maven to create a jar file by * running (in the main java directory)
 * mvn package 
* (Your first run of maven may take a long time, because it needs to download * some additional packages to your local repository.) Then compile and run * Inverse.java with
 * cd inverse/src/main/java
 * javac -cp .:../../../../target/GeographicLib-Java-1.50.jar Inverse.java
 * echo -30 0 29.5 179.5 |
 *   java -cp .:../../../../target/GeographicLib-Java-1.50.jar Inverse 
* *

Using maven to build and run {@code Inverse.java}

* The sample code includes a {@code pom.xml} which specifies * GeographicLib-Java as a dependency. You can build and install this * dependency by running (in the main java directory)
 * mvn install 
* Alternatively, you can let maven download it from Maven Central. You can * compile and run Inverse.java with
 * cd inverse
 * mvn compile
 * echo -30 0 29.5 179.5 | mvn -q exec:java 
* *

Using the library

* *

* The important classes are *

*

* The documentation is generated using javadoc when * {@code mvn package -P release} is run (the top of the documentation tree is * {@code target/apidocs/index.html}). This is also available on the web at * * https://geographiclib.sourceforge.io/html/java/index.html. * *

External links

* * *

Change log

* **********************************************************************/ package net.sf.geographiclib;