X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fmap%2Fmapengine.cpp;h=748f328d4ba1989d7a0e954977f6e3f775cc6694;hb=557f3ff8125ebf7308aaebb74bd0760c3fbfe887;hp=5c57fdd214f7d7dc28977cdbb091db4f4b766a82;hpb=3503e7e8168b08455fea1324f7754da63e5a122a;p=situare diff --git a/src/map/mapengine.cpp b/src/map/mapengine.cpp index 5c57fdd..748f328 100644 --- a/src/map/mapengine.cpp +++ b/src/map/mapengine.cpp @@ -40,39 +40,46 @@ MapEngine::MapEngine(MapView *mapView, QWidget *parent) mapView->setScene(m_mapScene); m_zoomLevel = 14; - m_mapFetcher = new MapFetcher(this); + m_mapFetcher = new MapFetcher(new QNetworkAccessManager(this), this); + connect(m_mapFetcher, SIGNAL(mapImageReceived(QUrl,QPixmap)), this, + SLOT(mapImageReceived(QUrl, QPixmap))); } void MapEngine::setViewLocation(QPointF latLonCoordinate) { m_mapView->setZoomLevel(m_zoomLevel); - /// Show some dummy map tiles for demo purposes + /// Fetch some map tiles for demo purposes for (int x=9351; x<=9354; x++) { for (int y=4261; y<=4264; y++) { - + QString url = QString("http://tile.openstreetmap.org/mapnik/%1/%2/%3.png") + .arg(m_zoomLevel).arg(x).arg(y); + m_mapFetcher->fetchMapImage(QUrl(url)); } } } -void MapEngine::mapImageReceived(const QUrl *url, const QPixmap *pixmap) +void MapEngine::mapImageReceived(const QUrl &url, const QPixmap &pixmap) { - //QString path = "http://tile.openstreetmap.org/mapnik/14/9353/4261.png"; + QString path = url.path(); - qDebug() << __PRETTY_FUNCTION__ << "path:" << path; + //qDebug() << __PRETTY_FUNCTION__ << "path:" << path; QStringList pathParts = path.split("/", QString::SkipEmptyParts); - qDebug() << __PRETTY_FUNCTION__ << "pathParts:" << pathParts; -// int zoom = (pathParts.at(1)).toInt(); -// int x = (pathParts.at(2)).toInt(); -// int y = (pathParts.at(3)).toInt(); + int zoom = (pathParts.at(1)).toInt(); + int x = (pathParts.at(2)).toInt(); + QString yString = pathParts.at(3); + yString.chop(4); + int y = yString.toInt(); + + //qDebug() << __PRETTY_FUNCTION__ << zoom << x << y; -// MapTile *mapTile = new MapTile(); -// mapTile->setZoomLevel(zoom); -// mapTile->setTileNumber(QPoint(x, y)); -// mapTile->setPixmap(); -// m_mapScene->addMapTile(mapTile); + MapTile *mapTile = new MapTile(); + mapTile->setZoomLevel(zoom); + mapTile->setTileNumber(QPoint(x, y)); + mapTile->setPixmap(pixmap); + m_mapScene->addMapTile(mapTile); } QPoint MapEngine::latLonToTile(qreal latitude, qreal longitude, int zoom)