mapTilesInScene.insert(url.toString(), mapTile);
m_mapScene->addMapTile(mapTile);
+
+ removeStackedTiles(mapTile);
}
}
if (centerTileChanged(sceneCoordinate)) {
calculateNewTiles(sceneCoordinate);
- removeOldTiles();
+ //removeOldTiles();
}
}
}
}
+void MapEngine::removeStackedTiles(MapTile *tile)
+{
+ QList<QGraphicsItem *> collidingItems = tile->collidingItems(Qt::ContainsItemBoundingRect);
+
+ qDebug() << "Colliding items: " << collidingItems.count();
+
+ foreach (QGraphicsItem *item, collidingItems) {
+ if (item->isObscured()) {
+ qDebug() << "Deleted:" << item->boundingRect();
+ MapTile *tmp = dynamic_cast<MapTile *>(item);
+ m_mapScene->removeItem(tmp);
+ mapTilesInScene.remove(buildURL(tmp->zoomLevel(), tmp->tileNumber()).toString());
+ }
+ }
+}
+
void MapEngine::viewResized(const QSize &size)
{
m_viewSize = size;