Geo::Integer - Generates a single integer from Lat and Lon coordinates


NAME

Geo::Integer - Generates a single integer from Lat and Lon coordinates


SYNOPSIS

  use Geo::Integer;
  my $gi=Geo::Integer->new(); 
  my $integer=$gint->integer($lat, $lon);
  my ($lat, $lon)=$gint->center($int);


DESCRIPTION

This module generates a 32-bit integer which represents a two dimensional value. The defaults are latitude and longitude in degrees but there should be no limitation for using any Cartesian grid. The integer returned actually represents a rectangular area like the image below.

  ul ---------------- ur
  |....................|
  |....................|
  |.......center.......|
  |....................|
  |....................|
  ll ---------------- lr

By definition the center and ll values are "in" the rectangle. ul, ur and lr are by definition "in" adjacent rectangles.


USAGE


CONSTRUCTOR

new

  my $obj = Geo::Integer->new();
  my $obj = Geo::Integer->new(latmin   =>  -90,   #defaults
                              lonmin   => -180,
                              latrange =>  180,
                              lonrange =>  360 );


METHODS

integer

Returns a 32-bit integer representing a rectangle that contains the given coordinates.

  my $integer=$gint->integer($lat, $lon);

center

Returns the center of the rectangle given the integer.

  my $center=$gint->center($integer);

ll

Returns the lower left coordinate of the retangle given the integer.

  my ($lat, $lon)=$gint->ll($int);

ul

Returns the upper left coordinate of the retangle given the integer.

  my ($lat, $lon)=$gint->ul($int);

ur

Returns the upper right coordinate of the retangle given the integer.

  my ($lat, $lon)=$gint->ur($int);

lr

Returns the lower right coordinate of the retangle given the integer.

  my ($lat, $lon)=$gint->lr($int);


METHODS - Internal (coordinates to integer)

interlace

Returns a single 32-bit integer from two 16-bit integers.

  my $int32=$gint->interlace($int16l, $int16h);

int_lat

Returns 16-bit integer from a latitude.

int_lon

Returns 16-bit integer from a longitude.


METHODS - Internal (integer to coordinates)

unlace

Returns two 16-bit integers from a single 32-bit integer.

  my ($int16l, $int16h)=gint->unlace($int32);

lat_int

Returns latitude from a 16-bit integer.

lon_int

Returns longitude from a 16-bit integer.


BUGS


SUPPORT

Try geo-perl email list


AUTHOR

    Michael R. Davis
    CPAN ID: MRDVT
    account=>perl,tld=>com,domain=>michaelrdavis


COPYRIGHT

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

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


SEE ALSO

the Geo::Approx manpage