Geo-Distance-Google

 view release on metacpan or  search on metacpan

lib/Geo/Distance/Google.pm  view on Meta::CPAN

    $self->debug( "Sending request: $url" );

    my $res = $self->{ua}->get($url);

    if ($res->is_error) {
        Carp::croak("Google Maps API returned error: " . $res->status_line);
    }

    if ( $res->headers->content_type !~ /json/ ) {
        my $ct = $res->headers->content_type;
        croak "Invalid content-type '$ct' returned from webserver";
    }

    my $json = JSON->new->utf8;
    my $data = $json->decode($res->content);

    $self->raw_distance( $data );

    $self->debug( "data: " . Dumper( $data ) );

    if ( ! defined $data->{status} || $data->{status} ne 'OK' ) {

t/01_live.t  view on Meta::CPAN


    throws_ok { $distance = $geo->distance; } qr/Mandatory parameters/, 'parameter check';

    $geo = Geo::Distance::Google->new( host => 'example.com' );

    throws_ok { 
        $distance = $geo->distance( 
            origins      => '123 Main St., Waukesha, WI',
            destinations => '1 Brewers Way  Milwaukee, Wisconsin 53214'
        );
    } qr/Invalid content-type/, 'Invalid content-type';
}

# URL signing
SKIP: {
    skip "Update to support google business keys", 2; 

    # sample clientID from http://code.google.com/apis/maps/documentation/webservices/index.html#URLSigning
    my $client = $ENV{GMAP_CLIENT};
    my $key    = $ENV{GMAP_KEY};
    my $geocoder = Geo::Distance::Google->new( client => $client, key => $key );



( run in 0.526 second using v1.01-cache-2.11-cpan-d7f47b0818f )