Andy Armstrong > URI-geo-0.05 > URI::geo

Download:
URI-geo-0.05.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
View/Report Bugs
Module Version: 0.05   Source   Latest Release: URI-geo-1.00

NAME ^

URI::geo - The geo URI scheme.

VERSION ^

This document describes URI::geo version 0.05

SYNOPSIS ^

  use URI;

  # GeoURI from textual uri
  my $guri = URI->new( 'geo:54.786989,-2.344214' );

  # From coordinates
  my $guri = URI::geo->new( 54.786989, -2.344214 );

  # Decode
  my ( $lat, $lon, $alt ) = $guri->location;
  my $latitude = $guri->latitude;

  # Update
  $guri->location( 55, -1 );
  $guri->longitude( -43.23 );

DESCRIPTION ^

From http://geouri.org/:

  More and more protocols and data formats are being extended by methods
  to add geographic information. However, all of those options are tied
  to that specific protocol or data format.

  A dedicated Uniform Resource Identifier (URI) scheme for geographic
  locations would be independent from any protocol, usable by any
  software/data format that can handle generich URIs. Like a "mailto:"
  URI launches your favourite mail application today, a "geo:" URI could
  soon launch your favourite mapping service, or queue that location for
  a navigation device.

INTERFACE ^

new

Create a new URI::geo. The arguments should be either

To maximise the likelyhood that you can pass in some object that represents a geographical location and have URI::geo do the right thing we try a number of different accessor names.

If the object has a latlong method (eg Geo::Point) we'll use that. If there's a location method we call that. Otherwise we look for accessors called lat, latitude, lon, long, longitude, ele, alt, elevation or altitude and use them.

Often if you have an object or hash reference that represents a point you can pass it directly to new; so for example this will work:

  use URI::geo;
  use Geo::Point;

  my $pt = Geo::Point->latlong( 48.208333, 16.372778 );
  my $guri = URI::geo->new( $pt );

As will this:

  my $guri = URI::geo->new( { lat => 55, lon => -1 } );

and this:

  my $guri = URI::geo->new( 55, -1 );

Note that you can also create a new URI::geo by passing a GeoURI to URI::new:

  use URI;

  my $guri = URI->new( 'geo:55,-1' );

location

Get or set the location of this geo URI.

  my ( $lat, $lon, $alt ) = $guri->location;
  $guri->location( 55.3, -3.7, 120 );

When setting the location it is possible to pass any of the argument types that can be passed to new.

latitude

Get or set the latitude of this geo URI.

longitude

Get or set the longitude of this geo URI.

altitude

Get or set the altitude of this geo URI. To delete the altitude set it to undef.

DEPENDENCIES ^

URI

BUGS AND LIMITATIONS ^

Please report any bugs or feature requests to bug-uri-geo@rt.cpan.org, or through the web interface at http://rt.cpan.org.

AUTHOR ^

Andy Armstrong <andy@hexten.net>

LICENCE AND COPYRIGHT ^

Copyright (c) 2009, 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.

syntax highlighting: