NAME

Geo::Sun - Calculates the Geodetic Position of the Sun over the Surface of the Earth

SYNOPSIS

use Geo::Sun;
my $gs=Geo::Sun->new;                              #isa Geo::Sun
my $point=$gs->set_datetime(DateTime->now)->point; #Full OO interface
printf "Point isa %s\n", ref($point);              #isa GPS::Point
printf "Latitude: %s, Longitude: %s\n", $point->latlon;

DESCRIPTION

The Geo::Sun package calculates the position of the Sun over the Earth. The user method point_dt takes a DateTime object as a parameter and returns a GPS::Point which is the point on the earth where the Sun is directly over at the given time.

The Geo::Sun package is a wrapper around Astro::Coord::ECI::Sun with a user friendly interface.

USAGE

use Geo::Sun;
my $gs=Geo::Sun->new;
printf "Lat: %s, Lon: %s\n", $gs->point->latlon;

CONSTRUCTOR

new

my $gs=Geo::Sun->new;

METHODS

point

Returns a GPS::Point for the location of the sun at the current datetime.

my $point=$gs->point;
my $point=$gs->set_datetime(DateTime->now)->point;

point_dt

Set the current datetime and returns a GPS::Point

my $point=$gs->point_dt($datetime);

Implemented as

my $point=$gs->set_datetime($datetime)->point;

datetime

Sets or returns the current datetime which is a DateTime object. The default is DateTime->now.

set_datetime

Sets datetime returns self

METHODS (INTERNAL)

point_recalculate

Recalculates the point when the DateTime is changed.

point_onchange

Override this method if you want to calculate something when the point changes

sun

Sets or returns the Astro::Coord::ECI::Sun object.

my $sun=$gs->sun;

ellipsoid

Set or returns the Geo::Ellipsoids object.

my $ellipsoid=$gs->ellipsoid;  #WGS84

BUGS

Please send to the geo-perl email list.

SUPPORT

Try the geo-perl email list.

LIMITATIONS

Calculations are only good to about 3 decimal places.

AUTHOR

Michael R. Davis
CPAN ID: MRDVT
STOP, LLC
domain=>stopllc,tld=>com,account=>mdavis
http://www.stopllc.com/

COPYRIGHT

This program is free software licensed under the...

The BSD License

The full text of the license can be found in the LICENSE file included with this module.

SEE ALSO