void QGeoMapReplyOsm::networkReplyFinished() { if (!m_reply) return; if (m_reply->error() != QNetworkReply::NoError) return; QByteArray a = m_reply->readAll(); setMapImageData(a); switch (tileSpec().mapId()) { case 1: setMapImageFormat("png"); break; case 2: setMapImageFormat("png"); break; default: qWarning("Unknown map id %d", tileSpec().mapId()); } setFinished(true); m_reply->deleteLater(); m_reply = 0; }
void QGeoMapReplyQGC::networkReplyFinished() { if (!m_reply) { return; } if (m_reply->error() != QNetworkReply::NoError) { return; } QByteArray a = m_reply->readAll(); setMapImageData(a); if(a.size() > 2) { if((char)a[0] == (char)0xff && (char)a[1] == (char)0xd8) setMapImageFormat("jpg"); else if((char)a[0] == (char)0x89 && (char)a[1] == (char)0x50) setMapImageFormat("png"); else { switch ((OpenPilot::MapType)tileSpec().mapId()) { case OpenPilot::GoogleMap: case OpenPilot::GoogleLabels: case OpenPilot::GoogleTerrain: case OpenPilot::GoogleHybrid: case OpenPilot::BingMap: case OpenPilot::OpenStreetMap: setMapImageFormat("png"); break; case OpenPilot::GoogleSatellite: case OpenPilot::BingSatellite: case OpenPilot::BingHybrid: setMapImageFormat("jpg"); break; default: qWarning("Unknown map id %d", tileSpec().mapId()); break; } } } setFinished(true); m_reply->deleteLater(); m_reply = 0; }
void QGeoMapReplyNokia::networkFinished() { if (!m_reply) return; if (m_reply->error() != QNetworkReply::NoError) return; QVariant fromCache = m_reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute); setCached(fromCache.toBool()); if (!isCached()) { QAbstractNetworkCache *cache = m_reply->manager()->cache(); if (cache) { QNetworkCacheMetaData metaData = cache->metaData(m_reply->url()); QDateTime exp = QDateTime::currentDateTime(); exp = exp.addDays(14); metaData.setExpirationDate(exp); cache->updateMetaData(metaData); } } setMapImageData(m_reply->readAll()); setMapImageFormat("PNG"); setFinished(true); m_reply->deleteLater(); m_reply = 0; }
//----------------------------------------------------------------------------- void QGeoTiledMapReplyQGC::cacheReply(QGCCacheTile* tile) { setMapImageData(tile->img()); setMapImageFormat(tile->format()); setFinished(true); setCached(true); tile->deleteLater(); }
PixmapTiledMapReply::PixmapTiledMapReply(QPixmap &pixmap, const QGeoTiledMapRequest &request, QObject *parent) : QGeoTiledMapReply(request, parent), m_pixmap(pixmap) { QByteArray ba; QBuffer buff(&ba); buff.open(QIODevice::WriteOnly); pixmap.save(&buff, "PNG"); setMapImageData(ba); setMapImageFormat("PNG"); setFinished(true); }
void QGeoMapReplyGoogle::networkFinished() { if (!m_reply) return; if (m_reply->error() != QNetworkReply::NoError) { return; } setMapImageData(m_reply->readAll()); if (request().mapType() == QGraphicsGeoMap::SatelliteMapDay || request().mapType() == QGraphicsGeoMap::SatelliteMapNight) setMapImageFormat("JPEG"); else setMapImageFormat("PNG"); setFinished(true); m_reply->deleteLater(); m_reply = 0; }
void QGeoTiledMapReplyGoogle::networkReplyFinished() { if (!m_reply) return; if (m_reply->error() != QNetworkReply::NoError) return; setMapImageData(m_reply->readAll()); setMapImageFormat(m_format); setFinished(true); m_reply->deleteLater(); m_reply = 0; }
void QGeoMapReplyNokia::networkFinished() { if (!m_reply) return; if (m_reply->error() != QNetworkReply::NoError) return; setMapImageData(m_reply->readAll()); setMapImageFormat("png"); setFinished(true); m_reply->deleteLater(); m_reply = 0; }
//----------------------------------------------------------------------------- void QGeoTiledMapReplyQGC::networkReplyFinished() { if (!_reply) { return; } if (_reply->error() != QNetworkReply::NoError) { return; } QByteArray a = _reply->readAll(); setMapImageData(a); QString format = getQGCMapEngine()->urlFactory()->getImageFormat((UrlFactory::MapType)tileSpec().mapId(), a); if(!format.isEmpty()) { setMapImageFormat(format); getQGCMapEngine()->cacheTile((UrlFactory::MapType)tileSpec().mapId(), tileSpec().x(), tileSpec().y(), tileSpec().zoom(), a, format); } setFinished(true); _reply->deleteLater(); _reply = 0; }
//----------------------------------------------------------------------------- void QGeoTiledMapReplyQGC::networkReplyError(QNetworkReply::NetworkError error) { if (!_reply) { return; } if (error != QNetworkReply::OperationCanceledError) { qWarning() << "Fetch tile error:" << _reply->errorString(); } _reply->deleteLater(); _reply = 0; if(!_badTile.size()) { QFile b(":/res/notile.png"); if(b.open(QFile::ReadOnly)) _badTile = b.readAll(); } setMapImageData(_badTile); setMapImageFormat("png"); setFinished(true); setCached(false); }
//----------------------------------------------------------------------------- QGeoTiledMapReplyQGC::QGeoTiledMapReplyQGC(QNetworkAccessManager *networkManager, const QNetworkRequest &request, const QGeoTileSpec &spec, QObject *parent) : QGeoTiledMapReply(spec, parent) , _reply(NULL) , _request(request) , _networkManager(networkManager) { if(_request.url().isEmpty()) { if(!_badMapBox.size()) { QFile b(":/res/notile.png"); if(b.open(QFile::ReadOnly)) _badMapBox = b.readAll(); } setMapImageData(_badMapBox); setMapImageFormat("png"); setFinished(true); setCached(false); } else { QGCFetchTileTask* task = getQGCMapEngine()->createFetchTileTask((UrlFactory::MapType)spec.mapId(), spec.x(), spec.y(), spec.zoom()); connect(task, &QGCFetchTileTask::tileFetched, this, &QGeoTiledMapReplyQGC::cacheReply); connect(task, &QGCMapTask::error, this, &QGeoTiledMapReplyQGC::cacheError); getQGCMapEngine()->addTask(task); } }