Perl module URI::geo

April 28th, 2009

Andy Armstrong of hexten has created yet another implementation of the “geo” URI scheme - this time it’s CPAN module for all the Perl fans out there: URI::geo provides a class to create and parse “geo” URIs from within Perl scripts - a simple example to create a URI from latitude and longitude information looks like this:

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

The current module version 0.0.4 is available from CPAN here, API documentation can be found here.

Andy, thanks for implementing and getting the module into CPAN!

Android implements “geo” URI, IETF accepts draft specification

April 2nd, 2009

A new version of the “geo” URI specification was discussed at the IETF’s 74th meeting in San Francisco. As more and more applications pop up around the internet, the GEOPRIV working group recognized that there is definitely a need for a simple, short, but yet standardized way to refer to a spatial location.

Following the 20 minute presentation of the new draft version (which primarily incorporated some clarifications regarding WGS84, and the semantics of coordinates reflecting the poles), the working group was asked whether it would want to accept the “geo” URI draft as an official working group item.

The draft was accepted with overwhelming concensus, and will soon be renamed to reflect the working group adoption. That also means we’re a big step closer towards publication of the document as a draft standard RFC.
In other news, an esteemed colleage of mine discovered that Google’s mobile operating system “Android” already supports the “geo” URI! So anybody who happens to use such a phone (or has installed the emulator) can already make use of web pages containing “geo” URIs - once they are clicked, the phone starts the mapping application, and pans to the location indicated in the URI.

This is the first wide-spread implementation we’re aware of - see the relevant API documentation page. We’re quite excited, and looking forward to more platforms containing early implementations of the URI scheme.

Internet Draft updated to version 01

July 6th, 2007

The Internet Draft specifying the “geo:” URI has been updated, the new version is already available from the IETF draft archives.

The new version 01 (which is the second version after 00) removes the “query” part of the URI, as this was pretty much underspecified in the initial version, and has proven to be rather controversial. Since it does not actually identify the spatial location, but provides meta information (like location classification & type, preferred map scale) we decided to remove it from the specification.

Please note that this is work in progress, which also means that any feedback is appreciated.

Presentation at IETF 68, Prague

March 21st, 2007

IETF68 slidesThe Internet Engineering Task Force is currently hosting it’s 68th meeting in the Hilton Hotel, Prague, Czech Republic.

The geo: URI proposal is on the agenda of tomorrows session of the Geographic Location/Privacy working group:

  • GEOPRIV WG meeting
  • March 22, 2007, 9:00 - 11:30
  • IETF 68, Hilton Hotel Prague, Room “Congress I”

According to the agenda, the presentation of the “geo” URI scheme is scheduled for about 10:55.

For remote participation, session audio will be available via the IETF audio streaming effort (Channel 1), a supplemental Jabber discussion room at geopriv@jabber.ietf.org can be used as a backchannel for remote participants to ask questions and provide feedback.

Slides of the presentation

“geo:” URI JavaScript parser

March 12th, 2007

As another proof of concept I wrote a little “geo:” URI JavaScript parser.
Basically it scans all anchors in a given text for “geo:” links, extracts location and meta information (e.g. coordinates and corresponding text), places them on a map and appends the map to the text.

I choose to go with a Google Map because I already knew the API, so it was the easiest way. Of course one could modify the script to use any other mapping API’s, create a KML or even transfer the data to a GIS application. If I can free some time in the next weeks I’ll spice the script a little up, some more user defined parameters (e.g. map dimension, marker symbols) and the interpretation of query arguments would be nice though.

See a quick example here: the locations of a few cultural venues are marked with “geo:” anchors, scanned by the script and dynamically shown in the map below.

However, if you’re interested you can download the JavaScript file here. You’ll need a copy of jQuery (I used version 1.1.2) and a valid Google Maps key for your domain too. Then just add the corresponding 3 script elements (Google key, jQuery and geouriparser.js) into the head of your document and let the script find and display the geoURIs in your text.

The idea is heavily inspired by Gutenkarte, a presentation of MetaCarta Labs I remembered from last year’s Where 2.0 conference. Gutenkarte is based on MetaCarta’s Geoparser API, which is of course far more complex than my few lines JavaSrcipt code.

Firefox extension handles “geo:” URI

February 26th, 2007

The first version of a firefox extension to handle geo-URIs is now available. The plugin uses a proxy to forward ‘geo:’ requests to a mapping service (currently Google Maps, we’re planning to make this configurable RSN).


(click screenshot to install)

The extension should be compatible with Firefox 1.5 and above - You might need to allow software installations from “p.geouri.org”, and firefox will need to be restarted.

After installation, clicking on the following link should bring up a map of Vienna’s city centre:

geo:48.208333,16.372778

As usual, feedback is appreciated - please note that this extension is currently at a “proof of concept” level, subsequent versions will provide more choice of mapping services via a configuration option. The extension should detect new versions automatically as we release them.

Internet Draft about “geo” URI published

February 24th, 2007

The first version of the geo-URI specification is now available as an Internet Draft on the IETF web site (announcement). An Internet Draft is the first step towards publication of a specification as an RFC.

The draft specifies syntax, format and semantics of the “geo” URI - it also requests registration of the respective Uniform Resource Identifier scheme (”geo:”) from IANA.

The draft will be presented during the session of the GEOPRIV (”geographic location and privacy“) working group on the 68th IETF meeting, taking place March 18-23, 2007 in Prague. The GEOPRIV session is currently scheduled for Tuesday, March 20, 0900 - 1130. Audio streaming will be available from here.

Comments and feedback on the Internet Draft is appreciated.

geoURI primer

February 17th, 2007

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.

Making the format as simple as possible allows to jot down “geo:” URIs, like you jot down email addresses today. An example for a simple “geo:” URI (St. Stephen’s Cathedral, Vienna, Austria) could look like:

geo:48.208333,16.372778
(you browser will not be able to handle this Link yet, of course)

This blog is about the development of the “geo:” URI scheme. The first goal is the publication of an Internet Draft withing the IETF, probably progressing it to a RFC, and having the URI scheme registered with IANA.