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();