libosmscout
1.1.1
Toggle main menu visibility
Loading...
Searching...
No Matches
libosmscout-client-qt
include
osmscoutclientqt
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
22
#include <
osmscoutclientqt/MapOverlay.h
>
23
#include <
osmscoutclientqt/TileCache.h
>
24
#include <
osmscoutclientqt/OsmTileDownloader.h
>
25
26
#include <
osmscoutclientqt/ClientQtImportExport.h
>
27
28
#include <QImage>
29
#include <QJsonObject>
30
31
namespace
osmscout
{
32
36
class
OSMSCOUT_CLIENT_QT_API
TileLoaderThread
:
public
QObject {
37
Q_OBJECT
38
39
private
:
40
QThread *thread;
41
OsmTileDownloader
*tileDownloader;
42
OnlineTileProvider provider;
43
44
mutable
QMutex tileCacheMutex;
45
TileCache
onlineTileCache;
46
47
public
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
55
signals:
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
59
public
:
60
TileLoaderThread
(QThread *thread);
61
62
virtual
~TileLoaderThread
();
63
69
void
accessCache
(std::function<
void
(
TileCache
&)> fn);
70
71
};
72
76
class
OSMSCOUT_CLIENT_QT_API
TiledMapOverlay
:
public
MapOverlay
77
{
78
Q_OBJECT
79
Q_PROPERTY(QJsonValue
provider
READ
getProvider
WRITE
setProvider
)
80
Q_PROPERTY(
bool
enabled
READ
isEnabled
WRITE
setEnabled
)
81
82
private:
83
QJsonValue providerJson;
84
TileLoaderThread
*loader;
85
bool
enabled
;
86
QColor transparentColor;
87
88
public slots:
89
void
tileDownloaded
(uint32_t zoomLevel, uint32_t x, uint32_t y);
90
91
signals:
92
void
providerChanged
(const OnlineTileProvider &
provider
);
93
94
public:
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
ClientQtImportExport.h
OSMSCOUT_CLIENT_QT_API
#define OSMSCOUT_CLIENT_QT_API
Definition
ClientQtImportExport.h:45
MapOverlay.h
OsmTileDownloader.h
TileCache.h
osmscout::MapOverlay::MapOverlay
MapOverlay(QQuickItem *parent=0)
osmscout::OsmTileDownloader
Definition
OsmTileDownloader.h:42
osmscout::TileCache
Definition
TileCache.h:92
osmscout::TileLoaderThread
Definition
TiledMapOverlay.h:36
osmscout::TileLoaderThread::TileLoaderThread
TileLoaderThread(QThread *thread)
osmscout::TileLoaderThread::~TileLoaderThread
virtual ~TileLoaderThread()
osmscout::TileLoaderThread::init
void init()
osmscout::TileLoaderThread::failed
void failed(uint32_t zoomLevel, uint32_t x, uint32_t y)
osmscout::TileLoaderThread::download
void download(uint32_t, uint32_t, uint32_t)
osmscout::TileLoaderThread::tileDownloaded
void tileDownloaded(uint32_t zoomLevel, uint32_t x, uint32_t y, QImage image, QByteArray downloadedData)
osmscout::TileLoaderThread::tileDownloadFailed
void tileDownloadFailed(uint32_t zoomLevel, uint32_t x, uint32_t y, bool zoomLevelOutOfRange)
osmscout::TileLoaderThread::onProviderChanged
void onProviderChanged(const OnlineTileProvider &newProvider)
osmscout::TileLoaderThread::downloaded
void downloaded(uint32_t zoomLevel, uint32_t x, uint32_t y)
osmscout::TileLoaderThread::accessCache
void accessCache(std::function< void(TileCache &)> fn)
osmscout::TiledMapOverlay::providerChanged
void providerChanged(const OnlineTileProvider &provider)
osmscout::TiledMapOverlay::paint
virtual void paint(QPainter *painter)
osmscout::TiledMapOverlay::tileDownloaded
void tileDownloaded(uint32_t zoomLevel, uint32_t x, uint32_t y)
osmscout::TiledMapOverlay::setProvider
void setProvider(QJsonValue jv)
osmscout::TiledMapOverlay::getProvider
QJsonValue getProvider()
osmscout::TiledMapOverlay::isEnabled
bool isEnabled()
osmscout::TiledMapOverlay::enabled
bool enabled
Definition
TiledMapOverlay.h:80
osmscout::TiledMapOverlay::setEnabled
void setEnabled(bool b)
osmscout::TiledMapOverlay::TiledMapOverlay
TiledMapOverlay(QQuickItem *parent=0)
osmscout::TiledMapOverlay::provider
QJsonValue provider
Definition
TiledMapOverlay.h:79
osmscout
Definition
Area.h:39
Generated by
1.17.0