|
|
(122 intermediate revisions by 17 users not shown) |
Line 1: |
Line 1: |
| {{Template:I18n/Language Navigation Bar|Projects/Marble}}
| |
|
| |
|
| __NOTOC__
| | |
| [[Image:Marble_logo.png]] | | [[Image:Marble_logo.png]] |
|
| |
|
Line 7: |
Line 6: |
| ;[[/FAQ|Marble FAQ]] | | ;[[/FAQ|Marble FAQ]] |
|
| |
|
| == Examples of Use == | | == Success Stories: 3rd party applications using the Marble Library== |
| ;[[/MarbleUsedBy|Applications using the Marble library]] | | ;[[/MarbleUsedBy|Software that makes use of Marble]] |
|
| |
|
| == Using the Marble Widget in other applications == | | == Tutorials: How to use the Marble Widget in your application == |
| ;[[/MarbleDesigner|with QtDesigner]] | | ;[[/MarbleDesigner|with Qt Designer]] |
| ;[[/MarbleCPlusPlus|with C++]] | | ;[[/MarbleWindows|On Windows, with Qt Creator/Qt Designer]] |
| ;[[/MarblePython|with Python]]
| |
|
| |
|
| ;[[/MarbleDBus|via a shell script]] | | === With C++ === |
| | ==== Intro ==== |
| | ;[[/MarbleCPlusPlus|Hello World]] |
| | ;[[/MarbleMarbleWidget|Changing basic map properties]] |
| | ;[[/MarbleSignalsSlots|Creating a window with controls]] |
|
| |
|
| == How to become a Marble developer ("Marblehead") == | | ==== GeoData ==== |
| | ;[[/Runners/DisplayGeoDataPlacemark|Displaying GeoData Documents]] |
|
| |
|
| === So you are new to Marble development ... === | | ==== Online Services ==== |
| | ;[[/OnlineServices|Creating new Online Services]] |
|
| |
|
| <b>Welcome!</b>
| | ==== Routing ==== |
| | ;[[/Routing/BasicRouting|Basic Routing]] |
|
| |
|
| Here you'll get all the information you need to start Marble development:
| | ==== Runners ==== |
| | ;[[/Runners/Search|Searching for Points of Interest]] |
| | ;[[/Runners/ReverseGeocoding|Reverse Geocoding]] |
| | ;[[/Runners/Parse|Parsing Files]] |
|
| |
|
| ;[[/GoMarble|How to become a Marble Developer]] | | ==== GeoPainter ==== |
| | ;[[/MarbleGeoPainter|Painting onto the map]] |
| | ;[[/LayerInterface|Drawing in Custom Layers]] |
| | ;[[/Runners/PaintingGeoDataLineString|Painting LineString]] |
|
| |
|
| == Packaging Marble == | | === With Python === |
| | ==== Intro ==== |
| | ;[http://techbase.kde.org/Projects/Marble/MarblePythonInstructions Installing Marble's Python bindings] |
| | ;[[/MarblePythonHello|Hello World]] |
| | ;[[/MarblePythonMarbleWidget|Changing basic map properties]] |
| | ;[[/MarblePythonSignalsSlots|Creating a window with controls]] |
|
| |
|
| Here is some advice about how packaging is supposed to happen on the various plattforms that are supported.
| | ==== Loading Files ==== |
| | ;[[/Runners/MarblePythonLoadingKML|Loading KML files into Marble]] |
| | ;[[/Runners/MarblePythonLoadingOSM|Loading OSM files into Marble]] |
|
| |
|
| ===General=== | | ==== GeoData ==== |
| | ;[[/Runners/MarblePythonDisplayGeoDataPlacemark|Display GeoData Placemark]] |
| | ;[[/Runners/MarblePythonVehicleTracking|Vehicle Tracking]] |
|
| |
|
| ===Linux=== | | ==== Routing/Runners ==== |
| | This part of the Python API has not yet been ported and the tutorials could not be completed. [https://bugs.kde.org/show_bug.cgi?id=329364 see this bug for more info]. |
|
| |
|
| ===Mac OS X=== | | ==== GeoPainter ==== |
| | ;[[/Routing/MarblePythonGeoPainter|Painting onto the map]] |
| | ;[[/MarblePythonLayerInterface|Drawing in Custom Layers]] |
|
| |
|
| ==== Qt-Only ====
| |
|
| |
|
| Configure Marble with:
| | ;[[/MarbleDBus|via a shell script]] |
| <pre>
| |
| cmake -DCMAKE_BUILD_TYPE=release -DQTONLY=ON -DCMAKE_INSTALL_PREFIX=/Applications/ ../marble
| |
| </pre>
| |
| | |
| To generate a Diskimage (.dmg) one can use this script (based on parts by Tim Sutton, thanks!):
| |
| | |
| <code bash>
| |
| VERSION=0.7.1
| |
| APPNAME=Marble
| |
| | |
| VOLNAME=${APPNAME}-${VERSION}
| |
| DMGNAME=${VOLNAME}Uncompressed.dmg
| |
| COMPRESSEDDMGNAME=${VOLNAME}.dmg
| |
| | |
| function deploy_file() {
| |
| for n in $(otool -L $1 | grep Qt); do
| |
| path=`echo $n | grep Qt`
| |
| if [ $path ] ; then
| |
| name=$(basename $path)
| |
| FRAMEWORKS="$FRAMEWORKS $name"
| |
| fi
| |
| done
| |
| | |
| for framework in $FRAMEWORKS ; do
| |
| install_name_tool -change \
| |
| $framework.framework/Versions/4/$framework \
| |
| @executable_path/../Frameworks/$framework.framework/Versions/4/$framework \
| |
| $1
| |
| done
| |
| }
| |
| | |
| function deploy_plugins() {
| |
| for plugin in $1/Contents/Resources/plugins/*; do
| |
| deploy_file $plugin
| |
| done
| |
| }
| |
| | |
| function set_bundle_display_options() {
| |
| osascript <<-EOF
| |
| tell application "Finder"
| |
| set f to POSIX file ("${1}" as string) as alias
| |
| tell folder f
| |
| open
| |
| tell container window
| |
| set toolbar visible to false
| |
| set statusbar visible to false
| |
| set current view to icon view
| |
| delay 1 -- sync
| |
| set the bounds to {20, 50, 300, 400}
| |
| end tell
| |
| delay 1 -- sync
| |
| set icon size of the icon view options of container window to 64
| |
| set arrangement of the icon view options of container window to not arranged
| |
| set position of item "Marble.app" to {100,150}
| |
| set position of item "Applications" to {280, 150}
| |
| set background picture of the icon view options of container window to file "background.png" of folder "Pictures"
| |
| set the bounds of the container window to {0, 0, 300, 400}
| |
| update without registering applications
| |
| delay 5 -- sync
| |
| close
| |
| end tell
| |
| delay 5 -- sync
| |
| end tell
| |
| EOF
| |
| | |
| }
| |
| | |
| function create_symlinks() {
| |
| cd "$1/Contents/Resources"
| |
| ln -s "../MacOS/resources/data/" "data"
| |
| ln -s "../MacOS/resources/plugins/" "plugins"
| |
| cd -
| |
| }
| |
| | |
| | |
| | |
| | |
| rm ~/Desktop/${DMGNAME}
| |
| rm ~/Desktop/${COMPRESSEDDMGNAME}
| |
| hdiutil create -size 150m -fs HFS+ -volname ${VOLNAME} ~/Desktop/${DMGNAME}
| |
| | |
| # Mount the disk image
| |
| hdiutil attach ~/Desktop/${DMGNAME}
| |
| | |
| # Obtain device information
| |
| DEVS=$(hdiutil attach ~/Desktop/${DMGNAME} | cut -f 1)
| |
| DEV=$(echo $DEVS | cut -f 1 -d ' ')
| |
| VOLUME=$(mount |grep ${DEV} | cut -f 3 -d ' ')
| |
| | |
| # copy in the application bundle
| |
| cp -Rp /Applications/${APPNAME}.app ${VOLUME}/${APPNAME}.app
| |
| | |
| # fix the libs
| |
| macdeployqt ${VOLUME}/${APPNAME}.app
| |
| create_symlinks ${VOLUME}/${APPNAME}.app
| |
| deploy_file "${VOLUME}/${APPNAME}.app/Contents/MacOS/lib/libmarblewidget.7.dylib"
| |
| deploy_plugins ${VOLUME}/${APPNAME}.app
| |
| | |
| # copy in background image
| |
| mkdir -p ${VOLUME}/Pictures
| |
| # fixme: path
| |
| cp ~/Desktop/marble-dmg-background.png ${VOLUME}/Pictures/background.png
| |
| # symlink applications
| |
| ln -s /Applications/ ${VOLUME}/Applications
| |
| set_bundle_display_options ${VOLUME}
| |
| mv ${VOLUME}/Pictures ${VOLUME}/.Pictures
| |
| | |
| # Unmount the disk image
| |
| hdiutil detach $DEV
| |
|
| |
| # Convert the disk image to read-only
| |
| hdiutil convert ~/Desktop/${DMGNAME} -format UDBZ -o ~/Desktop/${COMPRESSEDDMGNAME}
| |
| </code>
| |
| | |
| | |
| It uses the macdeployqt tool which copies Qt and its plugins into the App Bundle.
| |
| macdeployqt also tells the main application to link against the libs contained in the bundle, instead of the system libs.
| |
| This does not happen to the libmarblewidget and the Marble plugins, so it has to be done by the script.
| |
| The script also sets a background Image for the dmg. (Place it at ~/Desktop/marble-dmg-background.png or change the path in the script)
| |
| | |
| After that you should have Marble-version.dmg on you Desktop.
| |
| | |
| ===Windows===
| |
| | |
| == Programming Coordination ==
| |
| | |
| Here are a few links to various issues we are working on:
| |
| | |
| === User Interface ===
| |
| ;[[/Mockups|Mockups]]
| |
| | |
| === Texture Mapping ===
| |
| ;[[/TextureNG|Texture Mapping]]
| |
| | |
| === GeoData Library / KML ===
| |
| ;[[/LibGeoData|GeoData Library]]
| |
| ;[[/KMLStatus|KML Status]]
| |
| ;[[/GPXStatus|GPX Status]]
| |
| | |
| === GeoPainter / DGML ===
| |
| ;[[/GeoPainter|GeoPainter]]
| |
| ;[[/Dgml|DGML]]
| |
|
| |
|
| === Marble Runner === | | === Marble Runner === |
Line 188: |
Line 68: |
| ;[[/RunnerHOWTO|Runner HOWTO]] | | ;[[/RunnerHOWTO|Runner HOWTO]] |
|
| |
|
| === Projections === | | === Documentation === |
| ;[[/WinkelIii|Winkel III]] | | Creating '''Custom Marble Map Themes''' |
| | ;[[/OSMSlippyMaps|How to integrate OSM "slippy" maps into Marble]] |
| | ;[[/HistoricalMaps|How to create Historical Map Themes]] |
| | ;[[/CustomPlanetMaps|How to create maps for other planets, moons etc.]] |
|
| |
|
| === Tile Download ===
| | ;[[/CustomMaps|Reference: How to customize maps]] |
| ;[[/TileDownload|Tile Download]] | |
|
| |
|
| === Documentation ===
| | ;[[/PalaeoMaps|Global Palaeogeography]] |
| ;[[/ApiDocs|API Docs]] | | |
| ;[[/CustomMaps|How to customize maps]] | | ;[[/PNTFiles|How to change the PNT files used by Marble]] |
| ;[[/MarblesSecrets|Marble's Secrets]] | | ;[[/MarblesSecrets|Marble's Secrets]] |
| ;[[/ProxyConnection|How to use the Proxy]] | | ;[[/ProxyConnection|How to use the Proxy]] |
|
| |
|
| === GeoClue / GPS === | | == Maps == |
| ;[[/GeoClue|GeoClue support in Marble]]
| | === OSM Vector Map === |
| | | ;[[/OSMVectorCompile|How to compile Marble with vector support]] |
| == Mapping Coordination ==
| | ;[[/OSMVectorTileCreation|How to build tiles]] |
| === Documentation === | |
| ;[[/HistoricalMaps|How to create Historical Maps]] | |
| | |
| ;[[/PalaeoMaps|Global Palaeogeography]] | |
|
| |
|
| == Routing == | | == Routing == |
| ;[[/RoutingIdeas|General ideas about routing]] | | ;[[/OnlineRoutingImplementation|Implementation of Online-Routing]] |
| | | ;[[/MaemoOfflineRouting|Installation of Marble and Gosmore on Maemo]] |
| == valgrind logs ==
| |
| ;[[/ValgrindLogs|if you want to fix memory leaks, valgrind logs can be found here]] | |
| | |
| == Meetings ==
| |
| Summaries and logs of scheduled Marble meetings can be found on the following pages:
| |
| ;[[/MarbleMeeting20081029|Wednesday Nov. 10th, 2008]]
| |