The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Geo::Coder::Ovi - Geocode addresses with the Ovi Maps API

SYNOPSIS

    use Geo::Coder::Ovi;

    my $geocoder = Geo::Coder::Ovi->new(
        appid => 'Your App ID',
        token => 'Your token',
    );
    my $location = $geocoder->geocode(
        location => '102 Corporate Park Dr, Harrison, NY'
    );

DESCRIPTION

The Geo::Coder::Ovi module provides an interface to the geocoding service of the Ovi Maps API.

METHODS

new

    $geocoder = Geo::Coder::Ovi->new(
        appid => 'Your App ID',
        token => 'Your token',
        # debug => 1,
    )

Creates a new geocoding object.

Accepts the following named arguments:

  • appid

  • token

    Authentication credentials. (optional, for now)

    Credentials can be obtained here: https://api.developer.nokia.com/ovi-api

    Note: performance and/or access may be limited without credentials.

  • compress

    Enable compression. (default: 1, unless debug is enabled)

  • debug

    Enable debugging. This prints the headers and content for requests and responses. (default: 0)

  • ua

    A custom LWP::UserAgent object. (optional)

geocode

    $location = $geocoder->geocode(location => $location)
    @locations = $geocoder->geocode(location => $location)

Accepts the following named arguments:

  • location

    The free-form, single line address to be located. (required)

  • language

    The preferred language of the response. The language may be specified as the ISO639-1 language code (e.g. en) or the language code and the ISO3166-1 alpha-2 country code (e.g. en-US). (default: '')

  • raw

    Returns the raw data structure converted from the response, not split into location results. (optional)

In scalar context, this method returns the first location result; and in list context it returns all location results.

Example of the data structure representing a location result:

    {
        categories => [ { id => 9000284 } ],
        properties => {
            addrAreaotherName => "West Harrison",
            addrCityName      => "Harrison",
            addrCountryCode   => "USA",
            addrCountryName   => "United States of America",
            addrCountyName    => "Westchester",
            addrHouseAlpha    => "",
            addrHouseNumber   => 102,
            addrPopulation    => 0,
            addrPostalCode    => 10604,
            addrStateName     => "New York",
            addrStreetName    => "Corporate Park Dr",
            geoLatitude       => "41.01945027709007",
            geoLongitude      => "-73.72334106825292",
            language          => "ENG",
            title =>
                "102 Corporate Park Dr, Harrison NY 10604, United States of America",
            type => "Street",
        },
    }

Example of the data structure returned using the raw option:

    {
        id      => "mbc04bl15:20110629151643842:0000049",
        results => [ $location ],
        version => "1.0",
    }

response

    $response = $geocoder->response()

Returns an HTTP::Response object for the last submitted request. Can be used to determine the details of an error.

ua

    $ua = $geocoder->ua()
    $ua = $geocoder->ua($ua)

Accessor for the UserAgent object.

SEE ALSO

http://api.maps.ovi.com/

REQUESTS AND BUGS

Please report any bugs or feature requests to http://rt.cpan.org/Public/Bug/Report.html?Queue=Geo-Coder-Ovi. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Geo::Coder::Ovi

You can also look for information at:

COPYRIGHT AND LICENSE

Copyright (C) 2010-2011 gray <gray at cpan.org>, all rights reserved.

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

AUTHOR

gray, <gray at cpan.org>