libosmscout 1.1.1
Loading...
Searching...
No Matches
TiledMapOverlay.h
Go to the documentation of this file.
1#ifndef OSMSCOUT_CLIENT_QT_TILEMAPOVERLAY_H
2#define OSMSCOUT_CLIENT_QT_TILEMAPOVERLAY_H
3/*
4 OSMScout - a Qt backend for libosmscout and libosmscout-map
5 Copyright (C) 2017 Lukáš Karas
6
7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation; either
10 version 2.1 of the License, or (at your option) any later version.
11
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public
18 License along with this library; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */
21
25
27
28#include <QImage>
29#include <QJsonObject>
30
31namespace osmscout {
32
37Q_OBJECT
38
39private:
40 QThread *thread;
41 OsmTileDownloader *tileDownloader;
42 OnlineTileProvider provider;
43
44 mutable QMutex tileCacheMutex;
45 TileCache onlineTileCache;
46
47public slots:
48 void init();
49 void download(uint32_t, uint32_t, uint32_t);
50 void onProviderChanged(const OnlineTileProvider &newProvider);
51
52 void tileDownloaded(uint32_t zoomLevel, uint32_t x, uint32_t y, QImage image, QByteArray downloadedData);
53 void tileDownloadFailed(uint32_t zoomLevel, uint32_t x, uint32_t y, bool zoomLevelOutOfRange);
54
55signals:
56 void downloaded(uint32_t zoomLevel, uint32_t x, uint32_t y);
57 void failed(uint32_t zoomLevel, uint32_t x, uint32_t y);
58
59public:
60 TileLoaderThread(QThread *thread);
61
63
69 void accessCache(std::function<void(TileCache&)> fn);
70
71};
72
77{
78 Q_OBJECT
79 Q_PROPERTY(QJsonValue provider READ getProvider WRITE setProvider)
80 Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled)
81
82private:
83 QJsonValue providerJson;
84 TileLoaderThread *loader;
85 bool enabled;
86 QColor transparentColor;
87
88public slots:
89 void tileDownloaded(uint32_t zoomLevel, uint32_t x, uint32_t y);
90
91signals:
92 void providerChanged(const OnlineTileProvider &provider);
93
94public:
95 TiledMapOverlay(QQuickItem* parent = 0);
96 virtual ~TiledMapOverlay();
97
98 virtual void paint(QPainter *painter);
99
100 QJsonValue getProvider();
101 void setProvider(QJsonValue jv);
102
103 bool isEnabled();
104 void setEnabled(bool b);
105};
106
107}
108
109#endif // OSMSCOUT_CLIENT_QT_TILEMAPOVERLAY_H
#define OSMSCOUT_CLIENT_QT_API
Definition ClientQtImportExport.h:45
MapOverlay(QQuickItem *parent=0)
Definition OsmTileDownloader.h:42
Definition TileCache.h:92
Definition TiledMapOverlay.h:36
TileLoaderThread(QThread *thread)
void failed(uint32_t zoomLevel, uint32_t x, uint32_t y)
void download(uint32_t, uint32_t, uint32_t)
void tileDownloaded(uint32_t zoomLevel, uint32_t x, uint32_t y, QImage image, QByteArray downloadedData)
void tileDownloadFailed(uint32_t zoomLevel, uint32_t x, uint32_t y, bool zoomLevelOutOfRange)
void onProviderChanged(const OnlineTileProvider &newProvider)
void downloaded(uint32_t zoomLevel, uint32_t x, uint32_t y)
void accessCache(std::function< void(TileCache &)> fn)
void providerChanged(const OnlineTileProvider &provider)
virtual void paint(QPainter *painter)
void tileDownloaded(uint32_t zoomLevel, uint32_t x, uint32_t y)
void setProvider(QJsonValue jv)
bool enabled
Definition TiledMapOverlay.h:80
TiledMapOverlay(QQuickItem *parent=0)
QJsonValue provider
Definition TiledMapOverlay.h:79
Definition Area.h:39