Geo-Calc
view release on metacpan or search on metacpan
lib/Geo/Calc.pm view on Meta::CPAN
return {
m_lat => $self->_precision( $m1 + ($m2 * cos(2 * $lat)) + ($m3 * cos(4 * $lat)) + ( $m4 * cos(6 * $lat) ), $precision ),
m_lon => $self->_precision( ( $p1 * cos($lat)) + ($p2 * cos(3 * $lat)) + ($p3 * cos(5 * $lat) ), $precision ),
}
}
sub _precision {
my ( $self, $number, $precision ) = @_;
die "Error: Private method called" unless (caller)[0]->isa( ref($self) );
my $mbf = Math::BigFloat->new( $number );
$mbf->precision( $precision );
return $mbf->bstr() + 0;
}
sub _ib_precision {
my ( $self, $brng, $precision, $mul ) = @_;
$mul ||= 1;
die "Error: Private method called" unless (caller)[0]->isa( ref($self) );
my $mbf = Math::BigFloat->new( POSIX::fmod( $mul * ( Math::Trig::rad2deg( $brng ) ) + 360, 360 ) );
$mbf->precision( $precision );
return $mbf->bstr() + 0;
}
sub _fb_precision {
my ( $self, $brng, $precision ) = @_;
die "Error: Private method called" unless (caller)[0]->isa( ref($self) );
my $mbf = Math::BigFloat->new( POSIX::fmod( ( Math::Trig::rad2deg( $brng ) ) + 180, 360 ) );
$mbf->precision( $precision );
return $mbf->bstr() + 0;
}
no Moose;
__PACKAGE__->meta->make_immutable;
( run in 0.618 second using v1.01-cache-2.11-cpan-a3c8064c92c )