1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2024-12-11 03:29:09 +01:00
GPXSee/src/map.cpp

58 lines
1.3 KiB
C++
Raw Normal View History

2015-11-23 02:33:01 +01:00
#include <QFileInfo>
#include <QDir>
#include "downloader.h"
#include "ll.h"
2015-11-26 00:21:11 +01:00
#include "config.h"
2015-11-23 02:33:01 +01:00
#include "map.h"
2015-11-23 02:33:01 +01:00
2016-02-08 21:08:29 +01:00
Map::Map(const QString &name, const QString &url, QObject *parent)
: QObject(parent)
2015-11-23 02:33:01 +01:00
{
_name = name;
_url = url;
connect(&Downloader::instance(), SIGNAL(finished()), this,
SLOT(emitLoaded()));
2015-12-18 22:50:28 +01:00
QString path = QString(TILES_DIR"/") + _name;
if (!QDir::home().mkpath(path))
fprintf(stderr, "Error creating tiles dir: %s\n", qPrintable(path));
2015-11-23 02:33:01 +01:00
}
void Map::emitLoaded()
{
emit loaded();
}
void Map::loadTiles(QList<Tile> &list)
{
QList<Download> dl;
for (int i = 0; i < list.size(); ++i) {
Tile &t = list[i];
2016-02-07 18:27:50 +01:00
QString file = QString("%1/" TILES_DIR "/%2/%3-%4-%5")
2015-11-23 02:33:01 +01:00
.arg(QDir::homePath()).arg(_name).arg(t.zoom()).arg(t.xy().rx())
.arg(t.xy().ry());
QFileInfo fi(file);
2015-12-03 00:25:53 +01:00
if (fi.exists()) {
if (!t.pixmap().load(file))
fprintf(stderr, "Error loading map tile: %s\n",
qPrintable(file));
} else {
2015-11-23 02:33:01 +01:00
t.pixmap() = QPixmap(TILE_SIZE, TILE_SIZE);
t.pixmap().fill();
QString url(_url);
url.replace("$z", QString::number(t.zoom()));
url.replace("$x", QString::number(t.xy().x()));
url.replace("$y", QString::number(t.xy().y()));
dl.append(Download(url, file));
}
}
if (!dl.empty())
Downloader::instance().get(dl);
}