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 1.677 second using v1.01-cache-2.11-cpan-1e74a51a04c )