NAME

Geo::Local::Server - Returns the configured coordinates of the local server

SYNOPSIS

use Geo::Local::Server;
my $gls         = Geo::Local::Server->new;
my ($lat, $lon) = $gls->latlon;

DESCRIPTION

Reads coordinates from either the user environment variable COORDINATES_WGS84_LON_LAT_HAE or the file /etc/local.coordinates or C:\Windows\local.coordinates.

USAGE

Scripts

Typical use is with the provided scripts

is_nighttime && power-outlet WeMo on  host mylamp
is_daytime   && power-outlet WeMo off host mylamp
echo "power-outlet WeMo on  host mylamp" | at `sunset_time`
echo "power-outlet WeMo off host mylamp" | at `sunrise_time`

One Liner

$ perl -MGeo::Local::Server -e 'printf "Lat: %s, Lon: %s\n", Geo::Local::Server->new->latlon'
Lat: 38.7803, Lon: -77.3867

METHODS

latlon, latlong

Returns a list of latitude, longitude

lat

Returns the latitude.

lon

Returns the longitude

hae

Returns the configured height of above the ellipsoid

lonlathae

Returns a list of longitude, latitude and height above the ellipsoid

PROPERTIES

envname

Sets and returns the name of the environment variable.

my $var=$gls->envname; #default COORDINATES_WGS84_LON_LAT_HAE
$gls->envname("");     #disable environment lookup
$gls->envname(undef);  #reset to default

configfile

Sets and returns the location of the local.coordinates filename.

my $var = $gls->configfile; #default /etc/local.coordinates or C:\Windows\local.coordinates
$gls->configfile("");     #disable file-based lookup
$gls->configfile(undef);  #reset to default

CONFIGURATION

File

I recommend building and installing an RPM from the included SPEC file which installs /etc/local.coorindates.

rpmbuild -ta Geo-Local-Server-?.??.tar.gz

Outerwise copy the example etc/local.coorindates file to either /etc/ or C:\Windows\ and then update the coordinates to match your server location.

Environment

I recommend building and installing an RPM with the included SPEC file which installs /etc/profile.d/local.coordinates.sh which correctly sets the COORDINATES_WGS84_LON_LAT_HAE environment variable.

Otherwise you can export the COORDINATES_WGS84_LON_LAT_HAE variable or add it to your .bashrc file.

export COORDINATES_WGS84_LON_LAT_HAE="-77.3867 38.7803 63"

Format

The /etc/local.coordinates file is an INI file. The [wgs84] section is required for this package to function.

[main]
version=1

[wgs84]
latitude=38.7803
longitude=-77.3867
hae=63

OBJECT ACCESSORS

ci

Returns the Config::IniFiles object so that you can read additional information from the INI file.

my $config = $gls->ci; #isa Config::IniFiles

Example

my $version = $gls->ci->val("main", "version");

BUGS

Please log on GitHub

AUTHOR

Michael R. Davis

COPYRIGHT

MIT

SEE ALSO

DateTime::Event::Sunrise, Power::Outlet, Geo::Point, URL::geo