Geo::Inverse(3pm) User Contributed Perl Documentation Geo::Inverse(3pm)

# NAME¶

Geo::Inverse - Calculate geographic distance from a lat & lon pair.

# SYNOPSIS¶

```  use Geo::Inverse;
my \$obj = Geo::Inverse->new(); # default "WGS84"
my (\$lat1,\$lon1,\$lat2,\$lon2)=(38.87, -77.05, 38.95, -77.23);
my (\$faz, \$baz, \$dist)=\$obj->inverse(\$lat1,\$lon1,\$lat2,\$lon2); #array context
my \$dist=\$obj->inverse(\$lat1,\$lon1,\$lat2,\$lon2);              #scalar context
print "Input Lat: \$lat1  Lon: \$lon1\n";
print "Input Lat: \$lat2 Lon: \$lon2\n";
print "Output Distance: \$dist\n";
print "Output Forward Azimuth: \$faz\n";
print "Output Back Azimuth: \$baz\n";
```

# DESCRIPTION¶

This module is a pure Perl port of the NGS program in the public domain "inverse" by Robert (Sid) Safford and Stephen J. Frakes.

# CONSTRUCTOR¶

## new¶

The new() constructor may be called with any parameter that is appropriate to the ellipsoid method which establishes the ellipsoid.

```  my \$obj = Geo::Inverse->new(); # default "WGS84"
```

# METHODS¶

## ellipsoid¶

Method to set or retrieve the current ellipsoid object. The ellipsoid is a Geo::Ellipsoids object.

```  my \$ellipsoid=\$obj->ellipsoid;  #Default is WGS84

\$obj->ellipsoid('Clarke 1866'); #Built in ellipsoids from Geo::Ellipsoids
\$obj->ellipsoid({a=>1});        #Custom Sphere 1 unit radius
```

## inverse¶

This method is the user frontend to the mathematics. This interface will not change in future versions.

```  my (\$faz, \$baz, \$dist)=\$obj->inverse(\$lat1,\$lon1,\$lat2,\$lon2);
```

# BUGS¶

Please send to the geo-perl email list.

# LIMITS¶

No guarantees that Perl handles all of the double precision calculations in the same manner as Fortran.

# AUTHOR¶

Michael R. Davis qw/perl michaelrdavis com/