NAME
Weather::OpenWeatherMap - Interface to the OpenWeatherMap API
SYNOPSIS
use Weather::OpenWeatherMap;
my $api_key = 'foo';
my $wx = Weather::OpenWeatherMap->new(
api_key => $api_key,
);
# Current conditions:
my $current = $wx->get_weather(
location => 'Manchester, NH',
);
my $tempf = $current->temp_f;
my $wind = $current->wind_speed_mph;
# (see Weather::OpenWeatherMap::Result::Current)
# Forecast conditions:
my $forecast = $wx->get_weather(
location => 'Manchester, NH',
forecast => 1,
days => 3,
);
for my $day ($forecast->list) {
my $date = $day->dt->mdy;
my $temp_lo = $day->temp_min_f,
my $temp_hi = $day->temp_max_f,
# (see Weather::OpenWeatherMap::Result::Forecast::Day)
}
# (see Weather::OpenWeatherMap::Result::Forecast)
DESCRIPTION
An object-oriented interface to retrieving weather conditions &
forecasts from OpenWeatherMap () for a
given city, latitude/longitude, or OpenWeatherMap city code.
This module provides a simple blocking (LWP::UserAgent) interface to
weather retrieval; if you have an event loop handy, the included
Weather::OpenWeatherMap::Request & Weather::OpenWeatherMap::Result
classes can be used to create appropriate HTTP::Request instances and
parse responses from non-blocking HTTP clients.
ATTRIBUTES
api_key
Your OpenWeatherMap API key.
(See to register for free.)
ua
The LWP::UserAgent instance used to issue HTTP requests; can be used to
control LWP options:
my $wx = Weather::OpenWeatherMap->new(
api_key => $my_api_key,
ua => LWP::UserAgent->new(%lwp_opts),
);
METHODS
get_weather
$wx->get_weather(
# 'location =>' is mandatory.
# These are all valid location strings:
# By name:
# 'Manchester, NH'
# 'London, UK'
# By OpenWeatherMap city code:
# 5089178
# By latitude/longitude:
# 'lat 42, long -71'
location => 'Manchester, NH',
# Set 'forecast => 1' to get the forecast,
# omit or set to false for current weather:
forecast => 1,
# If 'forecast' is true, you can specify the number of days to fetch
# (up to 14):
days => 3,
# Optional tag for identifying the response to this request:
tag => 'foo',
);
Request a weather report for the given "location =>".
The location can be a 'City, State' or 'City, Country' string, an
OpenWeatherMap city code, or a 'lat X,
long Y' string.
Requests the current weather by default (see
Weather::OpenWeatherMap::Request::Current).
If passed "forecast => 1", requests a weather forecast (see
Weather::OpenWeatherMap::Request::Forecast), in which case "days =>
$count" can be specified (up to 14).
Any extra arguments are passed to the constructor for the appropriate
Request subclass; see Weather::OpenWeatherMap::Request.
AUTHOR
Jon Portnoy