diff --git a/data/maps/earth/bluemarble/bluemarble.dgml b/data/maps/earth/bluemarble/bluemarble.dgml
--- a/data/maps/earth/bluemarble/bluemarble.dgml
+++ b/data/maps/earth/bluemarble/bluemarble.dgml
@@ -45,6 +45,7 @@
earth/bluemarble
bluemarble.jpg
+
earth/clouds
diff --git a/data/maps/earth/srtm2/srtm2.dgml b/data/maps/earth/srtm2/srtm2.dgml
--- a/data/maps/earth/srtm2/srtm2.dgml
+++ b/data/maps/earth/srtm2/srtm2.dgml
@@ -36,7 +36,6 @@
earth/srtm2
-
diff --git a/src/lib/marble/ServerLayout.h b/src/lib/marble/ServerLayout.h
--- a/src/lib/marble/ServerLayout.h
+++ b/src/lib/marble/ServerLayout.h
@@ -40,6 +40,11 @@
*/
virtual QString name() const = 0;
+ /**
+ * Returns the sourceDir of the texture layer, or an empty string if the texture layer is 0
+ */
+ QString sourceDir() const;
+
protected:
GeoSceneTileDataset *const m_textureLayer;
};
diff --git a/src/lib/marble/ServerLayout.cpp b/src/lib/marble/ServerLayout.cpp
--- a/src/lib/marble/ServerLayout.cpp
+++ b/src/lib/marble/ServerLayout.cpp
@@ -38,9 +38,8 @@
QUrl MarbleServerLayout::downloadUrl( const QUrl &prototypeUrl, const TileId &id ) const
{
- const QString path = QString( "%1maps/%2/%3/%4/%4_%5.%6" )
+ const QString path = QString( "%1/%2/%3/%3_%4.%5" )
.arg( prototypeUrl.path() )
- .arg( m_textureLayer->sourceDir() )
.arg( id.zoomLevel() )
.arg( id.y(), tileDigits, 10, QChar('0') )
.arg( id.x(), tileDigits, 10, QChar('0') )
@@ -57,6 +56,11 @@
return "Marble";
}
+QString ServerLayout::sourceDir() const
+{
+ return m_textureLayer ? m_textureLayer->sourceDir() : QString();
+}
+
OsmServerLayout::OsmServerLayout( GeoSceneTileDataset *textureLayer )
: ServerLayout( textureLayer )
diff --git a/src/lib/marble/geodata/scene/GeoSceneTileDataset.cpp b/src/lib/marble/geodata/scene/GeoSceneTileDataset.cpp
--- a/src/lib/marble/geodata/scene/GeoSceneTileDataset.cpp
+++ b/src/lib/marble/geodata/scene/GeoSceneTileDataset.cpp
@@ -222,8 +222,14 @@
QUrl GeoSceneTileDataset::downloadUrl( const TileId &id ) const
{
// default download url
- if ( m_downloadUrls.empty() )
- return m_serverLayout->downloadUrl( QUrl( "http://files.kde.org/marble/" ), id );
+ if ( m_downloadUrls.empty() ) {
+ QUrl const defaultUrl = QUrl(QString("%1/%2")
+ .arg("https://maps.kde.org")
+ .arg(m_serverLayout->sourceDir()));
+ mDebug() << "No download URL specified for tiles stored in "
+ << m_sourceDir << ", falling back to " << defaultUrl.toString();
+ return m_serverLayout->downloadUrl(defaultUrl, id);
+ }
if ( m_nextUrl == m_downloadUrls.constEnd() )
m_nextUrl = m_downloadUrls.constBegin();