43 QNetworkAccessManager *nm, QGeoMappingManagerEngine *parent)
50 m_nm->setParent(
this);
51 for (QGeoTileProviderOsm *provider : m_providers) {
52 if (!provider->isResolved()) {
54 connect(provider, &QGeoTileProviderOsm::resolutionFinished,
55 this, &QGeoTileFetcherOsm::onProviderResolutionFinished);
56 connect(provider, &QGeoTileProviderOsm::resolutionError,
57 this, &QGeoTileFetcherOsm::onProviderResolutionError);
58 connect(provider, &QGeoTileProviderOsm::resolutionRequired,
59 this, &QGeoTileFetcherOsm::restartTimer, Qt::QueuedConnection);
60 provider->resolveProvider();
110 int id = spec.mapId();
111 if (id < 1 || id > m_providers.size()) {
112 qWarning(
"Unknown map id %d\n", spec.mapId());
113 if (m_providers.isEmpty())
120 if (spec.zoom() > m_providers[id]->maximumZoomLevel() || spec.zoom() < m_providers[id]->minimumZoomLevel())
123 const QUrl url = m_providers[id]->tileAddress(spec.x(), spec.y(), spec.zoom());
124 QNetworkRequest request;
125 request.setHeader(QNetworkRequest::UserAgentHeader, m_userAgent);
127 QNetworkReply *reply = m_nm->get(request);
128 return new QGeoMapReplyOsm(reply, spec, m_providers[id]->format());