10QGeoFileTileCacheNokia::QGeoFileTileCacheNokia(
int ppi,
const QString &directory, QObject *parent)
11 :QGeoFileTileCache(directory, parent)
13 m_ppi = QString::number(ppi) + QLatin1String(
"p");
21QString QGeoFileTileCacheNokia::tileSpecToFilename(
const QGeoTileSpec &spec,
const QString &format,
const QString &directory)
const
23 QString filename = spec.plugin();
24 filename += QLatin1String(
"-");
25 filename += QString::number(spec.mapId());
26 filename += QLatin1String(
"-");
27 filename += QString::number(spec.zoom());
28 filename += QLatin1String(
"-");
29 filename += QString::number(spec.x());
30 filename += QLatin1String(
"-");
31 filename += QString::number(spec.y());
34 if (spec.version() != -1) {
35 filename += QLatin1String(
"-");
36 filename += QString::number(spec.version());
39 filename += QLatin1String(
"-");
42 filename += QLatin1String(
".");
45 QDir dir = QDir(directory);
47 return dir.filePath(filename);
50QGeoTileSpec QGeoFileTileCacheNokia::filenameToTileSpec(
const QString &filename)
const
52 QGeoTileSpec emptySpec;
54 const QStringList parts = filename.split(
'.');
56 if (parts.length() != 2)
59 const QString name = parts.at(0);
60 const QStringList fields = name.split(
'-');
62 const qsizetype length = fields.length();
63 if (length != 6 && length != 7)
65 else if (fields.last() != m_ppi)
66 return QGeoTileSpec();
71 for (qsizetype i = 1; i < length-1; ++i) {
73 int value = fields.at(i).toInt(&ok);
76 numbers.append(value);
80 if (numbers.length() < 5)
83 return QGeoTileSpec(fields.at(0),