Geographic display and input using Marble
At first glance, the KDE Marble project might look like a competitor to other 3D mapping applications, like Google Earth or NASA's World Wind, but it has a very different focus. It has a similar globe view and the navigation is familiar, but, unlike the others, it does not rely upon enormous data sets accessed via the internet; it is, instead, self-contained and fairly lightweight. The intent is to provide a framework for other applications to use so they can incorporate geographic information, while the Marble application is a demonstration and testbed for those ideas.
The project wants to see Marble used by many different applications, both for input of geographic information and for presenting it. The project lives under the KDE Education Project as one of the applications for Marble is for geographic learning. Many other applications could use a standard framework for displaying maps of various sorts, from games, using their own, possibly fictional maps, to GPS and other visualization tools.
Marble does not rely on OpenGL or any hardware support for 3D, in order to reduce complexity and dependencies, which will serve it well when porting it to embedded devices. The dataset that comes with the program weighs in around 9M and provides reasonable, worldwide, detail. The interface is meant to work like other geographic tools to provide a "geo-widget" that behaves the way users expect, removing one barrier to its acceptance.
The project recently released its 0.4 version, which was easily installed on Fedora 7 using yum. When starting it for the first time, it goes through a setup process, lasting for 30 seconds or so (depending on hardware, of course), but after that, startup is very quick. It opens with a spherical projection view of the earth along the prime meridian allowing users to grab and rotate the earth in various directions.
The navigation is simple, with zoom and pan buttons in addition to the "grab and pull" style. One can also pan the view by moving the mouse to the edges of the display and clicking once the pointer has changed to an arrow indicating a direction. Left-clicking on the map will give the coordinates of the location, whereas right-clicking brings up a menu allowing a few operations to be performed. While not horribly painful, moving around is a bit jerky, tracking noticeably slower than the mouse pointer moves.
The default theme is the atlas view, which looks much like the name implies, with colors and relief shading to represent elevation and ocean depth. Other themes available include a satellite view, using NASA Blue Marble data providing 500 meter per pixel resolution, as well as an "earth at night" view showing populated areas by the amount of light they give off. The information overlaid on the map contains political boundaries, cities keyed by population, lakes and rivers, notable mountains, and a latitude/longitude grid, each of which can be disabled as desired.
Many of the map features can be clicked to bring up information about the location, both from the program data and Wikipedia. The main right-click option is a distance tool, which measures the distance between the two (or more) points. Marble also handles standard GPS .gpx data files, along with support for Google Earth's KML format. Overall, this release provides a limited subset of the capabilities eventually envisioned for the tool.
The main thrust of the 0.5 release is to fully integrate the contributions from three Google Summer of Code (GSoC) students. Improving the KML support, adding gpsd support to talk to to GPS devices, and "flat" projections were completed by the GSoC participants. They have not been fully integrated into the interface for 0.4, but will be for the next release.
Longer term plans include adding support for data from OpenStreetMap, a Wikipedia-like project to map streets and roads worldwide. The project also plans to offer optional OpenGL support to enable hardware acceleration for applications and users who want it. Better resolution satellite data is another area that will be addressed by adding Landsat 15m data.
Marble shows a lot of promise, the current release is stable and useful, though it lacks many features. The key to its success, as a library and framework as opposed to an application in its own right, is in defining an API that is flexible enough for most applications. If the project can get that right, there are lots of ways to use it. Once an API stabilizes, we can expect to see Marble-enabled applications, hopefully soon.
The LWN site is currently under high scraper load, so comment display has been suppressed for anonymous users. If you are a human, you may read the comments by clicking the button below:
Note: you can avoid this step in the future by logging into your LWN account.
