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>