NAME

Geo::Ellipsoids - Package for standard Geo:: ellipsoids a, b, f and 1/f values.

SYNOPSIS

use Geo::Ellipsoids;
my $obj = Geo::Ellipsoids->new();
$obj->set('WGS84'); #default
print "a=", $obj->a, "\n";
print "b=", $obj->b, "\n";
print "f=", $obj->f, "\n";
print "i=", $obj->i, "\n";
print "e=", $obj->e, "\n";
print "n=", $obj->n(45), "\n";

DESCRIPTION

CONSTRUCTOR

new

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

my $obj = Geo::Ellipsoid->new();

METHODS

set

Method sets the current ellipsoid. This method is called when the object is constructed (default is WGS84).

$obj->set(); #default WGS84
$obj->set('Clarke 1866'); #All built in ellipsoids are stored in meters
$obj->set({a=>1, b=>1});  #Custom Sphere 1 unit radius

list

Method returns a list of known elipsoid names.

my @list=$obj->list;

my $list=$obj->list;
while (@$list) {
  print "$_\n";
}

a

Method returns the value of the semi-major axis.

my $a=$obj->a;

b

Method returns the value of the semi-minor axis.

my $b=$obj->b;

f

Method returns the value of flatting

my $f=$obj->f;

i

Method returns the value of the inverse flatting

my $i=$obj->i;

invf

Method synonym for the i method

my $i=$obj->infv;

e

Method returns the value of eccentricity

my $e=$obj->e;

e2

Method returns the value of eccentricity squared (e.g. e^2)

my $e=sqrt($obj->e2);

n

Method returns the value of n given latitude (degrees). #What is n called?

my $n=$obj->n($lat);

n_rad

Method returns the value of n given latitude (radians). #What is n called?

my $n=$obj->n_rad($lat);

polar_circumference

Method returns the value of the semi-minor axis times 2*PI.

my $polar_circumference=$obj->polar_circumference;

equatorial_circumference

Method returns the value of the semi-major axis times 2*PI.

my $equatorial_circumference=$obj->equatorial_circumference;

shortname

Method returns the shortname, which is the hash key, of the current ellipsoid

my $shortname=$obj->shortname;

longname

Method returns the long name of the current ellipsoid

my $longname=$obj->longname;

data

Method returns a hash reference for the ellipsoid definition data structure.

my $datastructure=$obj->data;

name2ref

Method returns a hash reference (e.g. {a=>6378137,i=>298.257223563}) when passed a valid ellipsoid name (e.g. 'WGS84').

my $ref=$obj->name2ref('WGS84')

TODO

What should we do about bad input? I tend to die in the module which for most situations is fine. I guess you could always overload die to handle exceptions for web based solutions and the like.

Support for ellipsoid aliases in the data structure

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/

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

Geo::Forward Geo::Ellipsoid Geo::Coordinates::UTM Geo::GPS::Data::Ellipsoid GIS::Distance