So you want to add moon maps to Marble. This is great since we want to see lots of maps in Marble where the user can browse through space and time. There are lots of maps that are under the public domain.
You'll find a lot of maps at sites like:
Before start creating a map, check if its also created at Marble Maps. Normally these type of maps or rather images, are uploaded in several projections, to create our map, we need a simple cylindrical version. If the map that you want it's not available in a simple cylindrical version, you can follow the steps that are explained at Historical Maps
As an example we start off with this nice map of Iapetus from the Cassini and Voyager missions:
This map has a resolution of 2880 × 5760 which gives us good details, and marble can create the tiles automatically, because it's under 60000x120000.
We create a directory "Iapetus" that it's the nome of the planet/moon, and inside it, another one "iapetus", that it's the name of the maptheme. We need to change the name of the file downloaded and save it as "iapetus.jpg" at /Iapetus/iapetus.
Next you have a template for creating the dgml file. Copy it inside a plain text editor and save it as a .dgml file.
<?xml version="1.0" encoding="UTF-8"?> <dgml xmlns="http://edu.kde.org/marble/dgml/2.0"> <document> <head> <name>$YourMapName</name> <target>$YourMapTarget</target> <theme>$YourMapTheme</theme> <icon pixmap="$PreviewImage"/> <visible>true</visible> <description><![CDATA[$YourMapDescription]]></description> <zoom> <discrete> true </discrete> <minimum> 900 </minimum> <maximum> 3500 </maximum> </zoom> </head> <map bgcolor="#000000"> <canvas/> <target/> <!-- insert layers here --> </map> <settings> <property name="coordinate-grid"> <value>true</value> <available>true</available> </property> <property name="overviewmap"> <value>true</value> <available>true</available> </property> <property name="compass"> <value>true</value> <available>true</available> </property> <property name="scalebar"> <value>true</value> <available>true</available> </property> </settings> <legend> <section name="coordinate-grid" checkable="true" connect="coordinate-grid" spacing="12"> <heading>Coordinate Grid</heading> </section> </legend> </document> </dgml>
Now we need to change some things in this template, like the name of the map, what moon is, etc.
First, we change the $YourMapTheme by the name of the second directory that you create in this case "iapetus"
Second, we need to replace $YourMapTarget by the name of the frist directory that we create in this case "Iapetus"
Third, we have to change $YourMapName by the name that will be displayed in the map selection, in the case "Iapetus"
Fourth, we change $PreviewImage by the name of the image that we created for the preview image, in our case "iapetus-preview.jpg", that you will create on the next section.
Fifth, we need to change $YourMapDescription by a short description that will be showed when the user leaves his pointer over the preview image.
Sixth, inside settings you change somethings like if you want to show coordinate grid, compass or scale when the map first start.
Add this code inside the <map> tag in the dgml file and replace the variables according to the instructions below.
<layer name="$YourMapTheme" backend="texture"> <texture name="$YourMapTheme_data" expire="604800"> <sourcedir format="JPG"> $YourMapTarger/$YourMapTheme </sourcedir> <installmap> YourMapTheme.jpg </installmap> </texture> </layer>
Now, we need to replace $YourMapTheme and $YourMapTarger by the name of your map and the name of the moon that you are creating the map.