[Marble-devel] marble plugin capabilities

Torsten Rahn tackat at t-online.de
Tue May 29 10:14:17 UTC 2012

Hi David,

On Dienstag, 29. Mai 2012 09:54:33 David Delbecq wrote:
> - Our application must let user "Draw" on the map. Is it possible to attach
> to the mouse event of your component so that when in "create" or "edit"
> mode (our menu), we move around or create new object that are immediately
> visible on marble 

Yes, this is possible. We had a project even inside Marble which created a 
prototype for this kind of functionality.



The source code for this project is located here (currently disabled from 
compilation so it might require some minor code changes to get it compiling 

> We plan to store data in kml file, with additionnal
> information in a <ExtendedData> + custom xml namespace. Does marble
> provide a way to expose this information to our application / let our
> application create or edit those, or will we have to handle ourself the
> load / save process of our kml files?

The Marble library provides basic support for KML loading: This includes all 
the basic KML elements (Documents, Placemarks, Geometries, Styles, 
ExtendedData),  - except for fancy stuff such as Animations/Tours, 3D Models  
/ COLLADA files and GroundOverlays which are not implemented yet. You can 
check the capabilities by importing a KML file using the normal Marble Virtual 
Globe client. If it displays your KML file fine then the library will do as 

You can load the KML files via a single API call into Marble's model:


Internally Marble's whole data structure is modelled after KML, so you can 
also access the objects loaded into the model via C++ code. And you can even 
create new ones via C++:


> - Can the component be used "off
> screen" for pure rendering work (generate pictures out of kml files) ? -

Yes, this should be possible. If you just use "MarbleMap" (that is the class 
that is used by MarbleWidget to draw the map) then everything is completely 
"off-screen" in every kind of sense.

> Is there a qt-jambi version of the librairy?

There is an initial version of Qt Jambi bindings but these are certainly 


Getting these to work will certainly require some work. Note that most 
developers in the Marble community use Marble's C++ framework, so the existing 
support for bindings such as Python, Jambi, etc. is very much experimental.

> - Is there some "benchmark" application based on marble that would help us
> decide of computers we plan to use are fast enough to render marble datas?

There is no benchmark suite that would cover all features of Marble.  But in 
doubt you could try to simply install the Marble application on your target 
system for a quick survey.

Usually for Desktop PCs there should be no problem with performance.
For embedded hardware it depends: 

Marble doesn't make use of OpenGL yet. Instead it renders everything in 
software. This has the advantage that it renders everything equally on every 
kind of hardware that supports Qt. But this also means that on weak embedded 
hardware running the globe projection might be heavy on your hardware and 
might lead to relatively bad performance.

Instead you might want to use Marble's Mercator projection which delivers 
excellent speed for map themes that use mercator-based tile data (such as 
OpenStreetMap, Google  Maps, Nokia Maps, etc.). If you want to target embedded 
hardware you might want to have a look at the optimizations we do for our ARM 
based Marble Nokia N900 packages.

For a general overview of the features or Marble Virtual Globe (which are also 
supported by the library) please have a look at 


For an overview about Marble's library please have a look at:


Finally I'd like to point out that there is community support as well as 
commercial support available for Marble:


Best Regards,
> Thank you,
> David Delbecq

More information about the Marble-devel mailing list