Tatsuhiko Miyagawa > Geo-Coder-Google-0.06 > Geo::Coder::Google

Download:
Geo-Coder-Google-0.06.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  2
View/Report Bugs
Module Version: 0.06   Source   Latest Release: Geo-Coder-Google-0.14

NAME ^

Geo::Coder::Google - Google Maps Geocoding API

SYNOPSIS ^

  use Geo::Coder::Google;

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

DESCRIPTION ^

Geo::Coder::Google provides a geocoding functionality using Google Maps API.

METHODS ^

new
  $geocoder = Geo::Coder::Google->new(apikey => 'Your API Key');
  $geocoder = Geo::Coder::Google->new(apikey => 'Your API Key', host => 'maps.google.co.jp');
  $geocoder = Geo::Coder::Google->new(apikey => 'Your API Key', language => 'ru');
  $geocoder = Geo::Coder::Google->new(apikey => 'Your API Key', gl => 'ca');
  $geocoder = Geo::Coder::Google->new(apikey => 'Your API Key', oe => 'latin1');

Creates a new geocoding object. You should pass a valid Google Maps API Key as apikey parameter.

When you'd like to query Japanese address, you might want to set host parameter, which should point to maps.google.co.jp. I think this also applies to other countries like UK (maps.google.co.uk), but so far I only tested with .com and .co.jp.

To specify the language of Google's response add language parameter with a two-letter value. Note that adding that parameter does not guarantee that every request returns translated data.

You can also set gl parameter to set country code (e.g. ca for Canada).

You can ask for a character encoding other than utf-8 by setting the oe parameter, but this is not recommended.

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

Queries $location to Google Maps geocoding API and returns hash reference returned back from API server. When you cann the method in an array context, it returns all the candidates got back, while it returns the 1st one in a scalar context.

When you'd like to pass non-ascii string as a location, you should pass it as either UTF-8 bytes or Unicode flagged string.

Returned data structure is as follows:

  {
    'AddressDetails' => {
      'Country' => {
        'AdministrativeArea' => {
          'SubAdministrativeArea' => {
            'SubAdministrativeAreaName' => 'San Francisco',
            'Locality' => {
              'PostalCode' => {
                'PostalCodeNumber' => '94107'
              },
              'LocalityName' => 'San Francisco',
              'Thoroughfare' => {
                'ThoroughfareName' => '548 4th St'
              }
            }
          },
          'AdministrativeAreaName' => 'CA'
        },
        'CountryNameCode' => 'US'
      }
    },
    'address' => '548 4th St, San Francisco, CA 94107, USA',
    'Point' => {
      'coordinates' => [
        '-122.397323',
        '37.778993',
        0
      ]
    }
  }
ua

Accessor method to get and set UserAgent object used internally. You can call env_proxy for example, to get the proxy information from environment variables:

  $coder->ua->env_proxy;

You can also set your own User-Agent object:

  $coder->ua( LWPx::ParanoidAgent->new );

AUTHOR ^

Tatsuhiko Miyagawa <miyagawa@bulknews.net>

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

SEE ALSO ^

Geo::Coder::Yahoo, http://www.google.com/apis/maps/documentation/#Geocoding_Examples

List of supported languages: http://spreadsheets.google.com/pub?key=p9pdwsai2hDMsLkXsoM05KQ&gid=1

syntax highlighting: