NAME

Geo::Coder::CA - Provides a Geo-Coding functionality using https://geocoder.ca for both Canada and the US.

VERSION

Version 0.15

SYNOPSIS

use Geo::Coder::CA;

my $geo_coder = Geo::Coder::CA->new();
my $location = $geo_coder->geocode(location => '9235 Main St, Richibucto, New Brunswick, Canada');

DESCRIPTION

Geo::Coder::CA provides an interface to geocoder.ca. Geo::Coder::Canada no longer seems to work.

METHODS

new

$geo_coder = Geo::Coder::CA->new();
my $ua = LWP::UserAgent->new();
$ua->env_proxy(1);
$geo_coder = Geo::Coder::CA->new(ua => $ua);

geocode

$location = $geo_coder->geocode(location => $location);
# @location = $geo_coder->geocode(location => $location);

print 'Latitude: ', $location->{'latt'}, "\n";
print 'Longitude: ', $location->{'longt'}, "\n";

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:

$geo_coder->ua()->env_proxy(1);

You can also set your own User-Agent object:

my $ua = LWP::UserAgent::Throttled->new();
$ua->throttle('geocoder.ca' => 1);
$geo_coder->ua($ua);

reverse_geocode

$location = $geo_coder->reverse_geocode(latlng => '37.778907,-122.39732');

Similar to geocode except it expects a latitude/longitude parameter.

run

You can also run this module from the command line:

perl CA.pm 1600 Pennsylvania Avenue NW, Washington DC

AUTHOR

Nigel Horne, <njh@bandsman.co.uk>

Based on Geo::Coder::Googleplaces.

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

Lots of thanks to the folks at geocoder.ca.

BUGS

Please report any bugs or feature requests to the author. This module is provided as-is without any warranty.

Should be called Geo::Coder::NA for North America.

SEE ALSO

Geo::Coder::GooglePlaces, HTML::GoogleMaps::V3

LICENSE AND COPYRIGHT

Copyright 2017-2025 Nigel Horne.

This program is released under the following licence: GPL2