table of contents
Geo::Inverse(3pm) | User Contributed Perl Documentation | Geo::Inverse(3pm) |
NAME¶
Geo::Inverse - Calculate geographic distance from a latitude and longitude 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¶
initialize¶
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 open an issue on GitHub
LIMITS¶
No guarantees that Perl handles all of the double precision calculations in the same manner as Fortran.
LICENSE¶
MIT License
Copyright (c) 2022 Michael R. Davis
SEE ALSO¶
Geo::Ellipsoid, GIS::Distance::GeoEllipsoid, Geo::Calc
2023-01-07 | perl v5.36.0 |