3 Top Data Formats for Map Mashups: KML, GeoRSS and GeoJSON

Map mashups continue to mature in terms of sophistication and functionality, providing end users with an ever-expanding set of tools and applications. As a result, the intersection between traditional geospatial data and these new map mashups requires well defined ways to transfer, distribute, and consume geospatial data in a web-friendly way.

Some new geospatial data formats have emerged in response to this need, enabling a broad spectrum of users and developers to mashup information in a geographic context. Here is a rundown of the three primary formats for geo- mashup developers today:

KML

Did you know that before it was known as Google Earth, the popular 3D globe viewer was named Keyhole? So it should come as no surprise that KML stands for Keyhole Markup Language, Google Earth's native file format which is based on XML. KML has become ubiquituous in the geospatial web, with support for import/export from commercial mapping APIs such as Google Maps, Microsoft's Virtual Earth, and open source mapping APIs such as OpenLayers. Earlier this year, Google released KML as an open standard that was adopted by the Open Geospatial Consortium (OGC). You can read up on the latest spec for KML (version 2.2 at present) or learn more about how to integrate KML with the Google Maps API, Virtual Earth, or OpenLayers.

GeoRSS

GeoRSS provides a way for including geographic reference information in RSS (and Atom) feeds via specific encoding. According to the GeoRSS site:

As RSS and Atom become more prevalent as a way to publish and share information, it becomes increasingly important that location is described in an interoperable manner so that applications can request, aggregate, share and map geographically tagged feeds.

Including GeoRSS is as simple as adding one element per item, such as <georss:point>45.256 -71.92</georss:point> using the GeoRSS-Simple format, to much more complex encoding using the GeoRSS-GML format, which supports a greater range of features. Both GeoRSS formats support basic feature geometries (points, lines, boxes, and polygons). As with KML, commercial and open source mapping APIs have support for GeoRSS, primarily as an import data format. GeoRSS holds a lot of promise for mapping of syndicated content.

GeoJSON

Based on JavaScript Object Notation (JSON), GeoJSON is a new data format for encoding a wide variety of geographic features, including points, linestrings, polygons, multipolygons, and geometry collections.

{ "type": "Point", "coordinates": [43.542, -118.454] }

GeoJSON can be easily and quickly parsed in JavaScript, and it provides a lightweight data format that can be easily transferred. Since its formal release as version 1.0, GeoJSON has gained traction, and some popular APIs, including FireEagle and OpenLayers already support the format (it is uncertain whether commercial APIs such as Google Maps or Virtual Earth will support it in the future).

Note that both GeoRSS and GeoJSON are licensed under Creative Commons Attribution licenses.

It will be interesting to see how these formats evolve, and we're curious to see whether formats such as GeoRSS and GeoJSON will garner more widespread adoption among map API providers and map mashup developers.

Be sure to read the next Mapping article: Virtual Earth Aerial Photography Now Available for Purchase