NAME

Geo::Coder::Mapquest - Geocode addresses with Mapquest

SYNOPSIS

use Geo::Coder::Mapquest;

my $geocoder = Geo::Coder::Mapquest->new(apikey => 'Your API Key');
my $location = $geocoder->geocode(
    location => 'Hollywood and Highland, Los Angeles, CA'
);

DESCRIPTION

The Geo::Coder::Mapquest module provides an interface to the Mapquest Geocoding Web Service.

METHODS

new

$geocoder = Geo::Coder::Mapquest->new(apikey => 'Your API Key')

Creates a new geocoding object.

A valid developer 'apikey' is required. See "NOTES" on how to obtain one and set it up.

Accepts an optional ua parameter for passing in a custom LWP::UserAgent object.

geocode

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

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

Each location result is a hashref; a typical example looks like:

{
    adminArea1         => "US",
    adminArea1Type     => "Country",
    adminArea3         => "CA",
    adminArea3Type     => "State",
    adminArea4         => "Los Angeles County",
    adminArea4Type     => "County",
    adminArea5         => "Los Angeles",
    adminArea5Type     => "City",
    displayLatLng      => { lat => "34.10155", lng => "-118.33869" },
    dragPoint          => 0,
    geocodeQuality     => "INTERSECTION",
    geocodeQualityCode => "I1CAA",
    latLng             => { lat => "34.10155", lng => "-118.33869" },
    linkId             => 0,
    mapUrl             => "http://www.mapquestapi.com/staticmap/v3/getmap?type=map&size=225,160&pois=purple-1,34.10155,-118.33869,0,0|&center=34.10155,-118.33869&zoom=12&key=Dmjtd|lu612ha7ng,ag=o5-5at2u&rand=1659284599",
    postalCode         => 90028,
    sideOfStreet       => "N",
    street             => "Hollywood Blvd & N Highland Ave",
    type               => "s",
}

ua

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

Accessor for the UserAgent object.

NOTES

An API key can be obtained here: http://developer.mapquest.com/web/info/account/app-keys.

After obtaining a key, you must enable the Blank Referers option for the account.

Note that Mapquest already url-encodes the key, so the geocoder constructor will prevent it from being doubly-encoded. Ensure you do not decode it yourself before passing it to the constructor.

International (non-US) queries do not appear to be fully supported by the service at this time.

SEE ALSO

http://www.mapquestapi.com/geocoding/

Geo::Coder::Bing, Geo::Coder::Google, Geo::Coder::Multimap, Geo::Coder::Yahoo

REQUESTS AND BUGS

Please report any bugs or feature requests to http://rt.cpan.org/Public/Bug/Report.html?Queue=Geo-Coder-Mapquest. 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::Mapquest

You can also look for information at:

COPYRIGHT AND LICENSE

Copyright (C) 2009 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>