a Uniform Resource Identifier (URI) for geographic locations using the 'geo' scheme name. A 'geo' URI identifies a physical location in a two- or three-dimensional coordinate reference system in a compact, simple, human-readable, and protocol-independent way.
The current revision of the vCard specification supports 'geo' URIs in a vCard's "GEO" property, and the GeoSMS standard uses 'geo' URIs for geotagging SMS messages. Android based devices support 'geo' URIs, although that implementation is based on a draft revision of the specification, and supports a different set of URI parameters and query strings.
A simple 'geo' URI might look like:
where the two numerical values represent latitude and longitude respectively, and are separated by a comma. If a third comma-separated value is present, it represents altitude. Coordinates in the Southern and Western hemispheres as well as altitudes below the coordinate reference system (depths) are signed negative with a leading dash. The 'geo' URI also allows for an optional "uncertainty" value, separated by a semicolon, representing the uncertainty of the location in meters, and is described using the "u" URI parameter. A 'geo' URI with an uncertainty parameter looks as follows:
A 'geo' URI may, for example, be included on a web page, as HTML:
<a href="geo:37.786971,-122.399677;u=35">Wikimedia Headquarters</a>
Coordinate reference systems
The default coordinate reference system (CRS) used is the World Geodetic System 1984 (WGS-84), for planet Earth although other CRS, once defined, may be specified, using the "crs" URI parameter, also separated by a semicolon. Such CRSs may include both other terrestrial systems and those for non-terrestrial coordinates such as those on the Moon or Mars.
A 'geo' URI for a hypothetical lunar CRS created in 2011 might be:
The order in which the semicolon-separated parameters occur is partially significant. Whilst the labeltext parameter and future parameters may be given in any order, the 'crs' and the 'u' parameters must come first. If both are used, the 'crs' must precede the 'u'. All parameters are case-insensitive, so the above example is exactly equivalent to:
- "RFC 5870 - A Uniform Resource Identifier for Geographic Locations ('geo' URI)". Internet Engineering Task Force. 2010-06-08. Retrieved 9 June 2010.
- "RFC 6350 - vCard Format Specification". Internet Engineering Task Force. 2011-08-11. Retrieved 19 Jun 2012.
- "Android Intents List". google.com. Retrieved 2012-06-19.
- "Geourl.org". Geourl.org. Retrieved 2011-12-24.
- RFC 5870, section 8.3