QString QGeoTileCache::tileSpecToFilename(const QGeoTileSpec &spec, const QString &format, const QString &directory) { QString filename = spec.plugin(); filename += QLatin1String("-"); filename += QString::number(spec.mapId()); filename += QLatin1String("-"); filename += QString::number(spec.zoom()); filename += QLatin1String("-"); filename += QString::number(spec.x()); filename += QLatin1String("-"); filename += QString::number(spec.y()); //Append version if real version number to ensure backwards compatibility and eviction of old tiles if (spec.version() != -1) { filename += QLatin1String("-"); filename += QString::number(spec.version()); } filename += QLatin1String("."); filename += format; QDir dir = QDir(directory); return dir.filePath(filename); }
unsigned int qHash(const QGeoTileSpec &spec) { unsigned int result = (qHash(spec.plugin()) * 13) % 31; result += ((spec.mapId() * 17) % 31) << 5; result += ((spec.zoom() * 19) % 31) << 10; result += ((spec.x() * 23) % 31) << 15; result += ((spec.y() * 29) % 31) << 20; result += (spec.version() % 3) << 25; return result; }
QDebug operator<< (QDebug dbg, const QGeoTileSpec &spec) { dbg << spec.plugin() << spec.mapId() << spec.zoom() << spec.x() << spec.y() << spec.version(); return dbg; }