NAME
Geo::Forward - Calculate geographic location from lat, lon, distance, and heading.
SYNOPSIS
use Geo::Forward;
my $obj = Geo::Forward->new(); # default "WGS84"
my ($lat1,$lon1,$faz,$dist)=(38.871022, -77.055874, 62.888507083, 4565.6854);
my ($lat2,$lon2,$baz) = $obj->forward($lat1,$lon1,$faz,$dist);
print "Input Lat: $lat1 Lon: $lon1\n";
print "Input Forward Azimuth: $faz\n";
print "Input Distance: $dist\n";
print "Output Lat: $lat2 Lon: $lon2\n";
print "Output Back Azimuth: $baz\n";
DESCRIPTION
This module is a pure Perl port of the NGS program in the public domain "forward" by Robert (Sid) Safford and Stephen J. Frakes.
CONSTRUCTOR
new
The new() constructor may be called with any parameter that is appropriate to the Geo::Ellipsoids->new() constructor which establishes the ellipsoid.
my $obj = Geo::Forward->new(); # default "WGS84"
METHODS
ellipsoid
Method to set or retrieve the current ellipsoid object. The ellipsoid object 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
forward
This method is the user frontend to the mathematics. This interface will not change in future versions.
my ($lat2,$lon2,$baz) = $obj->forward($lat1,$lon1,$faz,$dist);
TODO
Add tests for more ellipsoids.
BUGS
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/
LICENSE
Copyright (c) 2006 Michael R. Davis (mrdvt92)
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
Net::GPSD Geo::Spline Geo::Ellipsoid Geo::Ellipsoids