GeoRSS is a standard for adding location information to an RSS feed. Example applications include travel blogs, news feeds, and real time earthquake feeds. Location information is typically a point location, but it can also include geographic lines, polygons, and related feature descriptions. Many online mapping services support GeoRSS, allowing map "mashups" to be easily created.
GeoRSS currently has three different vocabularies: Simple, GML, and W3C Geo. All three vocabularies can be inserted into RSS 1.0, RSS 2.0, and Atom feeds. Although the GeoRSS model is usually serialized as XML, it can also be serialized as RDF or XHTML.
GeoRSS currently uses a fixed coordinate system of decimal longitude, latitude degrees using the global WGS84 geoid. This is the same as most online map services, and allows for "mashups" without the need for messy coordinate transformations.
The GeoRSS model geometry supports points, lines and boundaries. Boundaries, in turn, can be polygons (with four or more coordinate pairs) or boxes. A box is defined with two longitude, latitude coordinates that define the south-west and north-east corners of a compass-aligned box.
The GeoRSS model also supports the featuretypetag that stores a single string determining the feature's type referred in the geometry. The default is "location". Another single string tag is relationshiptag. This relates the GeoRSS feature to the parent tag. The default is "is-located-at".
The Simple vocabulary also supports two tags for elevation information. elev provides the height in meters above the WGS84 ellipsoid. floor is intended to store a building floor number. The floor number has cultural variations, but should be unambiguous because the building's location is known.
The Simple vocabulary was designed to be concise, and only requires a single tag per GeoRSS object. The conciseness means that the Simple vocabulary does not have a direct upward compatibility with the GML vocabulary, but automated transformations are possible.
The Simple vocabulary uses the georss namespace. An example Simple tag for a line would be:
ERROR [include_code_listing plugin]: File Not Found (/usr/www/users/winwaed/geowebguru/img/2009/georss_code1.xml)
Comma separators are also allowed for coordinates, in addition to the standard whitespace.
The following example of the GeoRSS Simple Vocabulary is a subset of the US Geological Survey live earthquake feed :
ERROR [include_code_listing plugin]: File Not Found (/usr/www/users/winwaed/geowebguru/img/2009/georss_sample.xml)
Note that each earthquake has two Simple tags: georss:point for the earthquake's geographic location, and georss:elev for its depth.
The GML vocabulary uses the GML standard to specify the feature's geography. This is contained in a georss:where tag. This allows much more complex shapes to be specified, as well as the use of different coordinate systems if required.
W3C Basic Geo Vocabulary
The W3C Basic vocabulary is deprecated. It should not be used for new development, and is covered here only for completeness.
The W3C Basic Geo vocabulary started as an RDF vocabulary, but found widespread use in non-RDF XML documents (eg. RSS 2.0). The rapid adoption of this standard led to the development of GeoRSS and the georss namespace. Although it has been replaced by the Simple and GML vocabularies, it is likely that W3C Basic Geo will remain in use for a long time. Therefore new parsers should still support W3C Basic Geo.
W3C Basic Geo uses the geo namespace. It only allows points to be specified. These use the geo:Point object:
ERROR [include_code_listing plugin]: File Not Found (/usr/www/users/winwaed/geowebguru/img/2009/georss_code2.xml)
Note that the containing geo:Point tag is often dropped, just leaving the geo:lat and geo:long tags.
The GeoRSS standard homepage can be found at: http://georss.org
This includes further examples and descriptions of the three vocabularies.