SLOT(mapImageReceived(QUrl, QPixmap)));
}
- void MapEngine::setViewLocation(QPointF latLonCoordinate)
+ void MapEngine::init()
{
emit zoomLevelChanged(m_zoomLevel);
+ setViewLocation(QPointF(25.5000, 65.0000));
+
- // Fetch some map tiles for demo purposes
- for (int x=9351; x<=9354; x++) {
- for (int y=4261; y<=4264; y++) {
- QUrl url = buildURL(m_zoomLevel, QPoint(x, y));
- m_mapFetcher->fetchMapImage(url);
- }
- }
++// // Fetch some map tiles for demo purposes
++// for (int x=9351; x<=9354; x++) {
++// for (int y=4261; y<=4264; y++) {
++// QUrl url = buildURL(m_zoomLevel, QPoint(x, y));
++// m_mapFetcher->fetchMapImage(url);
++// }
++// }
+ }
- /*/// Fetch some map tiles for demo purposes
- for (int x=9348; x<=9357; x++) {
- for (int y=4259; y<=4266; y++) {
- QUrl url = buildURL(m_zoomLevel, QPoint(x, y));
- m_mapFetcher->fetchMapImage(url);
- }
- }*/
-
- QPoint tileCoord = convertLatLonToTile(m_zoomLevel, latLonCoordinate);
- qDebug() << "Tile coord: " << tileCoord.x() << "," << tileCoord.y();
- QPoint sceneCoord = convertTileNumberToSceneCoordinate(m_zoomLevel, tileCoord);
- qDebug() << "Scene coord: " << sceneCoord.x() << "," << sceneCoord.y();
-
- setLocation(sceneCoord);
- qDebug() << "centerToScene: " << sceneCoord.x() << "," << sceneCoord.y();
- //emit centerToSceneCoordinates(sceneCoord);
+ void MapEngine::setViewLocation(QPointF latLonCoordinate)
+ {
++ qDebug() << __PRETTY_FUNCTION__;
+ setLocation(convertLatLonToSceneCoordinate(latLonCoordinate));
}
QUrl MapEngine::buildURL(int zoomLevel, QPoint tileNumbers)
MapTile *mapTile = new MapTile();
mapTile->setZoomLevel(zoom);
mapTile->setTileNumber(QPoint(x, y));
- mapTile->setPixmap(pixmap);
- m_mapScene->addMapTile(mapTile);
+ mapTile->setPixmap(pixmap);
+
+ if (!mapTilesInScene.contains(url.toString())) {
+ mapTilesInScene.insert(url.toString(), mapTile);
+ m_mapScene->addMapTile(mapTile);
+
+ qDebug() << "Tile count: " << mapTilesInScene.size();
+ }
+
++ //TODO Remove tiles from scene
+ /*if (mapTilesInScene.size() > 20) {
+ MapTile * tile = mapTilesInScene.take(url.toString());
+ m_mapScene->removeItem(tile);
+ }*/
}
QGraphicsScene* MapEngine::scene()
MapViewScreen::MapViewScreen(QWidget *parent)
: QWidget(parent)
{
- MapView *mapView = new MapView(this);
- MapEngine *mapEngine = new MapEngine(this);
- mapView->setScene(mapEngine->scene());
++ MapView *mapView = new MapView(this);
++ mapEngine = new MapEngine(this);
++ mapView->setScene(mapEngine->scene());
- connect(mapView, SIGNAL(viewScrolled(QPointF)), mapEngine, SLOT(setLocation(QPointF)));
- connect(mapEngine, SIGNAL(locationChanged(QPointF)),
- MapView *mapView = new MapView(this);
- MapEngine *mapEngine = new MapEngine(this);
- mapView->setScene(mapEngine->scene());
-
- connect(mapView, SIGNAL(viewScrolled(QPointF)), mapEngine, SLOT(setLocation(QPointF)));
- connect(mapEngine, SIGNAL(locationChanged(QPointF)),
++ connect(mapView, SIGNAL(viewScrolled(QPointF)), mapEngine, SLOT(setLocation(QPointF)));
++ connect(mapEngine, SIGNAL(locationChanged(QPointF)),
mapView, SLOT(centerToSceneCoordinates(QPointF)));
-- connect(mapEngine, SIGNAL(zoomLevelChanged(int)), mapView, SLOT(setZoomLevel(int)));
++ connect(mapEngine, SIGNAL(zoomLevelChanged(int)), mapView, SLOT(setZoomLevel(int)));
+
- QHBoxLayout *mapViewLayout = new QHBoxLayout;
- //DEBUG
- QVBoxLayout *mapControlLayout = new QVBoxLayout;
- QWidget *mapControl = new QWidget(this);
- mapControl->setLayout(mapControlLayout);
- search = new QPushButton("Search", this);
- zoomOut = new QPushButton("-", this);
- zoomIn = new QPushButton("+", this);
- mapControlLayout->addWidget(&latLine);
- mapControlLayout->addWidget(&lonLine);
- mapControlLayout->addWidget(search);
- mapControlLayout->addWidget(zoomIn);
- mapControlLayout->addWidget(zoomOut);
- mapViewLayout->addWidget(mapControl);
- connect(search, SIGNAL(clicked()), this, SLOT(searchMap()));
- connect(zoomIn, SIGNAL(clicked()), this, SLOT(zoomInMap()));
- connect(zoomOut, SIGNAL(clicked()), this, SLOT(zoomOutMap()));
- //DEBUG
- mapViewLayout->addWidget(mapView);
- setLayout(mapViewLayout);
++ QHBoxLayout *mapViewLayout = new QHBoxLayout;
++ //DEBUG
++ QVBoxLayout *mapControlLayout = new QVBoxLayout;
++ QWidget *mapControl = new QWidget(this);
++ mapControl->setLayout(mapControlLayout);
++ search = new QPushButton("Search", this);
++ zoomOut = new QPushButton("-", this);
++ zoomIn = new QPushButton("+", this);
++ mapControlLayout->addWidget(&latLine);
++ mapControlLayout->addWidget(&lonLine);
++ mapControlLayout->addWidget(search);
++ mapControlLayout->addWidget(zoomIn);
++ mapControlLayout->addWidget(zoomOut);
++ mapViewLayout->addWidget(mapControl);
++ connect(search, SIGNAL(clicked()), this, SLOT(searchMap()));
++ connect(zoomIn, SIGNAL(clicked()), this, SLOT(zoomInMap()));
++ connect(zoomOut, SIGNAL(clicked()), this, SLOT(zoomOutMap()));
++ //DEBUG
++ mapViewLayout->addWidget(mapView);
++ setLayout(mapViewLayout);
+
- mapEngine->setViewLocation(QPointF(25.5000, 65.0000));
++ mapEngine->init();
+}
+
+void MapViewScreen::searchMap()
+{
+ qreal lat = latLine.text().toFloat();
+ qreal lon = lonLine.text().toFloat();
- QHBoxLayout *mapViewLayout = new QHBoxLayout;
- mapViewLayout->addWidget(mapView);
- setLayout(mapViewLayout);
+ qDebug() << lat << "," << lon;
- mapEngine->init();
+ mapEngine->setViewLocation(QPointF(lon, lat));
+}
+
+void MapViewScreen::zoomInMap()
+{
+ //mapEngine->zoomLevelChanged();
+}
+
+void MapViewScreen::zoomOutMap()
+{
+ //mapEngine->zoomLevelChanged();
}