Why not adopt me?
NAME
WWW::MySociety::Gaze - An interface to MySociety.org's Gazetteer service
VERSION
This document describes WWW::MySociety::Gaze version 0.02
SYNOPSIS
use WWW::MySociety::Gaze;
DESCRIPTION
MySociety.org Gaze is a REST based gazetteer service. You can find out more about it here:
http://www.mysociety.org/2005/09/15/gaze-web-service/
WWW::MySociety::Gaze
is a Perl wrapper around Gaze.
INTERFACE
new
Create a new WWW::MySociety::Gaze
.
get_country_from_ip( $ip )
Guess the country of location of a host from its dotted quad IP address. Returns an ISO country code or undef
if the country code is unknown.
my $gaze = WWW::MySociety::Gaze->new;
my $country = $gaze->get_country_from_ip( '82.152.157.85' );
get_find_places_countries
Return the list of countries for which find_places
has a gazetteer available.
Takes no arguments, returns a list of ISO country codes.
my $gaze = WWW::MySociety::Gaze->new;
my @countries = $gaze->get_find_places_countries;
find_places
Lookup a location in the gazetteer. Takes a number of key, value pairs as follows:
Parameters
country
-
ISO country code of country in which to search for places
state
-
State in which to search for places; presently this is only meaningful for country=US (United States), in which case it should be a conventional two-letter state code (AZ, CA, NY etc.); optional
query
-
Query term input by the user; must be at least two characters long
maxresults
-
Largest number of results to return, from 1 to 100 inclusive; optional; default 10
minscore
-
Minimum match score of returned results, from 1 to 100 inclusive; optional; default 0
Returns a list of hash references. Each hash has the following fields:
Name
-
Name of the place described by this row
In
-
Blank, or the name of an administrative region in which this place lies (for instance, a county)
Near
-
A reference to a (possibly empty) array of nearby placenames.
Latitude
-
WGS-84 latitude of place in decimal degrees, north-positive
Longitude
-
WGS-84 longitude of place in decimal degrees, east-positive
State
-
Blank, or containing state code for US
Score
-
Match score for this place, from 0 to 100 inclusive
get_population_density( $lat, $lon )
Given a latitude, longitude pair return an estimate of the population density at (lat, lon), in persons per square kilometer.
get_radius_containing_population
Return an estimate of the smallest radius around (lat, lon) containing at least number persons, or maximum, if that value is smaller. Takes key value parameters:
lat
-
WGS84 latitude, in decimal degrees
lon
-
WGS84 longitude, in decimal degrees
number
-
number of persons
maximum
-
largest radius returned, in kilometers; optional; default 150
get_country_bounding_coords
Get the bounding box of a country given its ISO country code. Returns a four element list containing max_lat, min_lat, max_lon, min_lon.
my @bb = $gaze->get_country_bounding_coords( 'GB' );
get_places_near
Get a list of places near a specific location. Takes a list of name, value pairs like this:
lat
-
WGS84 latitude, in north-positive decimal degrees
lon
-
WGS84 longitude, in east-positive decimal degrees
distance
-
distance in kilometres
number
-
number of persons to calculate circle radius
maximum
-
maximum radius to return (default 150km)
country
-
ISO country code of country to limit results to (optional)
Returns a list of hash references like this:
Name
-
Name of the nearby place.
Distance
-
Distance from the base place.
Latitude
-
Latitude of the nearby place.
Longitude
-
Longitude of the nearby place.
Country
-
Country of the nearby place.
State
-
State of the nearby place (currently US only).
CONFIGURATION AND ENVIRONMENT
WWW::MySociety::Gaze requires no configuration files or environment variables.
DEPENDENCIES
None.
INCOMPATIBILITIES
None reported.
BUGS AND LIMITATIONS
No bugs have been reported.
Please report any bugs or feature requests to bug-www-mysociety-gaze@rt.cpan.org
, or through the web interface at http://rt.cpan.org.
AUTHOR
Andy Armstrong <andy@hexten.net>
LICENCE AND COPYRIGHT
Copyright (c) 2008, Andy Armstrong <andy@hexten.net>
.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.