WWW::Gazetteer - Find location of world towns and cities
use WWW::Gazetteer; my $g = WWW::Gazetteer->new('FallingRain'); my @londons = $g->find('London', 'UK'); my $london = $londons[0]; print $london->{longitude}, ", ", $london->{latitude}, "\n";
A gazetteer is a geographical dictionary (as at the back of an atlas). The WWW::Gazetteer module is a generic interface to the WWW::Gazetteer::* modules which can return geographical location (longitude, latitude, elevation) for towns and cities in countries in the world.
WWW::Gazetteer
WWW::Gazetteer::*
This is a factory module which dispatches to one of the many WWW::Gazetteer::* modules. This provides a simple interface and lets the subclasses actually provide the communication to the online gazetteers. You may think of this as the DBI and the subclasses as the DBDs.
Valid subclasses as of this release are: WWW::Gazetteer::FallingRain, WWW::Gazetteer::Getty and WWW::Gazetteer::HeavensAbove. To create a gazetteer object, pass the name of the subclass as the first argument to new:
WWW::Gazetteer::FallingRain
WWW::Gazetteer::Getty
WWW::Gazetteer::HeavensAbove
my $g = WWW::Gazetteer->new('FallingRain'); my $g2 = WWW::Gazetteer->new('Getty'); my $g3 = WWW::Gazetteer->new('HeavensAbove');
Calling find($town, $country) will return a list of hashrefs with the country, town, longitude, and latitude information. Additional information such as elevation may also be available. You should check the documentation of your subclass for the particular features that it supports.
my @londons = $g->find('London', 'UK'); my $london = $londons[0]; print $london->{longitude}, ", ", $london->{latitude}, "\n"; # prints -0.1167, 51.5000
This returns a new WWW::Gazetteer::* object. It has one argument, the name of the subclass (and optionally configuration for the subclass):
use WWW::Gazetteer; my $g = WWW::Gazetteer->new('FallingRain');
The find method looks up geographical information and returns it to you. It takes in a city and a country, with the recommended syntax being te city name and ISO 3166 country code.
Note that there may be more than one town or city with that name in the country. You will get a list of hashrefs for each town/city.
my @londons = $g->find("London", "UK");
Check the documentation of your subclass for which countries, which syntax it supports, and what information it returns.
WWW::Gazetteer::FallingRain, WWW::Gazetteer::Getty, WWW::Gazetteer::HeavensAbove.
Copyright (C) 2002-9, Leon Brocard
This module is free software; you can redistribute it or modify it under the same terms as Perl itself.
Leon Brocard, acme@astray.com. Thanks to Philippe 'BooK' Bruhat.
To install WWW::Gazetteer, copy and paste the appropriate command in to your terminal.
cpanm
cpanm WWW::Gazetteer
CPAN shell
perl -MCPAN -e shell install WWW::Gazetteer
For more information on module installation, please visit the detailed CPAN module installation guide.