NAME

Geo::Coder::GeocodeFarm - Geocode addresses with the GeocodeFarm API

SYNOPSIS

use Geo::Coder::GeocodeFarm;

my $geocoder = Geo::Coder::GeocodeFarm->new(
    key => 'YOUR-API-KEY-HERE',
);

my $result = $geocoder->geocode(
    location => '530 W Main St Anoka MN 55303 US',
);
printf "%f,%f\n",
    $result->{coordinates}{lat},
    $result->{coordinates}{lon};

my $reverse = $geocoder->reverse_geocode(
    lat      => '45.2040305',
    lon      => '-93.3995728',
);
print $reverse->{formatted_address}, "\n";

DESCRIPTION

The Geo::Coder::GeocodeFarm module provides an interface to the geocoding functionality of the GeocodeFarm API v4.

METHODS

new

$geocoder = Geo::Coder::GeocodeFarm->new(
    key    => 'YOUR-API-KEY-HERE',
    url    => 'https://api.geocode.farm/',
    ua     => HTTP::Tiny->new,
    parser => JSON->new->utf8,
    raise_failure => 1,
);

Creates a new geocoding object with optional arguments.

An API key is required and can be obtained at https://geocode.farm/store/api-services/

geocode

$result = $geocoder->geocode(
    location => $location,
)

Forward geocoding takes a provided address or location and returns the coordinate set for the requested location.

Method throws an error (or returns failure as nested list if raise_failure argument is false) if the service failed to find coordinates or wrong key was used.

reverse_geocode

$result = $geocoder->reverse_geocode(
    lat      => $latitude,
    lon      => $longitude,
)

Reverse geocoding takes a provided coordinate set and returns the address for the requested coordinates.

Method throws an error (or returns failure as nested list if raise_failure argument is false) if the service failed to find coordinates or wrong key was used.

SEE ALSO

https://geocode.farm/

BUGS

If you find the bug or want to implement new features, please report it at https://github.com/dex4er/perl-Geo-Coder-GeocodeFarm/issues

The code repository is available at https://github.com/dex4er/perl-Geo-Coder-GeocodeFarm

AUTHOR

Piotr Roszatycki <dexter@cpan.org>

LICENSE

Copyright (c) 2013, 2015, 2025 Piotr Roszatycki <dexter@cpan.org>.

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

See http://dev.perl.org/licenses/artistic.html