Marble offers KDE-Python bindings. A small hello world example is available as part of the Marble sources at
The Marble API allows a very easy integration of a map widget into your application. Let's prove that with some python code:
#!env python # # Copyright 2008 Simon Edwards <[email protected]> # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # # A very simple example of how to use the marble widget. from PyQt4.QtCore import * from PyKDE4.kdeui import * from PyKDE4.kdecore import * from PyKDE4.marble import * import sys class MainWin (KMainWindow): def __init__ (self, *args): KMainWindow.__init__ (self) self.resize(640, 480) self.marble = Marble.MarbleWidget(self) self.marble.setMapThemeId("earth/bluemarble/bluemarble.dgml") self.setCentralWidget(self.marble) self.marble.centerOn(5.8333, 51.8333) self.marble.zoomView(2000) def main(): appName = "simple_marble" catalog = "" programName = ki18n ("default") version = "1.0" description = ki18n ("Simple Python Marble Example") license = KAboutData.License_GPL copyright = ki18n ("(c) 2008 Simon Edwards") text = ki18n ("none") homePage = "www.simonzone.com" bugEmail = "[email protected]" aboutData = KAboutData (appName, catalog, programName, version, description, license, copyright, text, homePage, bugEmail) aboutData.addAuthor (ki18n("Simon Edwards"), ki18n("Developer")) KCmdLineArgs.init(sys.argv, aboutData) app = KApplication() mainWindow = MainWin(None, "main window") mainWindow.show() app.connect(app, SIGNAL ("lastWindowClosed ()"), app.quit) app.exec_() main()
Content is available under Creative Commons License SA 4.0 unless otherwise noted.