Difference between revisions of "Projects/Marble/MarbleCPlusPlus"

Jump to: navigation, search
(New page: == Hello Marble! == The Marble API allows a very easy integration of a map widget in your application. Let's prove that with a tiny "Hello world"-like example: #include <QtGui/QApplicati...)
 
Line 4: Line 4:
 
  #include <QtGui/QApplication>
 
  #include <QtGui/QApplication>
 
  #include <marble/MarbleWidget.h>
 
  #include <marble/MarbleWidget.h>
 +
 +
using namespace Marble;
  
 
  int main(int argc, char** argv)
 
  int main(int argc, char** argv)

Revision as of 12:51, 28 January 2009

Hello Marble!

The Marble API allows a very easy integration of a map widget in your application. Let's prove that with a tiny "Hello world"-like example:

#include <QtGui/QApplication>
#include <marble/MarbleWidget.h>
using namespace Marble;
int main(int argc, char** argv)
{
       QApplication app(argc,argv);
       // Create a Marble QWidget without a parent
       MarbleWidget *map = new MarbleWidget();
       // Load the OpenStreetMap map
       map->setMapThemeId("earth/openstreetmap/openstreetmap.dgml");
       // Set a server for downloading map data, if needed
       map->setDownloadUrl("http://download.kde.org/apps/marble/");
       map->show();
       return app.exec();
}

Save the code above as my_marble.cpp and compile it:

g++ -I /usr/include/qt4/ -o my_marble my_marble.cpp -lmarblewidget -lQtGui

If things go fine, execute ./my_marble and you end up with a fully usable OpenStreetMap application: My marble.png

Here's a little checklist to tackle some problems that might arise when compiling the code above:

  • You need Qt and Marble development packages (or comparable SVN installations)
  • If you're running Marble from SVN, add the Marble:: prefix to the MarbleWidget above. The Marble namespace was added some time ago.
  • If Qt headers are not installed in /usr/include/qt4 on your system, change the path in the g++ call above accordingly.
  • Likewise, add -I /path/to/marble/headers if they're not to be found in /usr/include

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal