NAME
Geo::Coder::Mapbox - Provides a Geo-Coding functionality using https://mapbox.com
VERSION
Version 0.02
SYNOPSIS
use
Geo::Coder::Mapbox;
my
$geo_coder
= Geo::Coder::Mapbox->new(
access_token
=>
$ENV
{
'MAPBOX_KEY'
});
my
$location
=
$geo_coder
->geocode(
location
=>
'Washington, DC'
);
DESCRIPTION
Geo::Coder::Mapbox provides an interface to mapbox.com, a Geo-Coding database covering many countries.
METHODS
new
$geo_coder
= Geo::Coder::Mapbox->new();
my
$ua
= LWP::UserAgent->new();
$ua
->env_proxy(1);
$geo_coder
= Geo::Coder::Mapbox->new(
ua
=>
$ua
);
geocode
$location
=
$geo_coder
->geocode(
location
=>
'Toronto, Ontario, Canada'
);
'Latitude: '
,
$location
->{features}[0]->{center}[1],
"\n"
;
# Latitude
'Longitude: '
,
$location
->{features}[0]->{center}[0],
"\n"
;
# Longitude
@locations
=
$geo_coder
->geocode(
'Portland, USA'
);
'There are Portlands in '
,
join
(
', '
,
map
{
$_
->{
'state'
} }
@locations
),
"\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({
'api.mapbox.com'
=> 2 });
$geo_coder
->ua(
$ua
);
reverse_geocode
$location
=
$geo_coder
->reverse_geocode(
lnglat
=>
'-122.39732,37.778907'
);
Similar to geocode except it expects a longitude/latitude (note the order) parameter.
AUTHOR
Nigel Horne, <njh at 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 mapbox.com.
SEE ALSO
Geo::Coder::GooglePlaces, HTML::GoogleMaps::V3, https://docs.mapbox.com/api/search/geocoding/
LICENSE AND COPYRIGHT
Copyright 2021-2024 Nigel Horne.
This program is released under the following licence: GPL2