NAME

Geo::Query::LatLong - Uniform interface to query latitude and longitude from a city.

SYNOPSIS

use Geo::Query::LatLong;

# Generic source
$geo = Geo::Query::LatLong->new( debug => 0 );

or

# Using Google Maps API
$geo = Geo::Query::LatLong->new( source => 'Google', apikey => 'Your API key' );

DESCRIPTION

Query latitude and longitude from a city in any country. Useful to open specific locations in a Browser map. You can use a generic server or query the Google Maps API. In case of Google Maps you had to supply your Google key. Geo::Query::LatLong returns an uniform response independent of the chosen server.

Query example

  use Geo::Query::LatLong;

  $CITY = $ARGV[0] || 'Zurich';

  $res = $geo->query( city => $CITY, country_code => 'SZ' ); # FIPS 10 country code

  print "Latitude and longitude of $CITY: ",
		$res->{'lat'}, ' / ', $res->{'lng'}, "\n";

List all results from your query

  foreach (keys %{$res}) {
	print "$_ = ", $res->{$_}, "\n";
  }

Another example

Switch exactness to "off" will increase the chance you get a result.

$res = $geo->query( city => 'Unterwalden', country_code => 'SZ', exact => 'off' ); # exact default: on

print "-- $_ = ", $res->{$_}, "\n" foreach keys %{$res};

Parameter country_code (not required for Google API)

Country Codes according to FIPS 10: http://de.wikipedia.org/wiki/FIPS_10

Parameter city

Use the english translations for the city names, e.g. Zurich for Zuerich, Munich for Muenchen.

In conjunction with Google API you can send arguments like "Bellevue Zurich, Switzerland" as well.

Return values

The function query(...) always returns a hash reference. Hash key 'rc' is retured as 0 (Zero) on success and unequal 0 on a failure. Additionally it is a good advice to read or display the 'msg' key on a failure to get a hint about the cause.

On case the city was not found:

  • Hash key 'rc' returns a number unequal to zero.

  • Hash keys 'lat' / 'lng' are always being returned as '99' / '99'.

EXPORT

None by default.

Further documentation and feedback

http://meta.pgate.net/geo-query-latlong/

http://www.infocopter.com/perl/modules/

SEE ALSO

The Geo::Coder series here on CPAN.

AUTHOR

Reto Schaer, <retoh@cpan-cuthere.org>

COPYRIGHT AND LICENSE

Copyright (C) 2007 - 2008 by Reto Schaer

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.6 or, at your option, any later version of Perl 5 you may have available.

http://www.infocopter.com/perl/licencing.html

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 203:

'=item' outside of any '=over'

Around line 211:

You forgot a '=back' before '=head2'