WWW::Gazetteer

acme on 2002-09-29T12:46:47

To help me get location information for the Perl Monger groups I hacked up WWW::Gazetteer this morning, and it's on CPAN now...

NAME
    WWW::Gazetteer - Find location of world towns and cities

SYNOPSYS
      use WWW::Gazetteer;
      my $g = WWW::Gazetteer->new();
      my $london = $g->fetch("London", "United Kingdom");
      print $london->{longitude}, ", ", $london->{latitude}, "\n";
      my $nice = $g->fetch("Nice", "France");
      my @bactons = $g->fetch("Bacton", "United Kingdom");
      # note: more than one Bacton in the UK!

DESCRIPTION
    A gazetteer is a geographical dictionary (as at the back of an atlas).
    The `WWW::Gazetteer' module uses the information at
    http://www.calle.com/world/ to return geographical location (longitude,
    latitude) for towns and cities in countries in the world.

    Once you have imported the module and created a gazetteer object,
    calling fetch($town, $country) will return a list of hashrefs with
    longitude and latitude information.

      my $london = $g->fetch("London", "United Kingdom");
      print $london->{longitude}, ", ", $london->{latitude}, "\n";
      # prints -0.1167, 51.5000

    Note that there may be more than one town or city with that name in the
    country. In that case, you will get a list of hashrefs for each
    town/city.

    The following countries are valid: ...


and US cities?

kellan on 2002-10-02T21:00:36

I noticed a distinct lack of the US among the available cities list. (presumably because the nima.mil isn't supplying the info?) Do you have a hybrid solution for also getting lat/longs for US cities?

thanks
kellan

Re:and US cities?

acme on 2002-10-03T06:43:58

Yes, I noticed that too. I put it down to the US not being very important... Oh, okay then: patches welcome ;-)

Re:and US cities?

jhi on 2002-10-03T17:24:13

The US info is available from the US Census Bureau website either as a database or a query form.

Another database of geographical data

BooK on 2002-10-08T08:00:57

Here's another database, that has lots of cities and aliases, with longitude, latitude and elevation: http://www.heavens-above.com/countries.asp.

I've built a script that sucks the whole database (it was the subject of one of my lightning talks in Munich), but maybe it could be turned into a module, too. Is there room for this in the WWW::Gazetteer namespace?

Re:Another database of geographical data

acme on 2002-10-08T08:36:06

Ah cool, I knew there was something like that. The Calle database also has elevation, it's just that I didn't find it useful ;-) Well, maybe we need a WWW::Gazetteer::Calle and a WWW::Gazetteer::HeavensAbove. What do you think?

Re:Another database of geographical data

BooK on 2002-10-08T09:54:30

Well, my script still needs to implement the optimisations I talked about in Munich... But if you provide a generic WWW::Gazetteer API, I can make WWW::Gazetteer::HeavensAbove follow it.

If the module doesn't have to fetch the results of a request like "a*", and work around the 200+ answers limitation, that should be quick and easy (provided I find enough spare time to do it, obviously).

Re:Another database of geographical data

nicholas on 2002-10-11T11:16:48

The Calle database also has elevation, it's just that I didn't find it useful ;-)

Elevation is useful, if you want to produce a proper ICBM block for each perl monger group.

I'm not sure who this would be useful for - it seems that we know Saddam Hussein's favourite brand of chocolate (Quality Street) and computer manufacture (Sun) - but do we have any idea what his favourite programming language is, and hence if we should be afraid?